And is there ever a lot of it. I was going to break this into a handful of targeted snippets, but anyone who cares about the language would read ’em all anyhow. Thus, an illustrated tour through Tokyo conferences, JRuby 1.0, Refactoring, and M17n.
JRuby 1.0 · It’s out. Doesn’t mean that JRuby’s perfect yet, but a huge proportion of Ruby code, notably including most Rails apps, just runs. Performance is roughly comparable to native Ruby; slower on some things, faster on others.
The late changes that mattered most were around Java integration, as featured on the back of the popular JRuby T-shirts:
Hadn’t heard about the coolio T-shirts? Check ’em out.
We don’t know yet how much JRuby is going to matter in the big picture. But I have to say that if the rest of the OSS community was as cheery and productive and focused as JRuby, the world would be a better place.
The announcement of JRuby 1.0 happened during the presentation by Charles Nutter and Thomas Enebo at RubyKaigi2007; let me tell you about that.
Kaigis are Fun · The weekend featured RubyKaigi2007. What a blast; the (numerous) staff had T-shirts reading “No Ruby, no Life”.
There were 400 or so attendees and, as is usual with Ruby conferences, it sold out instantly. The presentations were all a flat half-hour except for the keynotes from Matz and Dave Thomas. That worked better than I would have thought. The presentations (in my case seen through the English/Japanese language barrier) were very good, at least as good as the US RubyConf and probably better on average than RailsConf (Not surprising, since Ruby is a much more general-purpose technology than Rails).
I also have to mention how cheery the whole thing was; every single speaker tried to be funny. Most of them got some big laughs, and Park Jin from Korea absolutely brought the house down with joke that turned out to be un-translatable. Technical conferences in general would benefit from a few more belly-laughs.
I had fun reprising my Ruby-should-do-Unicode-better rant, and who knows, it may be working, see below.
The Traditional Approach · On the Monday after Kaigi, there was another conference, put on by Sun and CTC, with presentations from VPs and me and Charles-&-Thomas and Matz. It was a much more traditional Japanese-business affair, some of the presos were basically a suit droning away to PowerPoint bullet lists. Everyone but me and Matz wore suits (I was in Cool Biz mode).
I injected a little life into the proceedings by falling off the stage. Really. There was a big screen at the back; I strolled over to point at something on one of my slides and all of a sudden there was no stage underneath me. I had a moment of raw horror as I looked down and my stage-light-dazzled eyes saw black emptiness, but fortunately it was only a drop of a couple of feet.
Anyhow, the real news story is that, on very short notice, they packed the joint, could have had way more people if there’d been room; mainstream corporate Japan is getting the Ruby vibe.
M17n · This is short for “Multilingualization”, what Matz has been promising will be in Ruby 2.0 for some years now. I have some firm ideas about how M17n should work (short form: Unicode should not be compulsory, but it should be easy, correct, and fast).
Anyhow, I was sitting beside Matz in the front row while one of the
less-exciting speakers was speaking, and he popped up an Emacs buffer and said
“Look at this”. It was his private-sandbox dev version of Ruby, and he showed
me how he could make
work properly with UTF-8 data. There’s a new method called (I think)
I gather that the idea is that there’ll be a pragma you can assert per-file or per-IO or per-socket to specify the character encoding from that data source, and then everything will Just Work. We agreed that for the cases where you just don’t know, it would nice for someone to translate Python’s Universal Encoding Detector to Ruby. I might be tempted to try that if nobody else has.
This cheers me up immensely. I also think it’s the single piece of Ruby 2.0 that’s most likely to make the next version attractive to the Rails developers.
Refactoring! · Hopping back to this side of the Pacific, and in a completely different space, check out Tor Norbye’s latest on refactoring Ruby in NetBeans.
He’s getting close to having a usable “Find Usages”, and that’s kind of the holy grail. With it, you can do any number of serious refactorings; without it, you can’t really do any. Stay tuned.
It’s a fine, fine time to be a Rubyist.