InfoQ

News

Ruby 1.9をリリース

作者 Rick DeNatale, 翻訳者 編集部 投稿日 2007年12月26日 午後6時10分

コミュニティ
Ruby
トピック
パフォーマンス&スケーラビリティ
タグ
Rake,
RubyGems,
ドキュメンテーション,
Open Source Project Releases

約束どおり、Ruby 1.9を2007年のクリスマスに発表した(source)。 

以前は臨時のマイナーバージョンを備えたRubyのバージョンナンバーは試験的なバージョンを意味していた。従って、Ruby1.8が製品バージョンの間はずっとRuby1.7は試験的なバージョンだった。この実装は製品使用として準備が整うまでにはまだしばらく時間がかかるが、Ruby1.9.0の出現でRuby1.9が試験的とはみなされなくなるため、Rubyの主要チームはこれを変更した。まつもと氏は1.9の安定性改善していると断言した。これ以上試験的な機能が追加されずに、現在も言語を安定させるべきである。Railsを含む主要なRuby製品はすでにRuby1.9との互換性に取り組んでいる。より詳しい情報は以下を参照してほしい。

Ruby1.9は多くの変更や新しい機能を備えている。これらの多くは評判もよく、例えば、特にいらないものは排除するといった新しいリテラルハッシュ値構文などである。=> ハッシュ値議論を引き起こす方式と呼ばれるもので、以下のようなものである。

   link_to :controller => 'People', :action => "list" 
このように記すこともできる。
   link_to controller: fred, action: "list" 


Ruby 1.8と1.9の違いを記してある一番のソースは、Mauricio Fernandez氏が記した(source)長いリストである。Mauricio氏は2年間かけてじっくりとその違いを追跡してきた。そして最近、subversionの変更ログから自動的にリストを抽出し(source)、発表した。

また、Ruby GemsRakeのようなキーとなる外部ツールが、今では標準的なライブラリの一部になっているのが興味深い。

たぶん一番の変更は内部構造だろう。Ruby 1.9は(笹田耕一氏が開発した)YARVと呼ばれるRubyのVMを使用しており、それは以前からある、まつもと氏が実装していた抽象構文木(AST)のインタプリタよりもはるかに効率的である。YARVも並列実行スレッドの変更機能を持っている。Rubyは現在カーネルスレッドを使用しており(Rubyコードはグローバルインタプリタロックの影響で並列動作はしないが)、Fiberと呼んでいる軽量スレッド機能で「Continuation(継続の機能)」を更新して(source)、RubyにCoroutine(関数)を持ってきている。

一方、Ruby 1.9はRuby 1.8完全な互換性は実現していない。いくつかの(用語の)意味が変更となった。例えば、ブロック引数とは1.8ではブロックローカル引数の意味だが、1.9では少し意味が異なってきた。この変更は、多くの既存のRubyプログラムがRuby 1.9を利用するために、若干の手直しが必要であるということを意味している。

Rubyの本の著者たちは大変になるだろう。Rubyの達人プログラマ達は、「Programming Ruby」の第3版(source)、またの名を「Pickaxe(つるはし)」を現在執筆中である。これは、達人達が行っているプログラミング上の慣例を、ベータプログラムの下で利用できるようにしている書籍である。

オライリーもまた、David Flanigan氏とまつもとゆきひろ氏の共著である「The Ruby Programming Language」(source)を2008年1月に出版予定である。これは、Ruby 1.9をカバーするために更新され、まつもと氏の「Ruby in a Nutshell」を大幅に書き直したバージョンである。

原文はこちらです:http://www.infoq.com/news/2007/12/ruby-19

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

特集コンテンツ一覧

トップスポーツチームの監督に教わる秘訣

この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。

事例研究:Dutch Railwaysのプロジェクトにおける分散拠点でのスクラム・プロジェクト

この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。

Agile2008チーム参加レポート - 帰国そして変化

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。

SilverlightとJavaのインターオペラビリティ

マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。

Agile2008 チーム参加レポート - カンファレンス参加編

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。

Agile2008 チーム参加レポート - 動機/準備編

筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。

Javaトラブルシューティングメルマガ総集編 2008/08~09

エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。

モデル駆動アプローチがうまく機能しない(しなくなる)8 つの理由

この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。