Webサービスの分野などで人気を博してきたオブジェクト指向のプログラミング言語「Ruby」に2012年4月、組み込み向けの軽量版「mruby」が登場した。

 本家Ruby(CRuby)の生みの親である、まつもとゆきひろ氏が、組み込み分野に強みを持つ福岡県の企業や大学などと共同で経済産業省の「地域イノベーション創出研究開発事業」として開発したものである(Tech-On!関連記事01同02)。

軽量版のmrubyを開発したまつもと氏(写真:新関 雅士)
軽量版のmrubyを開発したまつもと氏(写真:新関 雅士)
[画像のクリックで拡大表示]

 mrubyの最大の特徴は、実行環境(仮想マシン:VM)の大きさが最小構成で550kバイトと小さく、他のアプリケーションにVMごと組み込みやすいことだ。C言語などで記述した本体のアプリケーションの中で、ネットワーク処理やテキスト処理などC言語の苦手な処理やRubyの得意な処理をmruby側にオフロードさせる、といった使い方ができる。

 ネットワーク側とのやり取りが増えつつあるデジタル家電など組み込み機器での利用のほか、スマートフォンのアプリへの組み込み、ゲーム・ソフトウエアにおけるスクリプト言語としての利用、産業機器での利用などが見込まれている。

 mrubyの反響は大きく、既にmrubyを利用した派生ソフトウエアも多く登場している。iPhoneやiPad向けのアプリでRubyを利用できるようにするための「MobiRuby」、Apacheの機能をRubyで拡張するための「 mod_mruby」、AndroidアプリでRubyを利用するための「 mruby on Android 」などだ。

 mrubyは何のために開発され、どこに向かおうとしているのか。生みの親である、まつもとゆきひろ氏に経緯を聞いた。(聞き手=進藤 智則)

まず軽量Rubyの開発が始まった経緯からお聞かせ下さい。福岡県とはどのようなつながりがあったのでしょうか。

 2009年に「先端科学研究」という国のプロジェクトがあり、福岡県の方に「Rubyで申請してみてはどうか」と言っていただきました。その際、今のRubyをもっと広い範囲で発展させるために何が必要か考えてみたのです。

 テーマはいくつかあったのですが、一つはクラウドです。単なるWebアプリケーションの開発にRubyを使うだけでなく、クラウドの導入によりエラスティックなデータ・センターが増えてくると、今後、そうした分野でも(言語面での)支援が必要だろうと。

 そして、もう一つが組み込み領域でした。実はあともう一つあったのですが、ひとまず、この二つが重要だろうと見込みました。

 だだ、2009年はその後、民主党への政権交代がありまして、先端科学研究(の予算)は結果的に縮小されたこともあり、我々の提案は通らなかった。

 それはそれとして、三つの中でも特に「Rubyで組み込み」というテーマについて、福岡県の企業の人々が関心を持ってくれました。

 というのも、九州地域はメーカーが多いこともあり、福岡周辺のソフトウエア関係の企業には組み込みに興味を持つところが多くあったのです。そうした後押しもあり、2010年の経済産業省の「地域イノベーション創出研究開発事業」には、「組み込み」というテーマに絞って応募してみたところ、採用されたというのがmrubyの経緯です。

 今のCRubyではリーチできない領域、Rubyにおいて新規に開発が必要なものは何かというのを考えた際、(CPU性能などの演算資源などが比較的豊富な)組み込み分野の中でも上位の領域というのがターゲットとして出てきたわけです。