RegionalRubyKaigi レポート (06) 松江 Ruby 会議 01

RegionalRubyKaigi レポート (06) 松江 Ruby 会議 01

書いた人: 野田哲夫

はじめに

Ruby1.9.1 のリリース直後、1.9.2 の開発に向けて松江でコアコミッターによる開発合宿が行われるのに合わせて、松江 Ruby 会議 01 を、コアコミッターによるパネルディスカッション形式で開催しました。

松江 Ruby 会議 01 について

開催日時
2009/2/2 (月) 17:00 〜 21:00
開催場所
松江オープンソースラボ(松江市開発交流センター)
主催
国立大学法人島根大学プロジェクト研究推進機構
後援
日本 Ruby の会、松江市、しまねオープンソースソフトウェア協議会
公式タグ
matsuerubykaigi01

プログラム

17:00〜17:50 島根大学プロジェクト研究

18:00〜20:30 パネルディスカッション - Ruby1.9.2 に向けて

  • パネリスト
    • まつもとゆきひろさん
    • 笹田耕一さん
    • 田中哲さん
    • 中田伸悦さん
    • 園田裕貴さん
    • 卜部昌平さん
    • 武者晶紀さん
  • モデレータ
    • 前田修吾さん

詳細、というか、模様はそのまま ustream でご覧になりますが、簡単に時系列で追っていきます。

開催は、島根大学が進める「オープンソース・ソフトウェアの安定化とビジネスモデルの構築に関する研究プロジェクト」(長い!) の一環としても行われ、前座として、Ruby 開発者も含めたオープンソース開発者をモルモットにした「オープンソース・ソフトウェアの生産性と開発モチベーションに関する考察」の研究発表を行った後に、パネルディスカッションがメインイベントとして行われました。 会場には地元松江のエンジニアや IT 業界関係者、行政・大学関係者など約 60 名が集まり、コアコミッターたちのハイレベルな話にややとまどいながらも、そこはモデレータの前田さんがしっかりフォローされ、 2 時間という時間もあっという間に過ぎてしまいました。 技術的にコアな話は、報告者 (私) もついていけませんでしたので、興味がある方は上記 ustream でご確認ください。

まずは自己紹介、Ruby1.9 へのそれぞれの立場を

前田修吾さん
モデレータ。会場のみなさんの目線で。翻訳を試みる係。
まつもとゆきひろさん
この騒ぎの張本人。みなさんがぼくに文句を言うのでごめんなさいという係。
笹田耕一さん
Ruby1.9.1 をどのように高速化していくか。
田中哲さん
1.9.1 には入らない次の話。
中田伸悦さん
いろいろやってます。
園田裕貴さん
1.9 のリリースマネージメント。
卜部昌平さん
まつもとさんに文句を言う係。
武者晶紀さん
1.8 系列のリリースをリードしています。

前回のあらすじ (モデレータの前田さんより)

Ruby 会議としては初めてですが、ほぼ同じメンバーでのパネルディスカッションを 2007 年 12 月 21 日、Ruby1.9 リリース直前イベントとして開催した。Ruby1.9 は無事 12 月 26 日にリリースされたが、1.9.1 の品質に到達しなかったので、ヴァージョン番号は 1.9.0 だった。そして月日は流れ、2009 年 1 月 31 日に Ruby1.9.1 が無事リリースされた。 ここ 1 年の開発の成果として、テストに関して

 make btest:
(前回):FAIL 3/808 tests failed
     ↓
(今回):PASS 928 tests

 make test-all:
(前回):3416 tests, 1641557 assertions,
     32 failures, 144 errors
     ↓
(今回):5787 tests, 2514985 assertions,
     1 failures, 0 errors, 0 skips

というように、前回のリリースから大きな進歩があったこと。 以上が紹介されました。続いて、ぞれぞれテーマを決めてパネルディスカッションへ。

1.9.1 について

  • 1.9.1 ってどういうバージョン?

園田さん 「Ruby には開発版、安定版があり、Ruby では長らく 1.x の x が奇数の場合が開発版、偶数の場合が安定版であったが、今回はいつか手に届く理想の Ruby2.0 があり、Ruby1.9 は安定版、開発版両方を含み、Ruby1.9.0 が開発版、そしてRuby1.9.1、1.9.2 と続くヴァージョンが安定版である。そして Ruby1.9.1 では言語の仕様自体が安定し、当面の安定段階に到達した。」

  • 1.8 からどこが変わったの?

まつもとさん 「一番大きいのは M17N (マルチリンガライゼーション) 機能が入り、unicode に変換しなくても文字列処理ができるようになったこと、その他言語機能のレベルでもいろいろ入って、記号で λ が書けるようになった!いろいろ便利になりました!!」

笹田さん 「Ruby のエンジンの部分にヴァーチャルマシンを導入したことが Ruby1.9 の特徴になっており、高速で実行されるようになった。詳細はるびま 0025 号で。JRuby と同程度に速いです!」

  • 1.9.1 のライブラリの変更は?

田中さん 「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 の今後

園田さんと武者さんから、Ruby のバージョン体系について以下のように説明がありました。

2.0 系
遥か高みに、いつか完成するであろう Ruby2.0 がある。
1.9 系
現実の Ruby は 2.0 に向けて開発されている。1.8 は安心して使える程度に開発が進められている。そしてさらに 1.9 系統が分岐した。1.9 は当面は安心して使えることを目指す。2.0 に向けての急な変化はいつかあるが、それは 1.9.2 や 1.9.3 という当面のレベルではない。
1.8 系
現在ほぼ完成している。いつかは 1.8 から 1.9 にジャンプすることが必要で、その際のギャップを埋めることが現在のミッションそのため、1.8.7 機能レベルでのケアが行われ、1.8.8 文法的な部分でのケアをする予定。プログラムも、1.8.7、1.8.8 へと対応していくと、1.9 への移行は楽になる。1.8.8 は 1.9.2 とシンクロさせつつ出せることを努力目標としていく。

さらに卜部さんから 1.8 系の今後のメンテナンスについて、 園田さん、笹田さんから、今後の Ruby1.9 の開発 (1.9.2 や 1.9.3) では大きな変更はないが、2.0 に入れる機能 (MVM 、クラスボックスなど ) を入れた時点で、互換性が崩れるので、これは今後の 1.9 系列の進化系とは少し違い、1.9.5 あたり (5 年後あたり ) も含めて今後検討していくことなどが話されました。

おわりに

以上、Ruby の本体の開発に関わっているコアコミッターたちによる最先端のお話で、 内容はほとんどついていけなかったのですが、Ruby がこれからも進化し続ける言語であることを目の当たりに実感できた貴重なイベントでした。

また次回、Ruby1.9.2 リリースの前後あたりに開催したいと思っています。

著者について

野田哲夫

島根大学法文学部