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

2016-05-17    分類:WEB開發、程式設計開發、首頁精華2人評論發表於2016-05-17

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

老生常談?這些日子誰不是切換到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方面的“陷阱”。

譯文連結:http://www.codeceo.com/article/why-i-switch-python-to-node-js.html
英文原文:WHY I’M SWITCHING FROM PYTHON TO NODE.JS
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章