JSF

Twitter 上で「Rubyくらい直感的に書けてJavaみたいに型安全性も活用できる、そんな言語が使いたい」という発言があり、脊髄反射的に素直に JRuby を答えたのですが、「いや、それ単に Ruby じゃん!」という突っ込みもあるかと思います。
そのまま使えば確かにただの Ruby と大して変わりませんが……そんなわけで割と知られていないっぽい java 6 の超凶悪機能、JSF をここで紹介します。


javaJSF というと JavaServer Faces*1 が有名……まだしも有名*2ですが、java にはもうひとつの JSFjava scripting framework があるのです。これは java 5 時代まで Apache Project で BSF(Bean Scripting Framework)と呼ばれ、開発されていた「java の上で別のスクリプト言語を動かすZe!」というシロモノを、SUN が正式に仕様(JSR 223)として取りまとめ、標準化し、jre(+エンジンを実装したライブラリ)だけで動くようにしたものです。


これが現在 java 6 にどういう状況を(密かに)もたらしているか、という事ですが。

何を言っているのか分からないかもしれませんが、実は今の java はそういう魔法を使う事も出来る不思議な世界になっているのです。最初の問題、「Rubyくらい直感的に書けてJavaみたいに型安全性も活用できる、そんな言語が使いたい」も、型安全が欲しいクラスや処理の部分は java でかっちりと、適当にやりたいところは Ruby でお手軽にやってしまえばいいわけです! 世の中には JRubyhadoop 使って MR とかやってる人も居るくらいです!! ……「公式が病気」タグが欲しいところw


興味を持った人は↓のリンク先が割と詳しいので、Let's try!
5. スクリプティング機能 | TECHSCORE(テックスコア)
……フォースの暗黒サイドにようこそw エンジンの扱いには十分気をつけてね! 結構ハマります。


使えるスクリプト言語のリストとか、エンジンの実装とかはこちらから……
https://scripting.dev.java.net/
抜け出た感があるのは JRuby と Groovy、標準で搭載されている javascript でしょうか。
もちろん自分でエンジンを実装してしまうのもアリです。C が移植されるととんでもない事になりそうなのですが、さすがに C はさらに基盤となる部分を支える方に回るのでしょう。後は……言語界のノーライフ・キング COBOL?w
……C#? あれ? そのままで java コンパイルできる*3んじゃ……(ぇ

*1:web アプリケーションのユーザーインターフェース開発を簡単にするためのフレームワーク仕様、およびその実装

*2:ぶっちゃけ Struts と比べると……(汗

*3:エープリルフールネタです