Python已經式微了嗎?為什麼學電腦的小夥伴說現在Java和C++才是王道?

來源:互聯網
上載者:User

回複內容:

學python有11年了,一直也比較關注這個問題。我沒感覺python在逐漸示微,給我的感覺是國際上略微上漲,國內大漲,科學計算領域大漲。至於我麼,大學時java還是學過的,虐所有同學還是很容易的,但學python以後就扔下再也沒動過,那個時代java已經是跟C可以爭第一的了。c++也學過一些,不深,2004年大三時考下個軟體設計師認證就是靠C++,之後我在C++方面對自己的要求就是能看懂基本文法寫出來的程式,而不怎麼寫了。C是這些年一直在用,尤其是2007年開始寫單片機的程式以後。

國際上略微上漲,來自於TIOBE熱門排行榜,最近這十年python的位置一直在第5到第8之間徘徊。兩次上過年度最佳語言(指漲幅而不是排名),最近一次看是排名第5。程式設計語言的發展也算比較快了,能保持排名也很不容易。比如曾經流行的ruby,2009年前後最高衝到過第9,然後就沒落了,最近幾年好像有掉出前20的風險。objc曾最高衝到過第4,但最近也漸漸冷下來了。

國內大漲,來自於我所看到的招聘需求。2006年我畢業找工作時,國內只有三家公司用python。而現在各種公司的招聘,則招python的就很多了。有些職位並非主力用python的,但也把會python作為註明的加分項。在創業公司的圈子裡,python明顯需求很高,畢竟做原型快。

科學計算大漲,來自於多個方面。guido當初就是寫python來協助科研的。最近這些年科學計算則很明顯的python與c++都得到了很廣泛的應用。很多科學計算方面的庫都在官方提供了python支援,而不是第三方。包括但不限於:

1、caffe:深度學習
2、theano:深度學習
3、opencv:電腦視覺
4、numpy:線性代數與數值計算
5、scipy:訊號處理
6、cuda:nvidia基於GPU的計算加速
7、opencl:其他GPU廠商的計算加速

好吧,限於我的知識範圍,應該還有不少而我不知道的。記得2006年時就有做生物的朋友提到某生物資訊學的庫在用python。知道各種科學計算方面python庫的,歡迎評論補充。

此外也有一些科研項目使用了python,這類就數不勝數了,比如最近大熱的引力波,據說代碼在github上,用到了numpy。

你同學的意思,我相信是指java和C++比較好找工作,這個我認同。但在現代,python也算是很好找工作的了。我的看法是反正學python很簡單,幾個星期就夠了,學一下是個高性價比的事情。c++方面我的看法是有太多feature是用來設計library的,平常人用不上,但是卻使得代碼可讀性降低。所以我很推薦c+python,並不推薦c++。

程式設計語言是編程路徑依賴的起點,多學幾種不是壞事,會對架構思維的形成有協助,尤其是越是後來學一門新的語言越容易。但不應該在語言本身上浪費太多時間,這也是我不推薦c++的一個原因。學完語言本身以後,需要大量的精力去瞭解更多的應用領域,比如網路、高效能運算、web、遊戲引擎、移動開發、資料庫、GUI等等,太多了。這些應用領域相關的知識很多是獨立於語言的,也是真正對工作有用的。所以趕緊學完了語言就去學這些。

對一些新出現的程式設計語言,應該保持開放的態度,瞭解一下其語言特性,學著寫個hello world。但要限制一下所用的時間。java是最近十幾年中突入TIOBE前十並穩定住自己排名的唯一一種程式設計語言。曆史長河中曇花一現的選擇太多了。我在2006-2009期間也花了不少精力尋找python以外更好的選擇,並寫了大量筆記。lua寫了近20萬字,erlang寫了36萬字。學到了不少新思維,但他們都沒能發展起來,最終只是站穩了各自擅長的小領域,沒有成為通用而流行的語言。最近幾年興起的語言很多,比如go,julia,但在我看來也大多是吸取已有各種語言優點而成的,並沒有什麼革命性的創新,所以沒什麼希望成為新的通用語言。我覺得像Python這樣成熟的語言談不上式微不式微,只是合適不合適你的應用情境。
比較正統的開發人員認為Java, C++, C#才是真正的開發語言,我曾經也這麼認為。但是慢慢意識到,每種語言都是它自己的優缺點,問題的關鍵是你是否瞭解這些優缺點,和你自身的skillset,在合適的時間地方選擇適合你的語言和技術。
我個人覺得Python非常好用,易上手,有無數的Library,從用戶端到網頁全能做,現在在創業隊伍裡很流行。雖然有人說有效能問題,豆瓣據說就是用它開發的,上億量級的UV和50萬行+的代碼也沒見效能不好。再說,如果你用Python做的東西真的遇到效能瓶頸了,那應該是好事,說明你的網站至少是百萬級的日活了,估計你也有錢雇更專業的人最佳化你的網站了:-)十幾年前就一直有人說C++要完,說了這麼多年也沒怎麼樣嘛
Python雖然不是非常普及但是也是相當廣泛的應用了,目測相當長的一段時間都不會有大的變化。

我一直覺得電腦二級的考試語言簡直沒用,什麼C和VB,很多人這輩子都不會再用也不會想用。我覺得還不如考Python或者JavaScript,就算不從事電腦行業也有很大機會用得上。1.語言大戰從古至今從未停止
2.大戰之前需正確稱呼目標名字
3.每種語言都有其長處短處和應用場合,就算是"世界上最好的語言PHP",也還是有那麼一點點優點的
4.碼農請勿嘲諷科學工作者用python,因為你搬你的磚,他打他的草稿C++和Java本來就是王道級的泛用語言,一直都是,因此沒什麼好疑惑的。

至於Python,定位不同,壓根不存在與C++和Java競爭的情境。然而完全不妨礙它熱門起來。

熱不熱?式微與否?參考TIOBE。知乎入門:先問是不是,再問為什嗎?俺是502膠水俺怕誰,不服import試試洗潔精已經式微了嗎,怎麼現在大家都說洗衣液才是王道python是指令碼語言,java和C++是編譯語言,根本就不是一個類型的,沒有可比性。真要比較,應該拿python和PHP這些語言來對比。就像你可以拿LOL和Dota比較,但是你不能和爐石比較。是你的小夥伴式微了

糾正一下其他一些說法:
Python不是指令碼語言,或者說不僅僅是指令碼語言,它是正兒八經的系統級程式設計語言。質疑Python能力的應該去瞭解下Tornado和Openstack。
相同功能的代碼,CPython可能會比C/C++或者Java的實現慢100到1000倍,但Python能編寫出的複雜系統用C++一輩子都寫不對。而且這是純CPU計算上的差異,通常我見過的糟糕的Java系統會因為濫用封裝,在一個HTTP請求裡調用數十次MySQL查詢,把效能都消耗在等待查詢結果上,反而比Python實現的效能更差。
同樣用Web服務舉例,Python的Web伺服器效能一般在數百qps,如果全部改用C++效能可以輕鬆到達上萬qps。但是可能兩年之後都上不了線。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.