编写可伸缩的Web服务服务器的最佳语言/库选择是什么?

时间:2011-05-16 20:22:08

标签: scala clojure erlang distributed akka

我参与了一个编写游戏传播和服务平台的项目,这将使游戏开发者能够轻松地外包游戏分发和更新,以及提供多人/社区的某些部分,如成就,排名,朋友和例如SOAP或REST API形式的Web服务。

我不确定在获得市场份额方面有多可行,但应该编写应用程序,以便横向扩展以吸收任何数量的可能用户。由于该项目仍处于早期阶段,因此对所使用的语言和技术有一定程度的影响。

到目前为止,我的研究已经将选择范围缩小到Erlang或基于JVM的语言 Erlang因其专注于可扩展和容错的分布式应用程序以及成熟的跟踪记录而广为人知,但另一方面,它的库生态系统远没有JVM那么丰富。 另一方面,JVM语言享有一个拥有众多库的大社区,其中许多都致力于提供分布式和可靠的服务,例如Terracota或Akka(这似乎是受到Erlang的启发,尽管我不知道有多少它的力量接近并希望听到它。) 由于语言生产力与平台强度和可靠性同等重要,如果我使用JVM,我会倾向于Scala或Clojure而不是Java。 当然,如果你认为还有另一种语言(JVM或非语言)更适合这样的任务,我很想知道它。

我不想阅读语言酷炫功能的一个列表,因为我自己可以谷歌,我宁愿对你自己编写这样一个应用程序的经历感兴趣(有点像这些博客帖子 - link),不仅涉及原始表现,还涉及语言和图书馆问题。

我想听听您(或贵公司)对这类项目的语言和技术选择是什么,这种选择的动机是什么,您使用所选平台的经历是什么,并最终实现了它。
我们将非常感谢所有的见解; )

1 个答案:

答案 0 :(得分:5)

鉴于你最初对Erlang的兴趣,我不得不说Scala。

Scala演员直接受到Erlang的启发,而Akka(很久以前就已经开始)作为Erlang对Scala语言的OTP的一个端口。

Scala和Akka都是商业环境中使用的强大解决方案,并得到the recently formed "Typesafe" company的充分支持。此外,您还可以获得在JVM平台上运行的所有优势。