2024.12.24
ビジネスが急速に変化する現代は「OODAサイクル」と親和性が高い 流通卸売業界を取り巻く5つの課題と打開策
#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」の話に戻って、パネルで話した内容についてかいつまんで紹介していけるといいなと考えています。それでは、次回をお楽しみに。
関連タグ:
2025.01.16
社内プレゼンは時間のムダ パワポ資料のプロが重視する、「ペライチ資料」で意見を通すこと
2025.01.15
若手がごろごろ辞める会社で「給料を5万円アップ」するも効果なし… 従業員のモチベーションを上げるために必要なことは何か
2025.01.09
マッキンゼーのマネージャーが「資料を作る前」に準備する すべてのアウトプットを支える論理的なフレームワーク
2025.01.14
コンサルが「理由は3つあります」と前置きする理由 マッキンゼー流、プレゼンの質を向上させる具体的Tips
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.01.14
目標がなく悩む若手、育成を放棄する管理職… 社員をやる気にさせる「等級制度」を作るための第一歩
2025.01.10
プレゼンで突っ込まれそうなポイントの事前準備術 マッキンゼー流、顧客や上司の「意思決定」を加速させる工夫
2025.01.07
資料は3日前に完成 「伝え方」で差がつく、マッキンゼー流プレゼン準備術
2017.03.05
地面からつららが伸びる? 氷がもたらす不思議な現象
2025.01.08
職場にいる「嫌われた上司」がたどる末路 よくあるダメな嫌われ方・良い嫌われ方の違いとは
特別対談「伝える×伝える」 ~1on1で伝えること、伝わること~
2024.12.16 - 2024.12.16
安野たかひろ氏・AIプロジェクト「デジタル民主主義2030」立ち上げ会見
2025.01.16 - 2025.01.16
国際コーチング連盟認定のプロフェッショナルコーチ”あべき光司”先生新刊『リーダーのためのコーチングがイチからわかる本』発売記念【オンラインイベント】
2024.12.09 - 2024.12.09
NEXT Innovation Summit 2024 in Autumn特別提供コンテンツ
2024.12.24 - 2024.12.24
プレゼンが上手くなる!5つのポイント|話し方のプロ・資料のプロが解説【カエカ 千葉様】
2024.08.31 - 2024.08.31