【发布时间】:2011-05-16 20:22:07
【问题描述】:
我一直在参与编写一个游戏传播和服务平台的项目,该平台将使游戏开发者能够轻松地将游戏分发和更新外包,并提供多人/社区的某些部分,例如成就、排名、朋友和例如 SOAP 或 REST API 形式的网络服务。
我不确定它在获得市场份额方面的可行性,但无论如何,应用程序应该编写为能够很好地横向扩展以吸收任何数量的可能用户。由于该项目仍处于早期阶段,我对要使用的语言和技术有一定程度的影响。
到目前为止,我的研究已将选择范围缩小到 Erlang 或基于 JVM 的语言。
Erlang 因其专注于可扩展和容错的分布式应用程序以及经过验证的跟踪记录而广为人知,但另一方面,它的库生态系统远没有 JVM 丰富。
另一方面,JVM 语言拥有一个拥有众多库的大型社区,其中许多库致力于提供分布式和可靠的服务,例如 Terracota 或 Akka(这似乎是受到 Erlang 的启发,尽管我不确定有多少它的力量接近并希望听到它)。
由于语言生产力与平台强度和可靠性同等重要,如果我要使用 JVM,我会倾向于 Scala 或 Clojure 而不是 Java。
当然,如果您认为有另一种语言(JVM 或非 JVM)更适合这样的任务,我很想听听。
我不想阅读语言的酷特性的要点列表,因为我可以自己 google - link),尽管不仅涉及原始性能,还涉及语言和库问题。
我想知道您(或您的公司)在此类项目中选择的语言和技术是什么,是什么促使您做出这样的选择,您使用所选平台的体验是什么以及最终实现了什么。
所有的见解将不胜感激; )
【问题讨论】:
-
Erlang 可能是最容易扩展的,但它开始时性能非常非常。我会说只有在快速的开发时间比您要运行的服务器数量更重要的情况下才使用。
标签: scala clojure erlang distributed akka