為什麼 Python 現在越來越火了?

來源:互聯網
上載者:User
語言火不火主要表現的是市場的需求,和語言本身好不好是有相關性,沒有因果性

比如Python,我們七八年前就開始用了,當時有如醍醐灌頂,發現程式設計語言竟也可以如此優雅(原來一直用C++)。而福士覺得開始火的這幾年,Python本身確沒有『突然』增加什麼更迷人的東西。

對於我來說,Python在很多年前我第一次開啟ipython時就火了,同好不多,但個頂個的能扯上一翻。而現在動輒看到『python程式員』寫的代碼:

sum = 0for i in range(len(num_list)):  sum += num_list[i]

我就有種看到douban變成約炮網站的悲哀

從理想上看,Python和C++是十分相似的,它們都想做萬金油。

C++是學術性的,大牛們都指著靠它揚名立萬,設計哲學是『什麼都想要』,首先要相容C要快,其次是別的語言有的咱都要有,別的語言沒有的咱也要有。但是一方面C語言本身也不是很完善(比如標頭檔這樣的粗暴的機制),另一方面為了運行時的爽快把新功能的髒活累活全往預先處理、編譯上扔,導致C++的晦澀、艱深。用C++寫代碼有點像是用文言文寫公文,逼格滿滿,文采飛揚,需要耗費大量的精力在內容以外的地方。而看文言文公文(C++代碼)更是痛苦,首先你得熟悉各種反人類的文法(傳值/傳址/move語義、預先處理、函數指標……),通曉曆代典故(effective C++, ……)

Python的想法不一樣,Python的核心是簡潔直接清晰,Python認為最好的方式只有一種,它也只呈現那最好的一面。Python的文法本身就是一種虛擬碼的最佳實務,而且這個『虛擬碼』還是可以啟動並執行。這造就了Python較低的使用門檻和極高的編程效率。用Python開發只要『有事兒說事兒』就好。ruby on rails最火的那幾年,有人問guido叔(Python作者)怎麼看,guido說的大概是:Python不需要殺手級應用,因為如果是這樣的話,Python在其它方面的作用就被忽略了。

回到話題本身,為什麼Python會顯得越來越火?

python最大的問題在於效能。效能問題其實是在設計時最容易被誤解的部分。C++以『接近C語言的效能』橫行多年。隨著物理硬體效能的顯著提升以及軟體複雜性的顯著提升,人們開始對效能有了更正確的看法。

首先,有些時候效能並不重要。IO密集型的業務大部分時間都在等待IO,節省不到1ms讓開發量增加幾倍似乎不是很划得來。

其次,有些時候程式員的效率比機器的效率更重要。對於很多複雜的邏輯性功能,使用更加清晰的語言比晦澀的語言給程式減少的負擔,可以大大增強軟體的品質。(尤其是公司給的待遇招不到知乎上的大牛程式員的時候)

於是,Python/Ruby/Java開始崛起了。用Python的『inside battery』就可以做到過去需要反覆造輪子、天天加班還做得不是那麼好的東西。我在看Python的原始碼時,突然有一種感覺:Python底層的原始碼其實可以理解為C語言的一些常用功能的庫(如hashmap實現的dict),Python進程就是載入了這些庫然後讀取設定檔(Python代碼)執行相應的邏輯。相同的功能,Python進行了一次轉義,肯定會比直接用C實現要慢,但你不一定能這麼快的寫出這樣運行比Python快的C代碼。(當然,知乎上的大牛還是除外)

於是,類似Python這樣的語言們解放了程式員的時間,程式員們寂寞難耐的夜晚可以有了更多的產出,一個一個的項目建立起來了,社區建立起來了,遲滯的市場也開始有感知了。

即便這樣,Python還有會心一擊:我也可以不那麼慢。Python可以十分方便地和C代碼融合到一起。Python和C的組合徹底解決了後顧之憂:先用Python快速開發快速搭建產品原型,然後找出效能瓶頸有針對性的效能最佳化。所謂好鋼用在刀刃上,節約時間,節省成本,減少風險,提高程式員的生活品質又有什麼不對呢?

泛泛而談,匿之.

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.