2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
#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.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略