哪个可能成为强大的替代JVM语言:Scala,Clojure,Fan,JavaFX Script或其他?

时间:2009-10-11 00:59:14

标签: clojure jvm-languages

我目前正在决定使用另一种JVM语言来移植用Java 6编写的现有Swing桌面应用程序。鉴于JavaFX专门针对这种应用程序,我的最佳选择似乎是 JavaFX Script

然而,其他类型的应用程序和库呢? JavaFX Script是否是第二种JVM语言的最佳选择?

目前,似乎 Scala 是最受关注的Java语言替代品。本月(2009年10月),它位于TIOBE index的第34位,而JavaFX Script位于第44位,而Clojure,Fan和Groovy位于50以下。

那么,你的印象是什么?假设您可以自由选择在JVM中运行的给定项目的语言,您会将哪种语言投入学习和使用(以及为什么)?

3 个答案:

答案 0 :(得分:3)

我的主要问题是:你为什么移植现有的应用程序?这个问题的答案可能会让你知道你想去哪里。

对主要选择的一些快速观点:

  • Scala 在我看来,是比Java更好的Java。如果你想要一种能够获得最佳Java语言但却增加了许多新的创新和功能的语言,那么它可能适合你。
  • Clojure 是一种设计精良的语言,特别是如果您相信高度复杂的并发应用程序的未来。它也非常高效 - 我可以在Clojure中创造比任何其他语言更多的价值/小时。但是,除非你已经知道Lisp,否则一开始看起来会非常陌生。如果你愿意生活在最前沿以获得这些好处,Clojure可能适合你。
  • JavaFX脚本 - 具有一些非常好的GUI设计功能,并且显然支持Sun / Oracle。另一方面,我认为它在这个领域之外没有大量的牵引力。我建议给它一个小道,看它是否满足你的需要。
  • Java - 应该仍在您的列表中!如果您移植的原因是因为代码变得难以维护,那么在使用Java时重新分解的重点阶段可能会为您带来所需的好处。用Java编写完美的GUI应用程序是可能的。
  • Groovy - JVM上非常好的脚本语言。如果要在现有Java / JVM应用程序中嵌入脚本功能,则特别好。但是我不确定是否会(重新)编写完整的应用程序。
  • JRuby / Jython - 我自己没见过这么多,但听到了很多好话。如果您在团队中拥有Ruby / Python技能,但也希望获得JVM平台的好处,那么可能是最合适的。

答案 1 :(得分:2)

最好的替代语言,以及最好的语言,IMO,是最能让你以最佳模式为自己编写程序的。

因此,如果您正在编写GUI应用程序,那么Scala可能是不正确的选择,因为您不会离开Swing。

如果JavaFX最符合您的需求,请使用该语言。

如果你知道LISP,那么Clojure将是一个不错的选择,但是,像Scala一样,不是因为这个问题,听起来像是。

如果你不了解lisp并且你想要/需要一种函数式编程语言,那么Scala将是最好的选择。

基本上,没有一种语言在所有情况下都是最好的,它有助于了解您想要做什么,以及各种选项的优点/缺点。

答案 2 :(得分:1)

这些听起来都是不错的选择。您可以将JRuby添加到列表中......