後端技術 Node.js VS Python ?
現狀:
- 對於Python和Node.js深入的都不是太多,僅限於基本語法層面,
- 目前的工作不是後端,
- 現在Node.js還沒有Python那麼流行,也就是工作機會還沒有Python那麼多,且基本上是前端學Node占絕大多數
- 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歲本科畢業老鳥銷售轉行做什麼,路在何方?
※很多人都說要做自己喜歡的事情,可是興趣的本質是什麼?