きりかノート 3冊め

おあそびプログラミング

これからのRubyCocoa

はじめに「次を1.0にしよう」という話をしていたのが、0.5の直前のころだから2006年の末ごろ。それから時は流れてようやく1.0になったRubyCocoaは、これからどうなるのか?個人的な展望を書いとこう。

先日「Ruby×RubyCocoa/MacRuby×HotCocoa」の著者の高尾さんとも話したんだけど、RubyCocoaは安定してるというか、メンテナンスモードみたいなもので、最近は新しい機能はあまり増えていないんだよね。もう足すことはあまりないし、主要なコミッタの多くはMacRubyの開発者でもあって、そちらにリソースが行ってる。

でも誰の言葉か忘れてしまったのだけど、「ソフトウェアが生きていくためには変化が必要」なんだよね。だからあえて探してみよう。

Objective-C GC (-fobjc-gc)

Objective-C 2.0のGCに対応。今のRubyCocoaは、Objective-C部分はretain/releaseモデルのみに対応しており、GCには対応していない。これはどういうことかと言うと、-fobjc-gcしたアプリケーションが作れないということ。GCObjective-Cコードを混ぜたり、GC onlyなフレームワーク・ライブラリと一緒に利用できないのだ。今後、GCのみのコードが増えてくることが予想されるので、RubyCocoaとして対応しておくことには価値があると考えてる。

これはわりと本気。

リファレンス(RDoc)

RubyCocoaを使うとき、コードに書くのはほとんどCocoa APIの読み替えということもあって、RDocがほとんどない(単にさぼってるだけという指摘も否定しません)。でも、メンテナンスするときにすぐには思い出せないコードがたくさんあるので、RubyCocoaの内部を読むためにRDocがほしい。ユーザというより開発者向けだね。

HotCocoa

MacRubyのもっとも有名なfeatureかもしれないHotCocoa。完全に同じにはならないけど、原理的にはRubyCocoaにも導入可能と考えている。ちょっと試してみて簡単そうだったら入れるかも。

問題は名前だ。

Ruby(MRI) 1.9 対応

つい最近「1.9でコンパイルできない」という問い合わせがあって「RubyCocoaは1.9対応してないよ」と答えたことがあったので挙げてみる。

1.9系にはMacRubyがあるんで、基本的にはそっち使うのがRuby言語+Cocoaフレームワーク的になにかとおすすめ。でも、MRIの拡張ライブラリが使いたいとか、RubyCocoaのほうが適している場所もありそう。1.9.0のリリース前の話だったと思うけど、Threadまわりをちょっといじったら動いたという話をふじもとさんから聞いた記憶があるので、もしかしたらそんな大変じゃないかもしんない。

まあでも優先度は低いな。MacRubyのほうがアツイし。

10.4サポートの終了

機能じゃないけれど、10.4 Tiger対応の終了。これはRubyKaigiのときに中川さんとalloyの2人とは合意したのでほぼ確実。Objective-C 2.0を追いかけるためには、10.4がどうしても重荷になってしまう。OSについてるRubyも1.8.2と古いし。

今後は10.4でも動作する1.0系のメンテナンスブランチを切って、バグ修正などの小さな変更のみ行う、という感じかなあ。


ということで、これからやるかもしれないことを挙げてみた。

(2009/08/06 追記)これ忘れてた。dtrace対応。内部のデバッグが原始的なアプローチが多いので、手段を増やしたいなあと。