The Next Big JVM Language
先日(2012/7/11)に Ceylon M3.1 がリリースされました。JetBrains の Kotlin も M2 が先月出ましたし、Xtend も Eclipse Juno に合わせて 2.3 になったり、NBJL(The Next Big JVM Language) のレースが加速してきています。Fantom や GOSU などもありますし、Scala 含めた勢力図は、今後どのようになっていくのでしょうか?
Project Lambda と Project Jigsaw が Java7 でサクッと入っていればまた変わっていたと思いますが。Project Jigsaw は Java9 に後ろ倒しになった状況などもあり、早いとこメインストリームが登場してほしいところです。
静的型付け
先日リリースされた Groovy 2.0 では TypeChecked アノテーションで静的型チェックが追加されたり、静的型付けの Groovy++ があったり、一時期の動的型付けへの潮流は静的型付けに戻ってきています。先に挙げた NBJL 候補も程度の差はありますが、全て静的型付け言語となります(Fantom は動的型付けの呼び出し機構もある)。
型付けに対する厳格性が最も高いのが Scala になります。これにより高度な型安全性が得られますが、言語としての複雑度はどうしても高くなってしまいます。様々なスキルレベルの集まるプロジェクトでは、この点が障壁になってしまいます。
Java からの移行のしやすさ
Java 寄り、Scala寄り で並べるとこんな感じでしょうか、なんとなく感覚的に。
Java < Xtend < Ceylon < Fantom < GOSU < Kotlin < Scala
Scala は既に実用段階にありますが、その言語仕様の複雑さが、今後どれだけ受け入れられるかといったところでしょうか。Kotlin は Scala に比べて学びやすく、より簡素であり、NBJL の有力候補だと思います。
Xtend は簡単に言うと、Javaコードジェネレータ + IDEサポート なので、Java からの移行のしやすさは一番ですが、一時的な用途に限られてしまう気がします。
Ceylon はというと、
blog1.mammb.com
を御覧ください。
(えーこのエントリは、次のエントリで書く Ceylon についての単なる前フリです)