I had the pleasure of attending a presentation by Yukihiro Matsumoto (aka “Matz”) on Ruby 1.9 today. I had heard that he is a very nice guy, and he definitely came across as very charismatic. He is not particularly fluid in English, and in previous interviews I had heard with him, he often used an interpreter. But I was impressed that he actually delivered the presentation (and Q&A) in English.

He mainly talked about Ruby 1.9 and some of the improvements as well as incompatibilities that it is going to bring. I am not going to summarize those here, but a good summary appears to be here (note: this site appears to be down right now; use the Google cached version instead).

One of the things that stuck out for me was that Enumerator is now an inherent part of the core and no longer a module that needs to be required. Even more importantly though, Enumerators can now be chained together. For example, you were previously able to call each_with_index to iterate over the elements of a collection and their corresponding index at the same time, but you could not apply this to other methods provided by the Enumerable module, such as map. In Ruby 1.9, you can achieve this by chaining several Enumerators like this: [1,2,3,4].map.with_index {|x, i| ...}.

And of course there’s the new Ruby VM (YARV), which is supposed to bring some speed increases (up to 50x in extreme cases, but Matz expects more like 1.5x-2x on average). But then again, there are other related projects such as JRuby or Rubinius.

Anyway, I have not really followed Ruby 1.9 development much, but I might have to check it out a bit. Oh, it also sounds like Ruby 2.0 is not that far off any more (probably coming out some time this year)…

Update: Matz’s talk is on Youtube now. You can even see me (or at least the back of my head) at the beginning and end of the talk, in the second row, towards the right. :)