みなさんはJava版のRubyやPythonをご存知でしょうか?
JRuby やJythonで知られているます。
- Javaからスクリプト言語を実行し、その結果をJava側で得る事ができます。
- また、スクリプト上からJavaコードをキックする事もできます。
異なる処理系を、お互いから呼び出す事を相互運用と呼ぶ事があります。
現在、ハイブリッドアプリと言えば、ネイティブなコントローラ+Web ブラウザをビューとしたものですが、相互運用ではブラウザーが無くても、そのスクリプトのエンジンがあれば良いのです。
私は7〜8年前にSpiderMonkeyというJavaScriptエンジンをカスタマイズして、.Netとの相互運用をした事があります。
.Netでデスクトップアプリを作り、JavaScriptで書かれたコードをSpiderMonkeyで処理していました。またSpiderMonkey側から.Netのコードを呼び出せるようにしました。
これにはどういったうれしい事があるのでしょうか?
- システム開発上、また運用上しょっちゅう仕様が変わる機能がある。そういったロジックはJavScriptで記述し、ロジックの入れ替えを簡単にする。
- .Netと相互運用するので、JavaScriptから画面を表示したり、好きなJavaのライブラリを利用できる。
- 重い処理はJavaで、フロントのURLマッピングはスクリプトで、という切り分けが簡単にできる。
私の過去事例ではXMLで記述された業界標準のフォーマットを解釈。ネイティブ側で画面遷移を司ります。画面から得た値は、ネイティブ側に伝えます。
いわゆるハイブレッドアプリの走りみたいなものでした。
さらに、JRubyはRubyより高速に動くそうです。 サーバ側でぜひ採用して見たいと思います。