いまさらですが、そもそもXtendってなに?ということを書きわすれていました。
XtendはEclipse FoundationでXtext(http://www.eclipse.org/Xtext/)のサブプロジェクトとして開発されているプログラミング言語です。XtextはDSLを作成するためのフレームワーク/ツールキットなのですが、文法定義からパーサだけでなくEclipse上で動作するエディタなどを生成することができるというものです。
XtendはこのXtextを用いて作成されており、もともとはXtextを用いたJVM上で動作するプログラミング言語のサンプルとして開発されたもののようですが、Javaの構文をベースに用途と機能を絞り込み、記述をシンプルにするためのシンタックスシュガーや関数型言語の機能などを取り込んだなかなか面白い言語になっています。Xtendのドキュメントによると以下のような特徴がああります。
- 高度な型推論
- Javaジェネリクスのフルサポート
- クロージャ
- 演算子のオーバーロード
- 強力なswitch式
- 文はなく、すべてが式
- テンプレート式
- 拡張メソッド
- プロパティアクセス構文
- マルチプルディスパッチメソッド
- バイトコードではなくJavaコードを生成
Xtendの特徴はなんといってもそのアーキテクチャで、Xtendのソースファイルからコンパイラによってバイトコードを出力するのではなく、Javaのソースコードを出力します。しかも可読性が比較的高いです。つまり、XtendはJavaソースを簡単に生成するためのDSLと考えることができます。
Xtendはかなり制約の多い言語で、Javaの代替となるものではありません。あくまでJavaを利用する上での補助的なツールという位置付けの言語です。たとえばXtendではstaticメソッドを定義することすらできないため、スタンドアロンで実行可能なプログラムをXtendで記述する場合でも起動クラス(mainメソッドを持つクラス)はJavaで実装する必要があります。IDEでのデバッグもXtendのソースに対してではなく生成後のJavaソースに対して行うべし、ということのようです。
なお、XtendはXtextベースであることから処理系だけでなくEclipse上で利用可能な開発環境もすでに提供されています。Xtendソースファイル用のエディタはコードアシストなどかなり使い勝手のよいものです。
なお、XtendはEclipseマーケットプレイス、もしくは以下の更新サイトからインストールすることが可能です。
また、日本語での情報としては以下の記事が参考になるかと思います。
というわけで、XtendはClojureやScala、もしくはCeyronやKotlinなどと肩を並べるJVMベースの新しいプログラミング言語の1つ…というわけでなく、Xtextのサンプルとして作成された実験的な言語という趣が強いものです。
正直実用性の面ではどうなのか?という部分はありますが、言語仕様がコンパクトで関数型の雰囲気を醸し出している部分も多く、マジックな部分もあまりないのでJavaプログラマであればすんなり触れる言語なのではと思います。