3

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

但是,其他类型的应用程序和库呢?JavaFX Script 通常是第二种 JVM 语言的最佳选择吗?

目前,似乎Scala是 Java 语言最受关注的替代品。本月(2009 年 10 月),它在TIOBE 索引中排名第 34 ,而 JavaFX Script 排名第 44,Clojure、Fan 和 Groovy 排名低于 50。

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

4

3 回答 3

4

我的主要问题是:为什么要移植现有应用程序?这个问题的答案可能会让你对你想去的地方有所了解。

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

  • 在我看来, 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 平台的好处,这可能是最合适的。
于 2011-01-22T13:14:04.373 回答
2

最好的替代语言,以及整体上最好的语言,IMO,是最能让你以最适合你的模型编写程序的语言。

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

如果 JavaFX 最能满足您的需求,请使用该语言。

如果您了解 LISP,那么 Clojure 将是一个不错的选择,但是,就像 Scala 一样,它听起来不是为了这个问题。

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

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

于 2009-10-11T02:06:32.600 回答
1

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

于 2009-10-11T01:27:18.890 回答