我正在考慮編寫一個具有以下要求的應用程序。我精通Ruby,但我願意學習像Scala,Clojure或Python這樣的新語言。事件驅動的應用程序 - 選擇什麼語言或虛擬機?
併發/最佳性能
這是我的主要目標。它需要非常快速並且以體面的方式支持併發。
使用Redis的作爲後端
這會不會是一個大問題,Redis的具有廣泛可用的驅動程序,但它可能會影響語言/平臺上的最終決定。
的WebSockets支持
對的WebSockets的良好支持是必須的。使用附加庫(比如Cramp for Ruby :: EM)是可以的。
選項
我已經收集了以下選項:
- 紅寶石EventMachine的
- Python的扭
- Node.js的
- Clojure的
- 斯卡拉
- Java
寫入原始C或彙編程序目前不是可行的選項。
併發
Ruby 1.9中仍然使用GIL,那裏的所有基於JVM的解決方案可以使用本地線程。在這種情況下,我不確定Node.js。
所選語言如何影響性能?
問題
你有什麼建議,爲什麼?你有實踐經驗嗎?請賜教我(以及StackOverflow的其餘部分)
請小心諸如此類的粗略概括。這些各種平臺的真實比較性能依賴於工作負載。 – sblom 2010-11-01 15:45:41
同意但aleph是一個非常酷的項目,即使它不快2-3倍,也應該查看它。 – nickik 2010-11-01 15:52:16
我必須說我已經發現這些概括總體上是準確的,並且我已經玩過了JVM和Python Tornado並且Twisted – Will 2010-11-01 16:30:37