工藤探偵事務所

Resarch and Investigation

ルビィ一言薀蓄 第参回「Ruby 1.9.1とYuguiさん」の巻

kudo-shunsaku2009-02-17



思いつきで書く Ruby の周辺に住む薀蓄、というよりはメモ書きみたいなものです。
概ねは皆さんも知ってる当たり前のことを書くことになるかと想います。

でも筆者はメメントなのでどこかに書き留めて置くこととします。
メモの本来の意義は、忘れるためなのですから。

第参回は、「Ruby 1.9.1とYuguiさん」の巻です。




先日デブサミ2009が開催されまして、そのセッションの一齣でRuby 1.9.1リリースマネージャーである「Yugui」さんが講演されるというので拝聴しに行って参りました。講演される「Yugui」さんとは一切面識は御座いませんが、彼女の著書を拝読させて戴きました。

「Yugui」さんは、「初めてのRuby」この本の著者でもあります。

初めてのRuby

初めてのRuby

初めてのRuby

yugui wiki - 『初めてのRuby』サポートページ


因みに、「初めてのRuby」に関しては、高井直人氏が「Rubyの定番書籍になる」と強くご推薦のお墨付きで御座います。

『初めてのRuby』は定番書籍になる - recompile.net


更に因みに高井氏御自身も先日著作である「JavaプログラマのためのRuby入門」を出版されました。此方も御贔屓の程、宜しくお願い致します。

JavaプログラマのためのRuby入門

JavaプログラマのためのRuby入門

JavaプログラマのためのRuby入門


いつもの如く前置きが長くなりましたが、以下のその講演内容の要約(走り書き)を記載します。内容に不足部分や聴き間違いなどあるでしょうし、箇条書きで読みづらいかとも思われますが、些少なりとも御裾分けさせて頂きますので、宜しければでどうぞ。


Developers Summit 2009(デブサミ2009)





Ruby 1.9の現状と導入ポイント

Ruby 1.9.1リリースマネージャー / 日本Rubyの会
Yugui

Ruby 1.9.1がリリースされました。この新しい系統のRubyとどのようにつきあえばよいでしょうか。その特徴、メンテナンス状況と見通し、1.8系統からの移行における留意点など、導入の検討材料となる情報をご案内します。

Ruby 1.9

  • 1.8のリリースから6年ぶり。
  • 仮想マシン
  • 文法の改善
  • M17N*1
  • うらべさん --> 1.8.6 及び 1.8.7 をメンテナンス

Ruby 2.0

  • 理想のRubyへ向けて進んでいる。
  • 1.8.7 は、一部 1.9の機能を取り込んでいる。
  • 1.8.8 のリリースも今後ある。

何故 Ruby 1.9 か?

  • 2.0への道。RubyRubyであるためのRuby
  • 開発体制
  • 実装刷新
  • 機能向上
  • ある意味でRubyLISPを使い易くしたもの。そのために「暗黙の変数」などを取り込み、さらにPerlなどの互換性も確保してきている。
  • 新しい言語としてRubyを利用する方々には必要の無い機能も含まれているために、これらの互換性のためだけの機能を省いていく方向にある。

開発体制

  • Release Management
  • Redmine
  • 開発会議
  • Branch policy
  • サポートレベル

Redmine

  • 課題追跡システム。Issue Tracking System
  • Rails アプリケーション
  • メーリングリスト連携改造(今までメーリングリストで運用していたため、開発者の利便性のために)
  • (IRC連携)(実装中)
  • Wikiによる情報共有
  • Mats日記(との連携?)
  • 過去の判断が、どのように意思決定されたのか?を遡れるようにする。

開発会議

branch policy

  • 1.8 - 2つのブランチをメンテナンス
  • 1.9 - 1つのブランチをメンテナンス
  • パッチレベル
  • 実用で利用のための三年保障の要求あり(検討中)

サポート

  • 四段階

(1) Supported (継続的ビルド、メンテナンスの二種類。)
(2) Best Effort (部分的に動かない機能がある。)
(3) Perhaps (よく知らないけど、動くかもしれない。)
(4) Not Supported

ドキュメント

  • Public リファレンスマニュアル刷新計画(有志により進行中)
  • doc.loveruby.net

標準化

RubySpec

Ruby Association

変更点概略

  • 1.9.0 --> 1.9.1
  • 1.9.1 で1.9としての使用が固まった。
  • 動作安定性に加えて、仕様安定性が担保された。--> 1.9.4 までは仕様変更は無い。

文法改善

  • ブロック引数
  • lambda メソッド。 --> (x,y){ x+y }
  • オプション引数構文の制限緩和
  • 新しいハッシュリテラル --> {foo: 1, bar: 2}
  • NEWSを参照の事。

ライブラリ整理

  • 古いライブラリ(削除)
  • SOAP4R(gemでインストールできるので削除)
  • RubyGems, Rake 追加 (最新版だと高速に動作するので同梱)
  • minitest

仮想マシン

難読化

M17N

  • String#encoding, Symbol#encoding
  • IO#external_encoding, ...
  • Encoding, 文字列がただのバイトコードから、自分のエンコーディングを知っている文字列になりました。これにより文字境界も判別できます。
  • マジックコメント。 --> # -** coding: utf-8 -*-

修正順序 - 1.9への導入の手引き

まとめ


以上がYuguiさんの講演を拝聴した内容でした。
そろそろRuby 1.9.1を試しに使ってみようかなという感じでもあります。
(それ以前に全然プログラムを書いてないのですけど。)

追記:

Yuguiさん御本人ブログ、発見しました。詳しくはコチラでどぞ。


「おひさしぶりですねぇ。」

しゅつえん、やせいのあかちゃんうさぎちゃん。


今日はここまで。次回にもご期待下さい。

*1:-M17N: multilingualization, マルチリンガライゼーション。多言語化。-