読者です 読者をやめる 読者になる 読者になる

Ceylon M3 や Kotlin M2 など出そろってきたNBJLはどうなる?

Java

The Next Big JVM Language

先日(2012/7/11)に Ceylon M3.1 がリリースされました。JetBrains の Kotlin も M2 が先月出ましたし、XtendEclipse Juno に合わせて 2.3 になったり、NBJL(The Next Big JVM Language) のレースが加速してきています。FantomGOSU などもありますし、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 はというと、次回を御覧ください。
(えーこのエントリは、次のエントリで書く Ceylon についての単なる前フリです)