2024.10.21
お互い疑心暗鬼になりがちな、経営企画と事業部の壁 組織に「分断」が生まれる要因と打開策
#22 mrubyとはなにか?(全1記事)
リンクをコピー
記事をブックマーク
まつもとゆきひろ氏:こんにちは、まつもとゆきひろです。今回は、Matzチャンネルの22回目ですね。
前回、前々回と、mrubyについてガーっと話したような気がするのですが、「そもそもmrubyとは、何か?」という話をしていないという部分に気がついて、今日はあらためてmrubyの話をしようと思います。
前回mrubyの始まりの話をした時に、もともと「軽量Ruby」と名前をつけていたという話をしたのですが、mrubyは、もともとは組み込み用マイクロコントローラーでも動くRubyを目指していました。
だから、組み込み用のAPIを持ったライブラリとして提供されるもので、mrubyをダウンロードしてコンパイルすると、mrubyという名前のインタプリタの、CRubyにおける「ruby」というコマンドと同じようなことをするソフトウェアができます。
それから、インタラクティブにRubyのプログラムを実行するmruby版のirbであるmirbというプログラムができるのですが、これはあくまでも、サンプルプログラムのつもりで、mrubyの一番大事なところというのは、ほかのソフトウェアがリンクできるライブラリであると認識しています。
これは、ライブラリにリンクすると、マイクロコントローラーで動くソフトウェアからRubyを実行できる、いや、マイクロコントローラーではなくて、普通のコンピューターでもいいのですが、とにかくソフトウェアの中にRubyを組み込むことができるのが主眼だと思っています。
そうすると、主従関係が逆転するんですよね。CRubyというソフトウェアがあって、Rubyのプログラムを食わせると動くので、ソフトウェアはRubyが主になります。
アプリケーション全体はRubyで書いて、機能を追加することが必要であれば、その機能を「C Extension」で書いて実行するというかたちになります。
いっぱいgemがあって、その中には、Extensionを提供するようなgemがいっぱいあるので、それでがんばりましょうというのがCRubyなんですけれども(笑)。
mrubyの場合は逆で、アプリケーションが先にあります。人工衛星をコントロールする」とか「ロボットをコントロールする」など、いろいろなアプリがあります。
その中で例えば、Rubyで書いたほうが楽な部分、設定の部分や、頻繁に書き換えが起こるところなど、そういうところをRubyで書いて、そこだけRubyで実行しましょうという感じのソフトウェア構成になることを目指しています。
さらにmrubyは、機能の取捨選択ができるというところが特徴になると思います。いろいろな機能、そのアプリケーションから使わない機能は、別にくっつけておく必要はないので、必要に応じて外すことができる。
例えば、マイクロコントローラーはメモリ容量、ROM、RAMが足りない傾向があります。そうすると、コンパイラを外してVMだけ実装して取り込みましょう、アプリに置きましょうと。
よそでコンパイルしたバイナリをそのVMに食わせてやるということができる。すると、そのプログラムのサイズをすごく小さくできるわけですね。
そういう、コンパイラを外しましょうとかね。あるいは、正規表現が要らないなら正規表現を外しましょうとか、ファイル入出力が要らないのでファイル入出力は外しましょうとか、ネットワークの対応は要らないのでネットワークソケット機能を外しましょう、みたいなことができるのが、mrubyの最大の特徴になると思っています。
実際に、例えばマイコンにmrubyを載せて、例えば「キーボードをコントロールしました」とか、「人工衛星をコントロールしました」とか、「ロボットをコントロールしました」とか。
それから、ペイメントデバイス。ブラジルの会社なのですけども、クレジットカード読み取り機の中にmrubyが入っていて、それを使うことでけっこういろいろな機能をコントロールできるようになっています。
そのペイメントデバイスは、ビットコインなどでも支払いもできるという謎の機能が入っているのですけれども、そういうような使い方をすることを想定して、最初は作られました。
なんですが、既存ソフトウェアに組み込むのも便利だと気がついた人もいて、例えばWebサーバー、「nginx」や「Apache」、それから、「H2O」とかですね、そういうWebサーバーに組み込んで機能を拡張したりルールを提供したりするのにRubyで書けますということをしている人たちもいました。
それから、ゲームに組み込む人たちもいました。有名なタイトルだと『NieR:Automata』ですね。ソースコードが公開されるものではないので、どういうふうに使っているかはわからないのですけれども(笑)。
クレジットのところに、mrubyのライセンス表記が登場して、組み込まれていますということが表示されているので、どこかで使っているんだろうなと思います。ありがたい限りですね。
そんなふうに、mrubyさえあれば、必要な機能を組み込んで、必要なだけ強力なRubyを、メモリ容量やプログラムサイズなどと引き換えに、あなたのアプリに組み込むことができるというのが、mrubyの最大の特徴になる。あるいは、最大の魅力になると思います。
今日は、ちょっと技術寄りの話でしたけれども、「mrubyとは何か?」ということについて、お話ししました。
次回以降は、また「mruby Kaigi」の話に戻って、パネルで話した内容についてかいつまんで紹介していけるといいなと考えています。それでは、次回をお楽しみに。
関連タグ:
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗