「MacRuby 0.3」from MacRuby Blog

遅ればせながら MacRuby 0.3 をインストールしました。もうすぐ0.4が出そうですが。

以下、MacRuby Blogの記事MacRuby 0.3の訳です。

MacRuby 0.3

2008-09-08

おかげさまで、MacRuby 0.3 をたった今リリースしました!このリリースのために、この数か月間、懸命に取り組んできました。まだ開発者向けリリースですが、是非試してみてください。鉄は熱いうちに打て!

まず最初に、MacRuby には HotCocoa という名前のコアライブラリが同梱されるようになります。HotCocoa は Cocoaプログラミングをとても簡単にしてくれます。シンプルな Ruby のイディオムも使えます。このすばらしい仕事は Rich Kilmer のおかげです。サンプルプログラムが /Developer/Examples/Ruby/MacRuby/HotCocoa にあります。ドキュメントはまだ少しですが http://www.macruby.org/trac/wiki/HotCocoa にあります(これから充実させていきます)。

require 'hotcocoa'
include HotCocoa
application do |app|
  window :size => [100, 50] do |win|
    b = button :title => 'Hello'
    b.on_action { puts 'World!' }
    win << b
  end
end

もうひとつの大きな変更は、メソッドディスパッチャです。今回のリリースから完全に Objective-C ラインタイムベースとなりました。MacRuby は今や、Objective-Cラインタイムを使って、Rubyのクラスセマンティックスを実装し、純粋なRubyメソッドをディスパッチしているのです。これは重要な変更です。これによってコアの実装がとてもシンプルになり、2つの世界のあいまいさがなくなるのです。パフォーマンスの観点からも、YARVと同等になるはずです: 速いケースもあれば、遅いケースもありますが

また今回のリリースから Interface Builder をサポートしました。MacRuby Xcodeプロジェクトを使うと、クラスやアウトレット、アクションを作成することができます。Interface Builder からも自動的に見えるようになります。RubyCocoa と MacRuby ファイルのどちらも解釈できる新しい Rubyメタデータパーサを作りました。このパーサは MacRuby で書かれています。MacRuby に搭載された、すばらしい ripper extension を使ってパーサトークンを展開しています。

最後に、もちろんですが、たくさんのバグが修正されています。Cocoaサポートもかなり改善されて、LimeChatアプリケーションをほぼ動かせるようになりました。(LimeChat は現在、RubyCocoa から移植中です)。また、Objective-C にある PagePacker アプリケーションを MacRuby で再実装しました。これはサンプルとして MacRuby ディストリビューションに同梱されています。純粋なRuby側のバグがたくさん修正されたおかげで、RubyGems のコマンドもいくつか実行できるようになりました。単純な gems のインストールなら問題なく動くはずです。でもまだ、MacRuby で Rails が動くのを期待しないでくださいね!

MacRuby はリリースするたびにますます安定してきています。是非試してみてください。そして、問題を見つけたら教えてください! プロジェクトに参加したい、手伝いたいという人は大歓迎ですよ!