どんな言語かというと、GOBのようなGLib向けオブジェクト指向言語。Cソースを生成し、コンパイルする。
文法はC#ライク。
http://live.gnome.org/Vala
気になった点をいくつか述べる。
(1) ラムダ構文
シグナルで使う例。
foo.some_event.connect ((s, i) => stdout.printf ("Handler B: %d\n", i));
(2) RAIIによるオブジェクト生成/消滅
/* Usage: */
{
var res = new MyResource ();
// ...
}
他にも、リファレンスカウントだとか、GLibプログラミングにおいて、自分でやるにはめんどくさいいくつものことをやってくれるらしい。これで特別なランタイムはいらないって言うんだから、良いと思うのだがどうだろうか。ちょっと使ってみたくなった。