我需要为SOA中的一系列服务的新开发选择一种语言/平台。我正在研究Scala和Clojure,但不认为社区和产品已经足够成熟,可以用于现实世界的企业产品。
更新/澄清:
我希望这些澄清这个问题。
答案 0 :(得分: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)。这大大降低了您需要做的风险和新开发量。
答案 1 :(得分:1)
目前(刚刚完成了一个服务/集成项目)在Spring上面的Jersey就在我最喜欢的Web服务列表上。
我不能为SOA框架提供任何建议,上次我参与了我们使用Oracle BPEL流程管理器的那种事情,我对此感到复杂。我们之前也没有使用REST,而且我不确定Oracle软件的工作情况如何。
答案 2 :(得分:1)
对我来说,python似乎是做一些SOA并与Windows计算机具有互操作性的最简单方法。我没有框架名称,但在SOAP,REST,RPC ......中有很多它们。