RubyCocoa、PyObjCとブリッジサポート

Cocoaの開発言語は、Objective-Cだ。このプログラミング言語は、指摘を待つまでもなく、非常にマイナーな言語だ。もちろん、きちんとした理由があるからメインの開発言語として採用されているのだが、Cocoaプログラミングを多くの人に体験してもらいたい場合、これしか選択肢が無いという状況はネックになる。また、Objective-Cはコンパイルをしてネイティブバイナリを作成するタイプの言語である。スクリプティング言語を使って、気軽にプログラミングしたい場合もあるだろう。

このような状況に対処するため、昔からCocoaには、他のプログラミング言語とのブリッジが作成されてきた。10.0ではJavaとのブリッジが搭載されていた。そして10.5からは、RubyとPythonのブリッジが標準搭載される。RubyとのブリッジはRubyCocoa、PythonとのものはPyObjCと呼ばれている。

もともと、これらのブリッジは古くから存在していた。だが、OSに標準搭載されるという意義は大きい。1つには、ソフトウェアの追加インストール無しに、多くのユーザに使ってもらうことができる。もう1つは、Appleからのサポートが期待出来る点だ。

さらに、Leopardではこれらのブリッジを支援するため、嬉しい機能追加がある。スクリプティング言語から、あるMac OS Xのフレームワークにアクセスするには、そのフレームワークのAPIに関する詳しい情報が必要である。Objective-Cのためのヘッダファイルにもある程度の情報が書かれてはいるが、すべての情報が含まれている訳ではないし、Objective-Cで書かれたヘッダをパースするのも大変だ。

そこでLeopardでは、ほとんどのフレームワークが、BridgeSupportと呼ばれるファイルを提供するようになった。これはXMLで書かれたもので、そのフレームワークのAPIに関する情報が、言語から独立した状態で記述されている。これを使うことで、RubyやPythonからのブリッジの作成が格段に容易になった。もちろん、Objective-Cフレームワークだけではなく、C言語ベースのフレームワークも提供している。

RubyCocoaという名称ではあるが、Cocoaだけではなく、Mac OS Xのほぼすべてのフレームワークにアクセスできるようになった。Mac OS XにおけるRubyが活躍出来る領域は、飛躍的に広がったことになる。