為什麼我從Python轉戰到Node.js
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
老生常談?這些日子誰不是切換到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
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 我為什麼從python轉向goPythonGo
- 我為什麼從php轉go?PHPGo
- Bowery為什麼從Node.js轉向 GoNode.jsGo
- 為什麼我從 Angular 轉向 ReactAngularReact
- 為什麼我們從Webpack切換到Vite - ReplitWebVite
- 為什麼我們從RabbitMQ切換到apache kafka?MQApacheKafka
- 我為什麼不從NodeJS切換到GoNodeJSGo
- 我們為什麼要從 HTTPRunner 轉向 MeterSphereHTTP
- 我為什麼會從程式不喜歡加{}到加{}
- 為什麼我從Java切換到Rust? Opensource.comJavaRust
- Web平臺能從Node.js學到什麼WebNode.js
- 我為何從 Python 轉向 ErlangPython
- 為什麼是python (轉)Python
- 為什麼我從 Mac 換到了 LinuxMacLinux
- 我為什麼從Redux遷移到了MobxRedux
- 為什麼我會從MongoDB遷移到PostgreSQLMongoDBSQL
- 為什麼我從 Google 辭職而為自己工作Go
- 為什麼要用Node.jsNode.js
- 為什麼要用 Node.jsNode.js
- 為什麼用Node.js?Node.js
- 為什麼我要用 Node.js? 案例逐一介紹Node.js
- 為什麼Discord從Go切換到Rust?GoRust
- 從AIGC到AGI,為什麼我們需要更多的“技術信仰派”?AIGC
- 我們能從Pokémon GO中學到什麼Go
- 我為什麼向後端工程師推薦Node.js後端工程師Node.js
- 為什麼要使用Node.JSNode.js
- 為什麼要使用 Node.jsNode.js
- 為什麼我棄用Angular,轉向ReactAngularReact
- (轉)Oracle為什麼不使用我的索引?Oracle索引
- 我為什麼減少使用C++ (轉)C++
- 知乎萬贊:為什麼我不建議你轉行學python?Python
- 從 PHP 轉到 Node.js 的那些事PHPNode.js
- 我為什麼要做IT
- 為什麼io.js要從Node.js中分裂出來?Node.js
- 為什麼我覺得Python爛的要死?Python
- 天啦,從Mongo到ClickHouse我到底經歷了什麼?Go
- [譯] 我們能從 Redux 原始碼中學到什麼?Redux原始碼
- 從小眾到火爆,圖資料庫能為我們解決什麼問題?資料庫