mruby/cの安定版1.0リリースに先立ち、Rubyおよびmrubyの開発者で、ITOCの顧問でもあるまつもとゆきひろさんに、mruby/cプロジェクトへの期待、今後の方向性などについて東専門研究員とともにお話いただきました。

インタビュー後半では、本家Rubyの開発の方向性のお話や、mruby/cプロジェクトへのアドバイスなどもお話いただきました。 (インタビュー前半はこちら

(インタビュー日:平成28年12月12日)



― mruby/cは省メモリ・省電力で動くという特徴を活かして、まつもとさんのお話のように様々なところで使ってもらう中から我々の予想しなかったような使われ方がどんどん出てくるのではないかなとお話を聞いて感じました。

若干話は変わりますが、Rubyは間もなく2.4がリリースされ、9月のRubyKaigiでは3.0についてのお話もありました。本家のCRubyの開発の方向性について何かお話をいただけますでしょうか?

 

まつもと: Ruby3のロードマップは3つ設定しています。

1つがコンカレンシー。最近CPUの数が増えているので、増えた分を十分に活用できるようなことを考えようというのがひとつですね。今Guild(ギルド)という新たな概念について色々とディスカッションしています。

2つ目が、パフォーマンス。他の人が頑張ってくれて、最近Rubyは随分速くなりましたけどね。僕が作ったインタプリタよりも今だと3倍くらい早いのかな。それをもう3倍速くしたいと考えています。

最後が、静的解析ですね。Rubyのような言語はプログラムを実行してみないとバグがわからないところがあります。テスト文化がそうやって発達しているところもありますけど、そうはいってもコンパイル時に見つけられればその方がうれしいので、出来るだけ書いてあるプログラムを解析してプログラムの意図を読み取り間違いをレポートしてくれるような機能をつけたいという話をしています。

今はこの3つについてそれぞれゴールを決めて活動している感じです。

まつもと顧問と東研究員 

― mruby/cの開発側から、CRubyの開発状況を見たときに何か協調や意識をしたいことはありますか?

 

:コンカレントの部分についてでしょうか。良いものがCRuby側で出来たならば、それをそのままmruby側でも動かす、同じように書いたら同じように動くといったものを実現させたいなと思っています。
ただ、プロセッサーのリソースをどのくらい食うのかといったところで判断が違うと思うんですよね。プログラムを書く側に立ってみれば、同じように書けば同じように動かせるというのがあればいいとは思います。

それからCRubyもmrubyもソースコードを共通化できる部分があるのではないかと思っています。
これは共同開発者である田中先生も言われていることですが、今のように別々のコードになっているよりは共通のパースモジュールがあって、その後のプロセスが分かれるというようなものであれば全体の開発リソースが少なく済むのではないかという、アイデアベースですけどそんな考えも出ています。

 

まつもと:理想はおっしゃるとおりですけどね、変えるのも大変なんですよね。

 

:下手に一本化すると、それが足かせとなってしまわないかなとも思いますね。

 

まつもと:そちらの方の心配というよりも、例えばCRubyのパーサーはCRubyにべったりなので切り取れなくて、mrubyのパーサーは切り取れる。ただmrubyのパーサーをCRubyに持っていくのはかなりリスクが高いという話があるので、どうしようという感じかな。

 

― いよいよ来月末にmruby/c安定版リリースを控えていますが、今後皆さんにどんどん使ってもらえるようなプロジェクトにしていかなければと思っているところです。開発やユーザーサイドの拡がりも考えていくことになります。
このプロジェクトに対して、期待感もこめてアドバイスをいただければありがたいのですが、いかがでしょうか?

 

まつもと:自分もやってみたい!という例が出てくるとかなり違いますよね。今もmruby/cは評価ボードを出しているけど、やっぱり手元で再現するのはちょっと大変じゃないですか。

 

:もっと電子工作的なものがあるといいですね。

 

まつもと:そう、電子工作的にホビーでもいいけど、これをしたら僕のやりたいことが出来そうだ、と思ってもらえるものが何かあるとすごく違うんじゃないかな。

mrubyが拡がり始めたのもmod_mruby、ngx-mrubyが出てきてWEB系の人達がこれだったら使えるかもしれないと思ってくれたことがきっかけになったので、mruby/cも何かひとつアプリケーションがあるといいですよね。なんだろう、IoTデバイスに組込んだり、ラジコンやドローンのコントロールをしたりするのもいいのかもしれない。

 

:とても共感できる部分があります。人間一人の想像力は限りがあって、人がやっていて面白そうだと思ったら自分でもやってみる、そういう流れって非常に大事ですよね。ホビーに限らず仕事でも他が上手く出来ているから、自分達もそれをアレンジして仕事に使ってみるといったような形で発展していったプロジェクトはたくさんあると思う。

 

まつもと:例えば、床に迷路を置いてマイクロマウスをしてみるのはどうだろう。

 

:それは面白そうですね。マイクロマウスだったり、ライントレースだったり。簡単そうに見えて隠れたノウハウがきっとあると思うので。

 

まつもと:そうだね。マインドストームって言いたいところだけど、EV3だとmrubyが問題なく載るからmruby/cである意味がないので、もう少し小さいマイクロマウスにしましょう。ITOCが迷路を用意して、mruby/cマイクロマウス大会をするとか面白そうですね。

 

― そのように我々自らが色々な使い方を公開していくのは面白いですね。
ITOCもmruby/cを皆さんにいかに使ってもらうかが大事だと思っています。まつもとさんにはRubyのファウンダーとしての立場、ITOCの顧問という立場で、これからもmruby/cに対するアドバイスをお願いします。本日はありがとうございました。

 まつもとゆきひろ顧問と東研究員3

 


mruby/cは1月31日に安定版1.0をリリースしました。

 〈mruby/c関連リンク〉

インタビュー前半はこちら