Wednesday, July 01, 2009

Translation of a Panel Discussion about Ruby 1.9.1

Japan Ruby Users Group ( publishes an online magazine, Rubyist Magazine, a.k.a., RUBIMA. RUBIMA has some regular topics such as Getting Started, RUBIMA golf, or Ruby News, and featured topics. The latest issue released on June 30, 2009 ( reported five RegionalRubyKaigis held in Japan from December, 2008 to March, 2009. Among them, the report from Matsue region was interesting. As many Rubyists might know, Matsue is Matz’s home town. At Matz's home town, a panel discussion about Ruby 1.9.1 was delivered on February 2, 2009 by Matz, ko1, and other core Ruby committers. The report summerized the discussion. Below is the translation (for my English training ;) ).

Topic: Ruby 1.9.1 in general
Moderator: Shugo Maeda
Panelist: Yukihiro Matsumoto(Matz), Koichi Sasada(ko1), Akira Tanaka, Nobuyoshi Nakada, Yuki Sonoda, Shohei Urabe, and Akinori Musha

Maeda: What does the version number, 1.9.1, mean?

Sonoda: Since long ago, Ruby has had two kinds of versions: one is a development version and the other is a stable, production one. If Ruby has an odd minor version like 1.1 or 1.3, then it is for a development. If an even minor number is there like 1.2, 1.4, that Ruby is for a production. But, we changed this rule recently. Now, we agree with that Ruby 1.9.0 was a development version while Ruby 1.9.1, 1.9.2, and the following 1.9 series are versions for a stable ones. This is because the language specification has been fixed in 1.9.1. Also, we have Ruby 2.0, which is an ideal but unstable, future version.

Maeda: What are the major differences between Ruby 1.8 and 1.9?

Matz: The biggest difference is that Multi-Lingualization (M17N) has become the part of Ruby. Because of this change, Ruby doesn’t need to convert a string into Unicode for various string operations. Besides, Ruby 1.9.x series have gotten a variety of new features in terms of ease of use. For example, users can use a symbol, λ, in their programs.

Ko1: Another major change would be that a virtual machine has been introduced to a part of Ruby engine. Thus, Ruby 1.9 runs so fast as JRuby does. The detail was reported on RUBIMA vol. 25( .

Maeda: What libraries have been changed in 1.9.1?

Tanaka: Ruby 1.9.1 has a powerful library to run processes and enables to handle nanoseconds in a Time object. This means huge. Many new features have not yet documented, so users would have a joy of finding them.

Musha: Classes of rational and complex numbers have been included in a standard library. Ruby 1.9.1 has a broad coverage of numbers and provides an easy way of using them.

Sonoda: RubyGems (defacto standard package management system of Ruby) has been bundled since Ruby 1.9. Ruby 1.9 has an ability to integrate RubyGems. In addition, users can get prime numbers easily if they use Ruby 1.9. I made it!

Maeda: What should users care about when they go to Ruby 1.9.1?

Sonoda: Since old programs would cause Syntax Errors when those are using Japanese characters, be sure to add the encoding line in each program. Users would need to recompile old Ruby programs because old libraries that user programs have depended on are not compatible to Ruby 1.9 anymore if binary forms of libraries are used.

Musha: Before users go to Ruby 1.9, they should update their Ruby to 1.8.7 only if they are using 1.8.6.

Urabe: Give us your feedback if you have concern about it.

Maeda: Has Ruby 1.9.1 come to a production level?

Sonoda: I don’t think Ruby 1.9.1 is qualified to online banking system so far. I don’t want to use such kind of services if those are written in Ruby 1.9 right now. Still, Ruby 1.8 has been good enough for a production. However, Ruby 1.9.1 is useful to write scripts for an internal purpose in a company. I recommend that Ruby 1.8 users should prepare for jumping up to 1.9 since they will surely use 1.9 series in future. Especially when users have their own libraries written in Ruby 1.8, it is time.

Maeda: What versions will you continue maintaining?

Sonoda: We definitely keep maintaining Ruby 1.9.1 by the release of 1.9.2. Ruby 1.9.2 is scheduled to release in this June or someday by the end of this year... Ahh, I’m not sure, so I'm going to announce at this year’s RubyKaigi.

1 comment:

Anonymous said...
This comment has been removed by a blog administrator.