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

标签 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 中运行,您会花时间学习和使用哪种语言(以及为什么)?

最佳答案

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

对主要选择的一些快速看法:

  • Scala 在我看来是比 Java 更好的 Java。如果您想要一种语言,既能汲取 Java 的精华,又能增加许多新的创新和特性,那么它很可能适合您。
  • Clojure 是一种设计精良的语言,特别是如果您相信 future 会出现高度复杂的并发应用程序。它的生产力也非常高——与任何其他语言相比,我可能在 Clojure 中创造更多的值(value)/小时。然而,除非您已经了解 Lisp,否则一开始它会显得很陌生。如果您愿意生活在最前沿以获得这些好处,Clojure 很可能适合您。
  • JavaFX 脚本 - 具有一些非常好的 GUI 设计功能,并且显然支持 Sun/Oracle。另一方面,我不认为它在这个领域之外有很大的吸引力。我建议试一试,看看它是否满足您的需求。
  • Java - 应该仍然在您的列表中!如果您移植的原因是因为代码变得难以维护,那么在继续使用 Java 的同时进行重构的重点阶段也许可以为您带来想要的好处。用 Java 编写完美的 GUI 应用程序是可能的。
  • Groovy - JVM 上非常好的脚本语言。如果您想在现有的 Java/JVM 应用程序中嵌入脚本功能,这尤其有用。但是不确定我会选择它来(重新)编写完整的应用程序。
  • JRuby/Jython - 我自己没见过这么多,但听说过不错的东西。如果您在团队中拥有 Ruby/Python 技能,但又想享受 JVM 平台的好处,那么这可能是最合适的。

关于clojure - 哪个可以成为 JVM 语言 : Scala, Clojure、Fan、JavaFX Script 或其他的强大替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1549528/

相关文章:

merge - Clojure:仅当键在两个映射中时才组合 HashMap ?

data-structures - 在 Clojure 中测试列表是否包含特定值

groovy - Groovy优于Jython或Jruby?

java - Eclipse插件必须用Java编写吗?

Groovy 实现细节

java - 为什么 Groovy 用 size() 替换 java.lang.String.length()?

java - 无法从根文件级别导出 Clojure 函数

clojure - RxClojure - rx/return 和 rx/observable* 之间有什么区别?

functional-programming - 惰性序列中 "Lose your head"的解释

clojure - 如何获取 clojure 函数参数的元数据?