2017年12月17日日曜日

mrubyやってみる

# mrubyやってみる

田胡研アドベントカレンダー17日目の記事です。
ブログ初投稿となります。B18のtachanです。
変なところがあれば教えてください。
本屋で技術誌を漁っていた時にたまたま目に付き、ちょうどrailsを触っていたのでどんなものか気になり調べてみました。
## mrubyとは
mrubyとは2012年にrubyの作成者[Matz](https://twitter.com/yukihiro_matz?lang=ja)が発表した省メモリ版のRubyです。
mrubyの作られた経緯は日経[ITPro](http://itpro.nikkeibp.co.jp/article/COLUMN/20120622/404824/)の記事で説明されており、内部設計は[IIJ](https://www.iij.ad.jp/company/development/tech/activities/mruby/index.html)の記事にまとめて記載されています。
現時点ではまだリリースされていません。[github](https://github.com/mruby/mruby/)で開発されています。
mrubyはC言語などのRuby以外のアプリケーションにも組み込みやすいという特徴があります。
例えば、大体のソフトが持っている設定ファイルをmrubyで作ることができます。mrubyで設定ファイルを実装することで、一般的な設定ファイルだけどプログラミングもできるという扱いやすい設定ファイルとしてアプリに組み込むことが出来ます。
mruby自体は単体でも使用可能ですが、ほとんどは他のアプリに組み込んで使います。
## なぜ省メモリ?
それはメソッドやクラスの少なさから最小限の機能で動作しているからです。
mrubyはそもそも組み込みを前提としたリアルタイム性を向上させるものです。
unix等のプラットフォームに依存しないように設計されているためファイルやネットワークなどのクラスが含まれていません。
## Rubygemsがない代わりにmrbgems
mrubyというRubyGemsのようなmrbgemsという仕組みがあります。
mrgbemsはRubyGemsと違い、`require`で読み込まずコンパイル時に読み込まれます。
`build_config.rb`に`config.gem`を設定すると、そのmrbgemsが本体と一緒にコンパイルされます。
## mrubyのビルド方法
今回はwindows8での導入となります。しかし、まだ私が導入できていないので、できているところまでの紹介となります。
参考にしたサイトは、[こちら](https://qiita.com/ko2a/items/b29acc616f67738465ea)
[Visual Studio 2017](https://www.visualstudio.com/ja/downloads/)をインストールします。 今回は個人で扱う場合は無償のものをインストールします。 インストーラからインストール後、スタートメニューにある「開発者コマンドプロンプト for VS2017」を使用しやすいようにタスクバーにピン留め(好み)しておきます.
次にrubyのインストールします。[公式サイト](http://rubyinstaller.org/downloads/)よりRuby Installerをインストールします。セットアップ後、rubyの環境変数のPathを設定します。
環境変数の設定方法は[こちら](http://next.matrix.jp/config-path-win7.html)
次にBisonのインストールを行います。Bisonとは構文生成プログラムです。
[公式サイト](http://gnuwin32.sourceforge.net/packages/bison.htm)から「Complete package, except sources」をダウンロードします。
使えないと警告が出ますが許諾してインストールします。
デフォルトのインストールパスにスペースが含まれているためインストール先を参照しましょう。(今回はC:\tools直下にインストールしました)
インストールしたアプリのbinまでの環境変数Pathを設定します。
次にmrubyをビルドします。
上記で示したように[github](https://github.com/mruby/mruby)からソースコードをダウンロードします。
ダウンロードしたZIPを解凍し置きます。(今回はC:\src\mruby-masterに置きました)
先ほどピン留めしたコマンドプロンプトを起動します。
C:\src\mruby-masterに移動し`ruby .\minirake`を実行します。
エラーが出なければ`mruby -v`を実行しバージョンが表示されたらビルド成功です。
## 最後に
初投稿で拙い文章力と技術力の低さですみません。自分の計画性のなさを改めて実感したいい機会でした(いつも思ってる)
今回時間と私の力不足で導入が終わらず出来ませんでした。申し訳ありません。
もしできたら追記したいと思います。
もしrubyやwebアプリケーション、組み込みシステムに興味のある方はmruby是非使ってみてください!
明日は3年生のgreninjaさんです。ブラウザをJSでコントロールしてみるそうです。楽しみですね。

7 件のコメント:

  1. Hello friends, its impressive article regarding educationand entirely defined, keep it up all the time.
    토토
    경마

    返信削除
  2. Fantastic job. I really enjoyed
    what you had to say, and more than that, how you presented it.
    Too cool!
    majortotositecom1
    racesitepro1
    oncasinositenet1
    totopickpro1

    返信削除
  3. Your way of working is very great and cool. This article is very informative and helpful for a lot of people. Thanks for sharing and keep sharing. 온라인바둑이

    返信削除
  4. https://docs.google.com/spreadsheets/d/18mLmKt8hGl2JJINUR8b7x7bipJ4qjebs2GvVNxvbU98/edit#gid=2014130069

    返信削除
  5. このコメントは投稿者によって削除されました。

    返信削除
  6. It was a creative and lovely topic, but there are also extremely advantageous and highly suggested golf outfits for men aid accessible in giving you their in your subjective preparations so effortlessly and affordably.

    返信削除
  7. Wow, this blog post is absolutely fantastic! The content is engaging and insightful, leaving me inspired and motivated. Abogado de Invadiendo del Condado de Monmouth The writing style is smooth and captivating, making it a joy to read. I can't wait to share this with my friends and keep coming back for more uplifting posts like this. Keep up the great work!

    返信削除