在后Java世界中,Linux在Linux上的最佳语言/平台是什么?

Kha*_*ash 8 java mono programming-languages scala clojure

我需要为SOA中的一系列服务的新开发选择一种语言/平台.我正在研究Scala和Clojure,但不认为社区和产品已经足够成熟,可以用于实际的企业产品.

更新/澄清:

  1. 当然,我们可以为SOA 使用许多语言/平台,但是某些语言/平台更容易,更适合SOA.IMO 适合SOA的应该允许接口编程(以简化合同的定义),应该有托管服务的选项(如Felix for Java或WCF in .NET)并且可以很好地扩展(参见RoR的Twitter问题).
  2. Java一直是企业市场的最爱.但是,许多开发人员正在研究动态语言以及讨论v6之后Java的停滞.因此,许多新的Java语言已经到来:Scala,Clojure和Groovy,仅列举一些仍在JVM上运行但不是Java的语言.

我希望这些澄清这个问题.

mik*_*era 17

取决于你所说的"足够成熟的现实企业产品",以及你对生活在最前沿的容忍度的相对水平.

例如,我目前正在Clojure中构建一个"真实世界的企业产品"(我对Scala一直很满意,只是Clojure从并发和元编程的角度来看我的需求稍微好一点).

我对我的决定非常满意.

如果您正在考虑这种"后Java"路径,请快速了解一些观点:

  • 这些社区很棒并且很有支持,但你仍然必须自己解决问题,只是因为没有其他人遇到过同样的问题.这些都不可能是不可克服的,但它确实给交付时间表带来了一些额外的风险.

  • Scala和Clojure都可以非常高效(就每小时编码提供给客户的价值而言),但您也可以在任何语言中编写糟糕且不可维护的代码.Java几乎迫使你用标准化的,有些冗长但语法简单易懂的方式编写东西.通过Scala和Clojure,你可以获得一个全新的疯狂方法来击中你的目标或射击自己的脚.您的团队是否能够充分利用Scala/Clojure的优势?

  • 使用现有的Clojure/Scala技能将技术人员带到船上更难(尽管绝不是不可能).另一方面,拥有这些技能(或者渴望获得这些技能)的人可能是更有才华/更有动力的开发人员,因此搜索可能仍然富有成效.

  • 准备好就是否针对"即将到来"的语言/图书馆功能做出艰难的决定.例如,您是否在等待Clojure 1.3中增强的原始支持?或者在Clojure 1.2中使用完全适当但速度较慢的盒装原始函数?

  • 加入JVM的一大好处是,您仍然可以充分利用Java生态系统,而不必将Java作为一种语言.不要低估这是多么有用:例如,我在Clojure应用程序中使用了许多经过严格测试的成熟Java库(例如Netty).这可以显着降低您需要执行的风险和新开发量.