mrubyはここから始まった。
(昔のことなので記憶違いがあるかもです。気がついた方はこそっとおしらせください)
2009年Ruby東京プレゼンテーション
事の起こりは2009年Ruby東京プレゼンテーションでした。
Ruby東京プレゼンテーションとは福岡県がこの年から始めたRubyに関するセミナーで福岡県も島根県と並んでRubyを応援していますということを示したもので2018年まで毎年秋葉原で開催されていました。
この会の中に少テーブルにわかれてディスカッションするというのがあってその中で
”組込み向けにRubyが使えないか”という話がでたのがこのmruby開発のきっかけです。
この年の内閣府の「先端科学研究」支援事業に応募したものの採択されなかったようです。ちょうど鳩山政権が誕生して予算についてかなり制限があったようです。
再度くじけず挑戦
九州経済産業局「平成22年度地域イノベーション創出研究開発事業」に組込み向けRubyということで再挑戦することに。これがなければmrubyは生まれていなかったでしょう。この時はまつもとさんのNACL、九州工業大学(田中准教授)、福岡県、福岡CSK(現SCSK九州)の共同提案でした。
提案の第一次審査は熊本大学の末吉教授。 なんと田中准教授の恩師という偶然! 末吉先生にはこの縁でその後私が熊本大学でmrubyの話をさせていただくことになるのですが
「和明(田中先生のことは末吉教授はこう呼んでいた)がなんか面白そうなものを出してきたと思ってすぐ通したよ」
その後の産総研やNEDOの面接審査を通して見事採択されることになりました。ぱちぱち
ここで辞めるといったらみんな怒るだろうなぁ by Matz
開発は2年間、このときにわかりやすい呼び名ということで「軽量Ruby」という名称が生まれました。まぁ開発コード名みたいなものです。
軽量Rubyの開発の実際の内容は
1.軽量Rubyの実行環境(VM、GC、コンパイラ、ライブラリ含む)
2.FPGAボードに搭載可能なRubyコア(Rubyを動作させるソフト)の完成
3.Rubyチップ仕様書
4.軽量Ruby専用ミドルウェアへの考察レポート
この中でFPGAボードとRubyチップはこのプロジェクトのオブザーバを努めてくれた東芝情報さんを通して試作などを検討したのですが実際の販売価格が現実の製品として競争力のない価格になることがわかり断念しました、
また産業用機器向けのリアルタイムOSへのRuby適用ミドルウェアの研究・開発も並行して行われ試験的に産業用ロボットへのmruby適用も行われました。
この産業用ロボットへのmruby応用は現在も田中研究室で継続して行われています。
まつもとさんには軽量Rubyのコア部分、特にVMの開発を担当して頂いていましたが2年目に入り急に進捗が無くなってきました。後で聞くと開発にかなり苦しまれていたようでタイトルにあるここでやめたら・・・という状態だったようです。これ以上遅れたら困るという段階で進捗会議上で10月末までVMが出てこないと終了できませんとお願いした覚えがあります。
軽量ということで提案時には1MBを切るようにがんばりますという内容だったんですが最終的に出来上がったのは400KB, Ruby1.9が2400KB程度ですので大きな成果を得ることが出来ました。
他にも知らない話
mrubyのビルドについて
これは開発期間中もかなり検討しました。mrubyが使われると想定される環境は私達が思う以上に色々あるのではということとクロスコンパイルなども想定されるのでmakeでは依存関係が複雑になりすぎるかもといういうことでrakeを採用しています。公開当初はrakeがない環境も想定してmasuidriveさん開発のminirakeを用意したりしました。現在のmrubyバージョンでのminirakeは内部的にrakeを呼ぶものに変更されていますのでRubyが必須です。
このrakeでのビルドは組込み関連の方々には馴染みがないので評判が悪いようです。幾度かmakeでのビルドに切り替えようかという話は出ましたが実現していません。
mrubyのドメイン名について
2012年のmrubyリリースにあたってmrubyのドメイン名も検討されました。その当時はまだそれほどトップレベルドメインが今ほど豊富でなく.comが一般的でした。ところがmruby.comはアメリカのコメディアンにmrubyという人がいてすでに取られていました。でやむなく.orgにしたのですが今思うととオープンソースという意味からも.orgで正解だったと感じますね。
(ちなみに現在のmruby.comは所有者がいないようです)
オープンソースでの公開について
mruby公開に当たってオープンソースでの公開は当然のことと考えていたのですが思わぬところから反対が。このプロジェクトのスポンサーである経産省から”これだけ予算をかけて作ったものを無償で公開とはなにごとか”と許可がでませんでした。いまではオープンソースというものが市民権を得てると思いますがその当時、特にお役所ではほとんど認知されていない状態でした。この説得にはホント時間がかかりました。最終的には許可していただいたのですが納得はされていなかったかもです。
さて相当長くなってしまいました。お付き合いありがとうございました。他にも予定して話があるので少し役に立つあなたの知らないmrubyの話を書こうかなと思っています。
明日は@DRB_labさんの
”外部require機能を活用してOLEDを制御する” です!