書いた人: 野田哲夫
Ruby1.9.1 のリリース直後、1.9.2 の開発に向けて松江でコアコミッターによる開発合宿が行われるのに合わせて、松江 Ruby 会議 01 を、コアコミッターによるパネルディスカッション形式で開催しました。
詳細、というか、模様はそのまま ustream でご覧になりますが、簡単に時系列で追っていきます。
開催は、島根大学が進める「オープンソース・ソフトウェアの安定化とビジネスモデルの構築に関する研究プロジェクト」(長い!) の一環としても行われ、前座として、Ruby 開発者も含めたオープンソース開発者をモルモットにした「オープンソース・ソフトウェアの生産性と開発モチベーションに関する考察」の研究発表を行った後に、パネルディスカッションがメインイベントとして行われました。 会場には地元松江のエンジニアや IT 業界関係者、行政・大学関係者など約 60 名が集まり、コアコミッターたちのハイレベルな話にややとまどいながらも、そこはモデレータの前田さんがしっかりフォローされ、 2 時間という時間もあっという間に過ぎてしまいました。 技術的にコアな話は、報告者 (私) もついていけませんでしたので、興味がある方は上記 ustream でご確認ください。
Ruby 会議としては初めてですが、ほぼ同じメンバーでのパネルディスカッションを 2007 年 12 月 21 日、Ruby1.9 リリース直前イベントとして開催した。Ruby1.9 は無事 12 月 26 日にリリースされたが、1.9.1 の品質に到達しなかったので、ヴァージョン番号は 1.9.0 だった。そして月日は流れ、2009 年 1 月 31 日に Ruby1.9.1 が無事リリースされた。 ここ 1 年の開発の成果として、テストに関して
というように、前回のリリースから大きな進歩があったこと。 以上が紹介されました。続いて、ぞれぞれテーマを決めてパネルディスカッションへ。
園田さん 「Ruby には開発版、安定版があり、Ruby では長らく 1.x の x が奇数の場合が開発版、偶数の場合が安定版であったが、今回はいつか手に届く理想の Ruby2.0 があり、Ruby1.9 は安定版、開発版両方を含み、Ruby1.9.0 が開発版、そしてRuby1.9.1、1.9.2 と続くヴァージョンが安定版である。そして Ruby1.9.1 では言語の仕様自体が安定し、当面の安定段階に到達した。」
まつもとさん 「一番大きいのは M17N (マルチリンガライゼーション) 機能が入り、unicode に変換しなくても文字列処理ができるようになったこと、その他言語機能のレベルでもいろいろ入って、記号で λ が書けるようになった!いろいろ便利になりました!!」
笹田さん 「Ruby のエンジンの部分にヴァーチャルマシンを導入したことが Ruby1.9 の特徴になっており、高速で実行されるようになった。詳細はるびま 0025 号で。JRuby と同程度に速いです!」
田中さん 「1.9.1 ではプロセスを起動するのが強力になっている。Time オブジェクトでナノセコンドが使えるようになった!ドキュメントに書いてないことが多いので、楽しめるかもしれません。」
武者さん 「有理数と複素数のクラスが組み込みになった。いろんな数値をカジュアルに扱えるようになった。」
園田さん 「RubyGems (Ruby のディファクトスタンダードなパッケージマネージメントシステム ) が入った。今回 1.9 でバンドルされて、Ruby 本体とも統合できるようになった。素数の列挙が簡単にできるようになった。私が頑張りました!」
園田さん 「今あるプログラムを新しい実行しようとすると Syntax Error が出るので、日本語を使う場合は encoding を指定すること。今まで依存しているライブラリが 1.9 に対応していないので、Binary の場合は再コンパイルが必要です。」
武者さん 「1.8.6 を使っている人は、1.8.7 に対応させないといけない。」
卜部さん 「移行への不安があればどんどんフィードバックしてください。」
園田さん 「社内でスクリプトを書く程度には使えますが、オンラインバンクを 1.9.1 で構築した会社があったとすれば、私は使わないでしょう。1.8 なら大丈夫でしょう。既に 1.8 を使っている人は将来 1.9 に移行するのであるから、ライブラリ資産などがあれば実験的な移行の準備を始める時が今です!」
園田さん 「1.9.2 が出るまでは 1.9.1 を確実にメンテナンスします。1.9.2 が早くて今年の末、遅くて今年の 6 月、あるいはその後……今年の RubyKaigi で発表します。」
園田さんと武者さんから、Ruby のバージョン体系について以下のように説明がありました。
さらに卜部さんから 1.8 系の今後のメンテナンスについて、 園田さん、笹田さんから、今後の Ruby1.9 の開発 (1.9.2 や 1.9.3) では大きな変更はないが、2.0 に入れる機能 (MVM 、クラスボックスなど ) を入れた時点で、互換性が崩れるので、これは今後の 1.9 系列の進化系とは少し違い、1.9.5 あたり (5 年後あたり ) も含めて今後検討していくことなどが話されました。
以上、Ruby の本体の開発に関わっているコアコミッターたちによる最先端のお話で、 内容はほとんどついていけなかったのですが、Ruby がこれからも進化し続ける言語であることを目の当たりに実感できた貴重なイベントでした。
また次回、Ruby1.9.2 リリースの前後あたりに開催したいと思っています。