"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Wednesday, October 25, 2006

Ruby Might Be Sucking Less?

Update:

Ruby's primary new implementation may simply(?) have continuations temporarily out of order. I'm not sure that's a good sign, but OK.

Better to build continuation support in from the beginning, I'd think. There are more than 25 years of good papers discussing various strategies, and plenty of good implementations to borrow from.

End Update

I've heard some horrendous things about the current implementation of Ruby. But there is a new implementation more or less underway. But, yeah, let's don't do continuations. They're hard. And besides those VMs for real languages like Java's and C#'s don't do them. (Nothing to see here!)

And then Matz and Koichi dropped the bomb: Ruby 2.0 would support neither continuations nor green threads.
Besides what are continuations good for? Piffle.

And green threads? That just sounds sick. Who could imagine anything running well using non-native threads?

Seriously, Ruby is in dire need of a decent implementation. The JVM and the CLR are fine for what they are, old legacy. But Ruby needs its own *modern* implementation.

4 comments:

Dominique Boucher said...

And why not implementing Ruby on top of Gambit-C? You could have continuations and green threads for free! I'm sure that would make a great project.

gnupate said...

Maybe you should look at Rubinius (an implementation of Ruby based on the blue book) (see http://blog.nicksieger.com/articles/2006/10/20/rubyconf-sydney-and-rubinius or http://blog.tewk.com/?p=80 for notes from the RubyConf presentation).

It's also worth noting that matz and Ko1 have said that they will be implementing continuations, just that it will take past 1.9.1 to get them right (fast and efficient) in YARV.

Anonymous said...

If the decision was made to support green threads and continuations again under Ruby 2.0, we'd certainly be willing to adjust our implementation accordingly. As it stands, however, we're sticking with what we have...native threads and no continuations...and concentrating on things more important to folks using Ruby, like performance and interpreter/library compatibility.

Making a move toward green threads or m:n threads and continuations wouldn't be trivial, but I know how to do it already. If it's needed, it will be done.

Patrick Logan said...

why not implement Ruby on top of Gambit-C?

Yes, why not?

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.