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:

include Java

Hadn’t heard about the coolio T-shirts? Check ’em out.

Koichiro Ohba and Yukihiro Matsumoto modeling JRuby T-shirts

Ohba Koichiro and Matsumoto Yukihiro. Don’t read too much into Matz wearing the T-shirt; on Friday night at the pre-conference dinner his chest was advertising O’Reilly’s Python Cookbook.

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”.

Audience at RubyKaigi2007

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.

Charles Nutter and Thomas Enebo of Sun at the Sun/CTC Ruby conference
· · ·
Akihito Fujii of Sun at the Sun/CTC Ruby conference
· · ·
Seiji Suzuki of CTC at the Sun/CTC Ruby conference
· · ·
Yukihiro Matsumoto at the Sun/CTC Ruby conference

From top to bottom: Nutter and Enebo of Sun, Akihito Fujii of Sun, Seiji Suzuki of CTC, and Matz.

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 String#length and String#strip work properly with UTF-8 data. There’s a new method called (I think) String#bytesize.

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.


Comment feed for ongoing:Comments feed

From: Thijs van der Vossen (Jun 15 2007, at 00:16)

Rails already works properly with UTF-8 data because of ActiveSupport::Multibyte. It's also pretty fast now, thanks to the performance patches from the Twitter guys.

The M17n stuff in Ruby 2.0 will probably improve performance, but it's not as if you can't properly handle UTF-8 in Rails today.

What I really hope is that M17n will not just make String#length and String#strip work properly with UTF-8 data, but that it will also do the more advanced Unicode stuff like composition, decomposition, and normalization.


From: Florian Hars (Jun 15 2007, at 00:25)

According to some dead trees in my possession (Richardson/Ruby: RESTful Web services, p. 271), the encoding detector is available as the chardet gem.


From: Aristotle Pagaltzis (Jun 15 2007, at 11:53)

<blockquote>I injected a little life into the proceedings by falling off the stage.</blockquote>

The visual of speaker just dropping off the stage in mid-sentence and crashing during a talk is priceless. I hope you didn’t hurt yourself too bad and that the audience could appreciate the moment.


author · Dad · software · colophon · rights

June 14, 2007
· Technology (87 fragments)
· · Dynamic Languages (45 more)
· · Ruby (93 more)

By .

The opinions expressed here
are my own, and no other party
necessarily agrees with them.

A full disclosure of my
professional interests is
on the author page.