IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Ruby & Rails

CTC 教育サービス

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート 

第1回 Rubyの世界を大きく広げるmruby (増井雄一郎 @masuidrive) 2012年8月

 最近では、すっかりメジャー言語の仲間入りをし、世界的にもスタートアップから、大企業までビジネスでも幅広い知名度とユーザを獲得しているRubyですが、1995年に初めて公開されしばらくの間は、テキスト処理やホビープログラミングの分野という、比較的狭い世界で使われる言語でした。

 Rubyが広く認知されるようになったのは、2004年にRuby on Railsが公開され、既存の言語に比べて高い生産性と楽しいプログラミングを多くのユーザが体験できる形になった事がきっかけでした。

 Rubyが持つ「組んでいて楽しい」という感性がプログラマをとらえ、「高い生産性」が企業での採用を後押しするという、非常に良い流れが積極的に使われる大きな原動力になっているように見えます。

 このようにWeb業界では、Rubyの地位が確立してきていますが、RubyはWeb専用言語ではありません。

 Rubyの生みの親である、まつもとゆきひろ氏(以下 Matz)はRubyの適用範囲をさらに広げ、多くの分野にRubyの高い生産性と楽しいプログラミングを持ち込もうとしています。

 Matzは、いくつかのRubyの派生版を考えていたそうですが、次のターゲットとして「組み込み分野」向けのRubyとして「mruby」を開発することが発表されました。2010年から開発が開始され、当初はクローズでの開発でしたが、2012年4月にソースコードが一般公開されました。

 mrubyは現行のRuby(以下CRuby)に比べて下記の様な特徴があります。

  • 使用メモリ・ストレージが少ない
  • POSIXに依存しない
  • アプリケーションへの組み込みが容易

 このような利点がありますが、逆にCRubyで使えるすべての機能がmrubyで使えるわけではありません。現在のmrubyでは、CRubyのうち最低限のクラスしか実装されていません。
 ファイルの操作や正規表現を使うこともできません。実数型の精度などの違いなど仕様の差異も存在します。またC言語で書かれた拡張ライブラリに互換性は無くmruby用に新たに書き直す必要があります。

 mrubyはCRubyを置き換える物ではありません。mrubyはCRubyから複雑な部分を取り除きシンプルにして、もっと少ない資源で動く様にしたRubyと言えます。

 いまはWebのプログラミングをしているから、組み込みは関係ないと思っているRubyユーザも多いことと思います。

 mrubyは、デバイスへの組み込みだけではなくアプリケーションへの組み込みも容易に行えます。

 たとえば、社内向けのシステムに作った独自のアプリケーションにmrubyを組み込む事で、カスタマイズをRubyで行えるようすることが可能です。

 また、Apacheのmrubyを組み込むモジュールの開発が既に進んでいます。これはPHPの様にmrubyでWebアプリを開発するのではなく、Apacheのカスタマイズをmrubyで行うためのモジュールです。たとえば、特定のトラフィックを絞るなど、今までC言語などでモジュールの開発が必要だった部分をRubyで開発が行えなえます。

 このようにmrubyがリリースされたことで、今までC言語などで開発されてた分野でもRubyで開発が行えるようになり、いままで言語の壁で難しかった事ができるようになります。

 現在、私はmrubyを使いRubyでiOSアプリを書くことのできる「MobiRuby」を開発しています。Android版もリリース予定です。Railsでサーバを書き、クライアントもMobiRubyで書くことで上から下までRubyで開発できる世界が遠くないと思います。

 他にもルータや自動販売機などへのmrubyの組み込みの実験も始まっているそうです。
 Railsによって広く認知されたRubyが、mrubyによってさらに広がっていくのではないかと思います。

 


 

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート