組み込みC言語プログラマのためのmruby入門(前編) ―― Rubyとmruby,何が違う? どう違う?
●制約の緩いMITライセンスを採用
MRIでは,バージョンによってライセンスが異なり,1.9.2まではGPL(GNU General Public License)と独自のライセンスのどちらかを,1.9.3以降ではBSDL(BSD License)と独自ライセンスのどちらかを選べるようになっています.
mrubyでは,Open Source Initiativeが認めるオープン・ソース・ライセンスの一つである,MITライセンス(MIT License)が採用されています.mrubyでは独自ライセンスの設定がなくなりました.オープン・ソース・ライセンスの中でも比較的制約の緩いMITライセンスが採用された背景には,mrubyがほかのソフトウェアに組み込まれるということが深く影響しています.
●開発者間の連絡にはGitHubを利用
MRIでは,Rubyの公式サイトruby-lang.orgにSubversionのソース・コード・リポジトリがあり,開発者間の連絡手段は,ruby-lang.org上にあるredmineやGitHub,メーリング・リストなど複数あります.
mrubyでは,GitHubにgitリポジトリがあります注5.開発者間の連絡手段はGitHubのissue trackに限られています.パッチの提出は,同じくGitHubのpull requestという仕組みを用います.このように,GitHubの機能を全面的に採用して,開発のむだを省こうとしています.そのため,開発に深く関わるには,GitHubの使い方をひと通り覚えておく必要があります.本稿執筆時点ではメーリング・リストさえありません.日本語を使ってはいけないという決まりがあるわけではありませんが,非日本語圏の開発者も少なくないことから,GitHub上でのコミュニケーションは英語で行われています.
注5:http://github.com/mruby/mruby/を参照.
とはいえ,mrubyコミュニティとして英語以外お断りというわけではありません.非公式な情報交換は,日本語でtwitterなどを使って行われたりもします.また,軽量RubyフォーラムというNPO法人が日本国内で立ち上げ準備中とのことで,日本語での情報交換の機会は今後増えていくことが期待できます.
* * *
Rubyはさまざまなプログラミング言語の影響を受けています.Ruby発祥の独自機能というのは恐らく存在せず,絶妙な組み合わせで個性を得ている,といっても言い過ぎではないと思います.
複数の言語を習得している熟練プログラマにとっては,元ネタが想像できるので,学習しやすい言語です.しかし,C言語とアセンブリ言語以外の言語を修得する機会がなかなかない組み込み系プログラマにとっては,敷居が高い言語かもしれません.特に,Ruby on Railsが普及して以降,RubyはWeb系の文脈で説明されることが多くなり,組み込み系プログラマにとってはますます学習が難しくなってしまいました.
こうした事情を考慮して次回は,読者の皆さんに,Windows環境でmrubyを体験してもらおうと思います.mrubyはC言語やRubyのソース・コードの形態で配布されており,使用前にはビルドを行う必要がありますが,事前にビルド環境の構築を行っていないと手間と時間がかかります.そこで,本稿のために筆者が用意したWin32用のバイナリを用いて,mrubyによるプログラミングを体験していただきます.オブジェクト指向言語よりC言語のような手続き型言語に慣れている方でも,Rubyによる開発を始められることが分かっていただけるかと思います.
むらなか・まさき