後端技術 Node.js VS Python ?

現狀:

  1. 對於Python和Node.js深入的都不是太多,僅限於基本語法層面,
  2. 目前的工作不是後端,
  3. 現在Node.js還沒有Python那麼流行,也就是工作機會還沒有Python那麼多,且基本上是前端學Node占絕大多數
  4. Node.js論壇風生水起,宣傳力度前所未有

補充:此貼為14年所發,從發此貼後開始全力學習PythonDjango開發,目前從事Django開發運維,其實無所謂從事什麼語言的開發,關鍵是原理性的東西要搞透徹,就像http,無論你什麼語言開發,http協議,你總歸是要了解來龍去脈的


Python和Node.js(Node嚴格意義上,不能算語言) 都是小語種。

真心想做後端,就光就業機會來說,怎麼都是Java這條路要比這些小語種機會來的多的多。(雖然我是Java黑..)。

最後,其實web開發雖殊途但卻最終會同歸,到最後這些語言你都是會掌握的....沒必要把自己限定住,如果你也不太喜歡Java,你看你從語法層面更喜歡哪門語言就深入哪門。就好像你可以從Python的Tornado和Twisted入手,當你走半程又學起Node時,又怎麼會沒有種似曾相似的感覺呢?


雖然是Python程序員,也極端熱愛Python,但不得不承認,Node.js真的很厲害,搭上了V8的JIT引擎這艘大船。Python到現在還是CPython主流,PyPy也很出色,但跟V8比起來,還只是個玩具。真的遇到計算性能瓶頸的時候,Python能把人慢哭了,而Javascript據說是CPython性能的20倍(PyPy也有5倍)。

Python跟Javascript相比優勢還是在語法上,用習慣了就會覺得Python是多麼優美的一種語言:沒有分號,完善的面向對象,生成器語法,可以通過__getattr__等魔術方法修改類的行為等等。Javascript也有一些語法上的優勢,比如閉包幾乎是所有語言當中最出色的,匿名函數讓回調變得無比優美,然而閉包和匿名函數的大量使用也讓這種語言變得有點飄,難讀懂,再加上奇怪的prototype的面向對象機制就更過分了。

比起回調,其實greenlet、asyncio之類的協程模型更自然,更適合編寫複雜邏輯。不過聽說node.js也有協程庫了。


偶個人認為nodejs和python對大多數人是後端最佳腳本組合

nodejs適合實時性要求高 簡單邏輯(例如api層 金融的高頻交易 廣告的dsp/rtb的實時bid)

python適合實時性要求低 複雜邏輯(例如雲os erp)

有人說c++/java好 確實好 也適合實時性要求高複雜邏輯場景

問題這樣的屠龍機會有多少 給你屠龍到你確定自己會屠龍而不是去殺雞嗎

你確定自己寫爬蟲搜索引擎大數據引擎好過nutch solr hadoop的1/3嗎?

你確定自己用c++能寫出v8性能1/3的javascript引擎嗎?

你確定自己能寫出unity1/3性能的引擎嗎?

能 那你就是世界級別的牛人了

估計無數不服的人看了偶說的標的匿了

結論

nodejs和python對大多數人是後端最佳腳本組合

嘿嘿


Web方面個人覺得node更好,即便不考慮性能,前後端統一技術堆棧也有很多優勢。

對互聯網公司來說,py的優點主要有兩個:一個是語法的層面更友好,不過node有coffee ,這點沒多大問題。一個是在科學計算和在linux運維上有很多積累,py是linux御用腳本,現在正火的openstack也主要用python來玩的,不過對於一般互聯網公司來說,關注這兩點其實沒太大必要。而且node作為服務端命令擴展以及運維方面的支持也有很多探索了。總體來說還是更看好node

我還有個建議:玩nodejs,最好同時在再學一下c++,io密集和計算密集配合,應用開發效率和底層控制能力並重,上層開發能力和底層開發能力都有 你可以玩的事情更多。


著急找工作還是 PHP / Java 的好。

不著急的話,先搞定 SQL 資料庫,TCP / HTTP 協議,這幾樣吃透了後端真正核心技術就都有了。剩下的「架構」也就都是花架子了而已。

到這個時候,再回頭看 Node.js 圈的那些概念和人……嗯。Python 圈子沒什麼聲音,所以沒笑話看。


都一樣,不過要先挑其中一樣學,省的走火入魔了。學通了以後,你會發現很多東西都是相通的。不過python和node在一些地方的玩法不一樣,平常工作里需要關注的問題也會有所不同罷了。


Python轉Nodejs,推薦Nodejs


不論Node.js或Python,或是其他任何語言,實現網路伺服器後端的邏輯其實都是一樣的。

這幾種廣泛在工業界使用的語言,包括Java,PHP,可以說觸類旁通;所以初學者不需要在兩門語言之中擇優,與其相比更加重要的是,不論學任何一種語言,真正寫出一個甚至多個項目來提升自己的經驗值升級。

比如你選擇了Python,不需要真正精通,但是已經能熟練掌握Python。熟練掌握的概念是,在寫項目的時候起碼不需要各種穀歌(或百度)「How to XXX"。

當你真正能擺脫搜索引擎,利用某門語言寫網站後端的時候,你對網站後端的理解就已經成型了。這時候再去使用其他語言寫網站其實就是學習這個語言的語法和其lib的使用而已。


node


還是學好操作系統吧,語言只是一種表達方式。


肯定是python了,發展這麼多年了,成熟庫多,不過最近搞了3.0據說改動比較大搞不懂


推薦閱讀:

目前研一,步入人生的錯誤領域,該如何完成自我救贖?
30歲本科畢業老鳥銷售轉行做什麼,路在何方?
很多人都說要做自己喜歡的事情,可是興趣的本質是什麼?

TAG:Python | 職業規劃 | Nodejs |