最近迫切應學的編程語言

作者 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)。
轉載請註明出處。
原文:http://www.jianshu.com/p/08ca8573e681


編程語言之爭從來不曾停止,這篇文章絕對不會去討論哪個語言是最好的(當然了,除了“PHP 是世界上最好的語言”這句“真理”之外)。

插句題外話,不要聽一些人說:“編程語言沒有好差之分,只有用起來順不順手”。這話其實不正確,編程語言就是有好差之分。有些編程語言就是設計得不好,就是不適合一般的應用,就是無人問津。

我想談談最近幾年我的感受:

我深刻地認識到 Python 是當下迫切應該學習的編程語言。

爲什麼這麼說呢?且聽我慢慢“因式分解”:

  1. Python 很火,非常火。這和人工智能(AI :Artificial Intelligence)有關。Python 有很多優秀的庫,特別適合數學運算和科學計算,而人工智能就需要很多計算和一些算法,因此 Python 的很多庫比如 Numpy,Pandas,SciPy,等就有用武之地了。而且很多大公司啓動了適合人工智能的庫或項目,比如 Google 公司發佈的開源機器學習庫 TensorFlow,Tesla(特斯拉)的 OpenAI,FaceBook 開源的 PyTorch,等等。這些庫上層都可以很方便地用 Python 來操作。Google 的 AlphaGo 擊敗了人類最強圍棋(Go)玩家李世石,而 AlphaGo 是基於 Google 的 DeepMind,DeepMind 前不久宣佈底層基於 TensorFlow 了。特斯拉的 OpenAI 在單人對抗中擊敗了人類最強的 Dota 2 影魔選手之一的 Dendi,完整對戰視頻。當然了,現在 AI 已經可以在星際爭霸 2 中戰勝人類選手了。​

OpenAI 和人類選手 Dendi 的 Dota 2 單人對決

  1. Python 非常容易入門。Python 號稱「Battery included」。我們知道 battery 是「電池」的意思,included 是「包含」的意思,因此就是說 Python 簡單到「已經包含了電池了」,功能都已經包含在語言裏了,直接拿來用即可。其語法實在很簡單,基本沒有編程經驗的孩子幾天也可以學會。現在 Python 更是已經被加入幼兒園、中小學的教材中了。

  2. Python 幾乎可以被應用在任何領域。人工智能、科學計算領域自然不用說,各種成熟的庫調用起來極爲方便;大數據領域也是 Python 大展拳腳之處;雲計算領域 Python 可以發揮實力,比如著名的 Dropbox 就是 Python 寫的;用 PyGame 可以進行快速遊戲開發;GUI 圖形界面編程也不在話下,Matplotlib 這個繪圖庫可以滿足你;嵌入式領域,著名的樹莓派(Raspberry Pi)開發板的主要開發語言是 Python;Web 應用有 Django、Flask,等這個 Web 應用框架,可以很快速地開發出絢麗無比的網站;Web 後端 Python 也不甘寂寞,知乎和豆瓣的後臺就是 Python 寫的;近幾年新興的職業 DevOps (development 和 operations 的組合)一般也用 Python 來寫腳本;一些大型項目的構建以及一些小任務的處理,Python 的腳本也能助你快速開發;用 Python 做爬蟲程序,可以輕鬆爬取網絡上你想要的內容(當然,請不要幹壞事),Python 有很多不錯的爬蟲庫,例如 Scrapy。

  3. 優越的跨平臺性能,幾乎所有的操作系統都可以跑起來 Python。

  4. Python 既支持面向過程函數式編程也支持面向對象的抽象編程。

  5. 用 Python 語言編寫程序讓人很愉快,反正我學習的時候感覺寫 Python 的程序有一種快感。

  6. Python 非常精簡。本身的 API 封裝得挺好,因此很多功能不需要我們重新造輪子,直接調用即可。再加上那麼多成熟的庫,用起來不要太開心。同樣實現一個功能,用 C 語言,Java 或 C++ 往往要寫很多行代碼,Python 只需一行或者幾行代碼幫你搞定。

  7. Python 在 Tiobe 編程語言排行榜的最新一期榜單(2020 年 6 月)中已經位列第 3,僅次於 Java,C語言。雖說這個榜單不能涵蓋全部,但也是編程界比較權威的榜單了。可以看出 Python 勢頭強勁。

  8. Python 是解釋型語言,因此假如你要做些小測試,或者學習這門語言,將會非常省時間,因爲不需要編譯,直接解釋就可以執行。比如我很喜歡的 Python 的 IDE(集成開發環境),由大名鼎鼎的 Jetbrains 出品的 PyCharm,就讓寫 Python 程序成了一種享受。

  9. Python 的可擴展性很好,開發者可以用 C 語言或者 C++ 編寫 Python 的擴展模塊,還能將 Python 嵌入到 C/C++ 程序中。著名的 Numpy 就是用 C語言寫的。

  10. Python 的源代碼寫得不錯。其源代碼一開始是用 C 語言寫的,Python 的作者使用中立的面向過程的 C 語言,實現了動態面向對象,使得 Python 具備靈活和優雅的特性。Python 的源代碼也是值得學習的。推薦一本書,是中國人寫的,叫《Python 源碼剖析》,作者 陳儒,豆瓣評分 8.7。

  11. 規範的代碼。Python使用強制縮進來保證代碼規範性,幾乎不需要代碼審查。

以前學習 C++ 的時候,感覺真是挺難的,主要是 C++ 比較龐雜,東西太多,概念都能把你繞暈了,而且還要考慮指針和內存等等。很多寫 C++ 的人其實並沒有很好地掌握其精髓,寫出來的程序往往非常醜陋,難以擴展和維護。

但 Python 就很簡單,終於可以用節省下來的時間去看看詩和遠方了。當然了,要寫出優秀的 Python 代碼也沒有那麼容易。

Python的優點也不只我所列的這些。

當然,Python 也不是沒有缺點。比如動態解釋型語言速度相對編譯型慢一些(但其實 Python 現在速度已經挺快了)。操作系統的編寫目前還是以彙編語言,C 語言和 C++ 爲主。

Python 還有一個最大的缺點,就是「優點實在太多了」。

所以,省下幾局打王者榮耀的時間,來學學 Python 吧,一定大有裨益。

至於學習 Python 的教材,可以看看《Head first Python》這本書,很淺顯易懂。慕課網的各種 Python 視頻也是入門和提高的好資源。

如果你英語好的話就直接看 Python 官網的 Tutorial(教程)吧:

https://docs.python.org/3/tutorial/index.html

沒有比這更權威和保持更新的了。

當然了,到時候你深陷 Python 的「情網」,無法自拔時,請不要來找我「算賬」,這鍋我可不背。

當然了,這篇文章只介紹了 Python。其實 Google 開源的 Go 語言和 Kotlin 語言也都不錯,但比起 Python 勢頭還是差了點。
我之前也寫過一篇關於 Kotlin 的文章:Kotlin探索之旅 | 第一部分第一課:Kotlin若只如初見


我是 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)運營者,慕課網精英講師 Oscar 老師,終生學習者。
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:「向着標杆直跑」

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章