2007 JavaOne Conferenceで発表した,米Sun Microsystems,Inc.の新たなスクリプト言語「JavaFX Script」。実は2005年9月に米SeaBeyond Technologies社買収に伴い,Sun社に移籍したChris Oliver氏が開発していた「F3 Script」であることがわかった。Sun社はJavaFX Scriptを「開発者向けではなく,デザイナ向けのコンテンツ記述言語」と位置づけているが,どのあたりがそうなのかを具体的に見ていこう。
まず目を引くのが「宣言的なGUI記述」としている部分である。具体的なプログラムの記述方法は,以下のようになる。
Frame {
width: 200
menubar: MenuBar {
menus: Menu {
<<メニュー項目を記述>>
}
}
content: GridPanel {
border: EmptyBorder {
top: 30
left: 30
bottom: 30
right: 30
}
rows: 2
columns: 1
cells:
[ <<配置する項目>> ]
}
visible: true
}
雰囲気がCSS(cascading style sheets)に似ている。最近のWWWサイトのデザイナはCSS程度であれば直接記述することも多い。こうした利用者層を想定した言語仕様だと言えるだろう。
こうしたユーザー・インタフェースの記述を,対抗技術といえる米Adobe Systems Inc.の「Flex」では「MXML」,米Microsoft Corp.の「Silverlight」では「XAML(extensible application markup language)」というそれぞれ独自の記述言語を使う。いずれもXMLに基づいている。デザインの情報をXMLに集中させ,ボタンを押したときの動作などを別のファイルにプログラムとして記述するのに対し,JavaFX Scriptでは同じ一つのファイルにプログラムとデザイン情報が混在する形になる。デザイナにとってXMLよりなじみがある点でJavaFX Scriptが有利だが,プログラムとデザイン情報が混在すると,デザイナとプログラマの役割分担がしにくくなるというデメリットがある。
このほか言語仕様で目立つのは,オブジェクトの型を指定しないこと。
var s = "String";
var c = new Class();
といった形である。これによって,Javaでありがちな型指定の冗長さを取り除いている。
また繰り返し制御がJavaより柔軟で,スクリプト言語によくある,foreach(すべての配列要素を取り出して繰り返し)のような記述になる。そのほか配列へデータを挿入する命令など,配列に関連する処理の充実が目立つ。詳細については言語仕様が公開されているのでそちらを参照されたい。また,JavaFX Scriptの入門解説も同じサイトで公開されている。