歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 為什麼我從 Python 轉戰到 Node.js

為什麼我從 Python 轉戰到 Node.js

日期:2017/3/3 12:41:31   编辑:Linux技術

老生常談?這些日子誰不是切換到Node呢?我就是其中之一,下面是我的理由。

Python 2,抑或是Python 3?

Python版本之間缺乏重點和運轉是一個巨大的陣痛。是的,我知道很多庫正在被轉換或已經被轉換過了。但是,一個接一個地缺乏重點以及明確的方向使得我對它的信任降到歷史最低。我知道這和不想移動的社區有很大的關系,但開發人員對此不買賬,盡管是社區驅動項目。

Unicode支持

你有沒有試過在Python中使用Unicode?TMD真心太痛苦了。是的,關於這個主題有很多這方面的文檔,因此它不應該那麼令人費解。Python 3是一個進步。當然我並沒有說Node和JavaScript在這方面非常突出,但它們絕對有更佳的選項。

循環導入

循環導入是任何Python程序員的痛苦之源,並且在我看來是這個語言非常破的一個架構選擇。我知道在大多數情況下,循環導入是模塊設計被破壞的一個標志。但是,如果你是一個有經驗的開發人員,那麼可能你會將更多的時間花在將Python硬塞到高級模式中。好吧,對此我只想說祝你好運。Node.js允許我導入模塊到任何地方。

旁注:顯然Go也有這個限制。這太讓我傷心了:(

NPM VS PIP

Python有PIP,這真的很棒。不過,我在NPM上經常能發現更多最新的現代化模塊。隨著NPM上其他共享的內容也出現了廢話,因而你得對此提防。我一直認為在PIP上共享煩人,而在NPM上真心易如反掌。我的第一個模塊共享只用了總共5分鐘。

效率=更多錢!

這是毫無疑問的。當涉及到硬件(如果編寫正確的話)的時候,Node比Python更精簡。能夠真正利用低端硬件並產生可接受結果是一個重要優勢。很多優勢都可以歸結為Node的異步特性。是的,我知道Twisted和類似的庫。你有沒有在其中實際寫過一個異步app?在構建一個產品時,開發速度很重要,但保持低的開銷成本也很重要。我們可以運行相同的Node項目在Python所需的一半硬件上。

團隊熟悉度

這總是一個值得探討的話題,但是我更喜歡整個團隊都能有一個基本的JavaScript水平。這意味著他們可以查看Node代碼,並理解是怎麼回事。如果團隊裡面有前端開發人員,那意味著連接到API端點或處理意見非常容易。這對我而言也意味著在幫助他們時受到的干擾更少。太棒了!

MongoDB和JSON

我們喜愛MongoDB和JSON。Node不假思索地使用它倆。當然,顯然這也可以用其他語言來完成,但是它的便捷性有著致命的吸引力,使得我不得不提到它。

它就是JavaScript

如果你像我這樣熱愛JavaScript,那麼這是一個額外的優勢。如果你不喜歡JavaScript,那麼這個優勢可能也不是很大。我認為JavaScript之所以有趣是因為它善於表達。它提供了很多做事的方法,這在應用特定策略來解決關鍵問題時非常棒。這也滋生了一些愚蠢的辯論,例如“添加分號VS不要分號”。在此鄭重聲明,我贊同使用分號。

結論

需要說明的是,我依然深愛著Python。它已經陪伴了我好多年,並且我用Python寫了好幾個產品app(見Postach.io和QuoteRobot),然後經常用於快速服務器腳本。Node.js本來並非我的第一選擇,但是我想要一些現代化的東西,並且做一些新穎的Web設計。PHP,Python和Ruby顯然不符合要求。我的第一個選擇是去學習Go(golang),但是由於時間限制和團隊技能集讓我與之無緣。初創企業對工作玩命,你懂的!Node折中了這些方面,允許我們立刻上手。

你對於現代語言有什麼想法?你更喜歡Python抑或其他?為什麼?歡迎分享任何有關於Node方面的“陷阱”。

Copyright © Linux教程網 All Rights Reserved