OpalはRubyのコードをJavaScriptに変換するコンパイラです。Opalを使うと、Rubyのプログラムをブラウザ上で動かすことができます。
Opalの用途
ブラウザで動くアプリケーションをRubyで書けるよ、というのが主な用途になります。JSでいいじゃん、という人には訴求しないですけど…、Rubyをブラウザでも使いたい、という人にはとても良くできているツールだと思います。筆者はJSも書けなくはないですがRubyが一番長く使っていて手に馴染むので、Opalの可能性には期待しています。というだけではなくて、DXOpalというゲームフレームワークと、OvtoというWebフレームワークを実際に作って使っています。
Opalでゲームプログラミング
DXOpalは筆者が作ったゲームフレームワークです。Rubyist Magazineにチュートリアルを兼ねた紹介記事があります。
実際に動いているところは以下で見られます。(作者の方々に感謝。)
- ステージ1ボス実装その2 | クレインハウス開発室
- mieki256's diary - DXRubyをブラウザ上で動かせるというDXOpalを試用してみたり
- DXOpal;ブロック崩しdemo - noanoa 日々の日記
OpalでWeb開発
ゲームでない普通のアプリケーション(SPA)向けのフレームワークもあります。筆者はこれでTODOアプリを作って実用しています。
Ovtoについてはまた別の日に記事を書こうと思っています。
Web開発でいうと他にもMeniliteというフレームワークがあります(記事)。isomorphic programmingといって、一つのコードをサーバ側とクライアント側の両方で動かせるのが特徴です。(明日の記事で紹介があるかも?)
ブラウザ外でのOpal
OpalはJavaScriptが動くところならどこでも使えるので、例えば
- PhoneGapと組み合わせてモバイルアプリを作る
とか、
- Electronと組み合わせてデスクトップアプリを作る
といった応用が考えられます。後者については過去のアドベントカレンダーに記事があります。
Opalの情報
英語での情報は以下があります。
- 公式サイト http://opalrb.com/
- ソースコード https://github.com/opal/opal
- Opalのライブラリ一覧 http://opalrb.com/libraries/
- チャットルーム https://gitter.im/opal/opal
日本語情報としては、@youchan@githubによる書籍があります。
また過去のアドベントカレンダーにも情報があります。