假設一組開發人員同樣習慣於在服務器端編寫Javascript,因爲它們與Python &扭曲,Node.js什麼時候比Twisted更合適(反之亦然)?Node.js vs Twisted的用例是什麼?
回答
扭曲更成熟 - 它已經存在了很長很長的時間,並且有如此多的花裏胡哨的東西讓你頭腦轉動(實現最好的協議,將反應堆與各種各樣的其他事件循環等等)。
Node.js據說更快(我自己沒有測量過它),也許使用起來可能更簡單(如果你不需要額外的鈴聲和哨子),因爲那些額外的東西不存在就像Python世界中的Tornado一樣 - 我再也沒有測量過相關性能)。
所以,如果我需要任何額外的功能,或者希望通過使用更成熟的軟件包感覺更堅實,我絕對會使用Twisted。如果這些考慮不適用,但是最高性能是項目的關鍵目標,那麼我會在Twisted中編寫一個簡單的基準(但仍然代表我的實際項目中至少有一兩個關鍵性能需求情況) Node.js,和 Tornado,並且在我決定整體走哪條路之前做了很多仔細的測量。用於Python和服務器端JavaScript的「額外功能」(第三方擴展和標準庫)也更加豐富,如果項目需要這些附加功能,這可能是一個關鍵因素。最後,如果這些問題在特定的應用場景中都不重要,那麼開發團隊就簡單性和熟悉性對三個候選者(Twisted,Node.js,Tornado)的相對簡單性進行投票 - 他們中的任何一個可能會很好,不妨選擇大部分球隊最適合的選擇!
非常感謝! – pmn 2010-08-12 04:26:08
@icey,不客氣! – 2010-08-12 04:44:41
很好的答案,+1建議OP看Twisted(這可能會更簡單的滿足他們的需求)。 – mikemaccana 2011-02-08 21:27:17
截至2012年,Node.js已被證明是一個快速,可擴展,成熟和廣泛使用的平臺。瑞恩·達爾,Node.js的創造者語錄:
這些天,節點正在使用大量的初創公司,並建立公司在世界各地的 ,從Voxer和超級沃爾瑪和微軟。可以肯定地說,每天有數十億的請求通過Node傳遞。隨着越來越多的人來到該項目,可用的第三方模塊和擴展的質量增長和增加 。儘管我曾經保留過關於推薦它用於任務關鍵型 應用程序的內容,但我現在衷心推薦Node用於即使最苛刻的服務器 系統。
更正式,節點的優勢,可以劃分爲:
大社區:可以說,沒有其他的平臺在這麼短時間內取得這樣的社會訴求,它在GitHub中有數百名貢獻者和數千名觀察者,並正在被Yahoo!等巨人使用。 (曼哈頓項目),電子灣,LinkedIn,微軟和Voxer。
NPM:雖然具有相對小的核心,節點有大量可用的軟件包擴展其功能,以任何你可以考慮!它的全部自動化和正在開發和積極擴展,想起PyPI(pip)。
可擴展性和速度:節點的架構和單線程特性允許高可擴展性和速度。特別是在0.8發佈之後,其速度變得非常快(benchmarks),這可以被許多使用Node的大型企業所證實。由於目前的瀏覽器戰爭,它的V8核心也不斷變得更好。
的JavaScript:節點(JS)的核心語言適合這樣的服務器端的用途,特別是lambda函數,動態物體,而且容易JSON序列化更好的是JS亮點的情況下速度和可擴展性計數這確實非常適合。 (Python擁有所有這些,但是這些在JS中更好,更強大)。
部署:由於其廣泛的使用,很多真正的好網站,方便和強大的節點部署提供了各種工具,包括:Heroku的,Joyent公司,CLOUD9和更大量。
因此,節點似乎更強大,用打火機的未來,因此,如果沒有任何限制使用它(像現有的代碼,服務器,團隊的能力),它被推薦用於任何新的合作網絡項目瞄準高速度和可擴展性。
聽起來你不知道Twisted的成熟程度。你已經突出顯示的任何點都不是Twisted(除了「JavaScript」點,它是列表中最細的項目)! – 2012-07-28 00:14:37
@ Jean-PaulCalderone快速查看右邊的tagstats支持他的第一點:node.js×11239 twisted×1021 – UpTheCreek 2012-08-10 15:41:00
如果您認爲這個大小是衡量社區的唯一指標,當然。 – 2012-08-10 23:12:08
- 1. Ruby EventMachine,Python Twisted或JavaScript Node.js的要點/目的是什麼?
- 2. Apache vs Twisted
- 3. 什麼是Node.js的
- 4. Twisted有什麼好酷的?
- 5. 在Node.js中實例化對象的常用方法是什麼?
- 6. node.js最常見的用例場景是什麼?
- 7. 什麼時候使用node.js vs sinatra vs rails?
- 8. 什麼是Node.js的包
- 9. dlopen vs標準動態鏈接的用例是什麼?
- 10. ContextCompat.checkSelfPermission的用例是什麼?
- 11. 什麼是使用Node.js的與PHP
- 12. 如何閱讀Node.js API文檔?什麼是例如「stat(2)」是什麼意思?
- 13. 什麼是node.js模塊?
- 14. 在Node.js中,什麼是「on」?
- 15. 什麼是zeromq用例?
- 16. 什麼是Apache Kylin用例?
- 17. 爲什麼使用Node.js的
- 18. 例外 - 什麼是「例外」?
- 19. 什麼是Kestrel(vs IIS/Express)
- 20. 什麼是XPCOM? XPCOM vs COM?
- 21. Node.js Express vs. Flatiron
- 22. 爲什麼Twisted resource.Resource執行render()兩次?
- 23. 什麼是反向代理,爲什麼我應該使用Node.JS?
- 24. node.js - res.end vs fs.createWriteStream
- 25. 什麼是共享的Node.js和客戶
- 26. node.js中的節點究竟是什麼?
- 27. node.js中'[,params_name]'的含義是什麼?
- 28. 什麼是tr1 :: result_of的好用例?
- 29. Git SOFT重置的用例是什麼?
- 30. HANDLER OPEN/READ/CLOSE的用例是什麼?
截至2013年,這兩個框架的當前狀態如何。似乎更多的人使用Node.js而不是Twisted。糾正我,如果我錯了 – Nipuna 2013-08-25 14:36:07
做出明智的決定,並開始。 - 在你通過了一些問題之後,你更清楚要做出更好的決定。也許改變你的工具並重做它。 – 2013-11-10 03:29:56