開発を始めるために必要な準備を行いました。今回からは、具体的にソースコードを記述していきましょう。標準インストールされている「メモ帳」アプリとそっくりなアプリを作成します。ネイティブアプリとして動作する想定です。今のところ参加者がとても少ないです。今のところ参加者がとても少ないです。新しいバージョン「2.1」が公開されました。チュートリアルを連載します。Libraryにて@teppeisさんに発表していただいたfixclosureをRhinoのパーサーで書き直してみました。Compilerに組み込んだりしやすくなったのではないでしょうか。Rhinoパーサー使いたかっただけなので用途を考えてないのですが。以下脱線してRhinoの話をします。(rhino1_7R4時点)まずRhinoは実装がJavaで作られているRhinoで実行するJavaScriptからJavaを呼べるということはつまりRhinoで実行するJavaScriptからJavaScriptエンジンを十全に使えるということを意味します。ただの「JVM上で動くJavaScript環境」ではなく「JavaScriptのメタプログラミング環境」として使うことができます。(他のJVM上で動く言語ではどうなんでしょう?)具体的にどんなことができるかというとRhinoパーサーが使えるfixclosure-rhinoで使ったやつです。"hoge"本来はNodeVisitorを実装したものをParser#visitに渡すのですが、実装するメソッドが一個の場合、かつ呼び出すメソッドが一意に決まる(オーバーロードしてない)場合はjsの関数を渡すだけで済みます。今回esprimaと比較しながら使ってみてわかったのですが、astのノードの親がたどれなかったり、lexer(TokenStream.java)とparser(Parser.java)で定数(Token.java)を使いまわしているので意味が分かりにくいものがあったり(Token.COMMAって何)して、esprimaが少し羨ましいと感じました。APIのようなことができます。hoge|hogeこれを利用して社内アプリ用のSQLを書くライブラリなんてのも作りました。キモいので誰も使ってませんが。スコープを汚さずにeval例えばrequire/exportsをこんな風に実装できます。exports;}「新しいJavaScript」JavaScript1.8に対応してます。ES5外の機能として特に条件付きcatchとIteratorはJavaと相性がいいので押さえておくべきでしょう。あと(まだ)E4Xが使えます。Nashornの話題なんかのときに「Rhinoは古い」と言われますが、個人的にはなかなか面白いJavaScriptエンジンだと思うんですけどね。