mrubyを読む準備
mrubyコードリーディングが楽しいので準備から考えたこと、調べたことを纏めていきたいと思います。
まず、準備とmrubyの周囲についてを纏めてみました。
きっかけ
大学が春休みになった("14/3/1時点~)。あと、OSSだった。
プログラミングできないのがつらいから出来る人のコードを読みたかった。
こういう記事を書いたら後戻りできなくなるかなと思った。(続けるために)
呟く
mruby コードリーディングな記事。ないな。ないか。
— keizo (@keizo_bookman) March 6, 2014
するとね
@keizo_bookman こんなのどうでしょう? http://t.co/XgaoOKZUU0
— Yukihiro Matsumoto (@yukihiro_matz) March 6, 2014
@keizo_bookman このような記事もありますね。残念ながら止まっちゃってますが http://t.co/8fxS28Q2Ws
— Miura Hideki (@miura1729) March 6, 2014
教えてくださった方々、ありがとうございます。
取っ掛かりが手に入ったので、やらねば損だと思った次第です。
始める
教えてもらった参考URL
mruby Complete
mrubyを読む - Code Reading Wiki
あと、Rubyそのもののリーディング記事も役に立ちます。
Rubyソースコード完全解説
ソースコードはここ
mruby/mruby · GitHub
githubで管理されています。
リリースがmruby v1.0.0 が存在していますが開発がガンガン行こうぜと進んでいるので
変化がすさまじいです。重要なデータ構造が変わったり(互換性あり)、Enumが実装されたり。
その辺のcommit logを書いている方もいます。
mruby master changesを始めます - mruby-master-changes
iijさんが不具合の修正のみをまとめた安定版リリースをしていたりするのでそっちをみたりするのも楽しい。
Releases · iij/mruby · GitHub
mruby周りのあれやこれや
名前の話
mrubyは組み込み用のrubyです。なんでMの頭文字が付いてるかは
GithubのWikiに書いてあります。
曰く
Embeddableのm
mimimal implementationのm
まつもとゆきひろ(Matz)のm
また、mrubyの初期コミッターになぜかまつもとさんがたくさんいるから(2人+Matz)
イニシャルにMが付く人であればmrubyv1.0.0の時点で
団体を除くほぼ全員にMが付いています、すごい。
luaとの話
世の中にはLuaというOOPかつ軽量なスクリプトな言語が既に存在しています。
大雑把に言えば、mrubyとluaやっていることが一緒です。
それなのになんで?みたいな話も説明している方がいます。
Getting started with mruby - Matt Aimonetti
Wht not Lua?と分かりやすい問いかけです。
Luaのポジションを目指すのではなく、DSLを簡単に書けるRubyがあれば開発が楽しく
素早く出来てうれしい!みたいなことが書いてあります。
Twitterを見ている感じだと、メモリ等の制約が緩い組み込み環境が今後10年くらいで増えていくから
そのような場でC/C++に固執したりシンプルすぎるLuaでキリキリするよりRubyでふんわりできたらいいな。
みたいなニュアンスを感じました。
また、Webアプリケーションの開発に一部mrubyを使い、requirement にRubyを必要とせず
Rubyを使う使い方もあると思います。
ちなみにライセンスはMITLです。気楽にWebアプリと纏めて配布できます。
mrubyの推進団体もあるようです。
特定非営利法人軽量Rubyフォーラム
正直、どういうものなのか自分はよくわかっていない。
情報源
主にTwitterです。各コミッターのTwitterやmrubyで検索掛けて眺めたり、コミッターのブログを見たり。
まだ、ドキュメント的なものが存在していないようです。githubを眺めていれば分かる
去年のmruby advent calendar も大変参考になります。
mruby Advent Calendar 2013 - Qiita
mrbgemはgithubのmrbgem-list に一覧があります。動かないものも割と存在しているそうです。