2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
#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.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05