做者 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)。
轉載請註明出處。
原文:http://www.jianshu.com/p/08ca8573e681html
編程語言之爭歷來未曾中止,這篇文章絕對不會去討論哪一個語言是最好的(固然了,除了「PHP 是世界上最好的語言」這句「真理」以外)。python
插句題外話,不要聽一些人說:「編程語言沒有好差之分,只有用起來順不順手」。這話其實不正確,編程語言就是有好差之分。有些編程語言就是設計得很差,就是不適合通常的應用,就是無人問津。程序員
我想談談最近幾年個人感覺:算法
我深入地認識到 Python 是當下迫切應該學習的編程語言。編程
爲何這麼說呢?且聽我慢慢「因式分解」:後端
Python 很是容易入門。Python 號稱「Battery included」。咱們知道 battery 是「電池」的意思,included 是「包含」的意思,所以就是說 Python 簡單到「已經包含了電池了」,功能都已經包含在語言裏了,直接拿來用便可。其語法實在很簡單,基本沒有編程經驗的孩子幾天也能夠學會。如今 Python 更是已經被加入幼兒園、中小學的教材中了。微信
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。網絡
優越的跨平臺性能,幾乎全部的操做系統均可以跑起來 Python。框架
Python 既支持面向過程函數式編程也支持面向對象的抽象編程。機器學習
用 Python 語言編寫程序讓人很愉快,反正我學習的時候感受寫 Python 的程序有一種快感。
Python 很是精簡。自己的 API 封裝得挺好,所以不少功能不須要咱們從新造輪子,直接調用便可。再加上那麼多成熟的庫,用起來不要太開心。一樣實現一個功能,用 C 語言,Java 或 C++ 每每要寫不少行代碼,Python 只需一行或者幾行代碼幫你搞定。
Python 在 Tiobe 編程語言排行榜的最新一期榜單(2020 年 6 月)中已經位列第 3,僅次於 Java,C語言。雖然說這個榜單不能涵蓋所有,但也是編程界比較權威的榜單了。能夠看出 Python 勢頭強勁。
Python 是解釋型語言,所以假如你要作些小測試,或者學習這門語言,將會很是省時間,由於不須要編譯,直接解釋就能夠執行。好比我很喜歡的 Python 的 IDE(集成開發環境),由大名鼎鼎的 Jetbrains 出品的 PyCharm,就讓寫 Python 程序成了一種享受。
Python 的可擴展性很好,開發者能夠用 C 語言或者 C++ 編寫 Python 的擴展模塊,還能將 Python 嵌入到 C/C++ 程序中。著名的 Numpy 就是用 C語言寫的。
Python 的源代碼寫得不錯。其源代碼一開始是用 C 語言寫的,Python 的做者使用中立的面向過程的 C 語言,實現了動態面向對象,使得 Python 具有靈活和優雅的特性。Python 的源代碼也是值得學習的。推薦一本書,是中國人寫的,叫《Python 源碼剖析》,做者 陳儒,豆瓣評分 8.7。
之前學習 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 老師,終生學習者。熱愛生活,喜歡游泳,略懂烹飪。人生格言:「向着標杆直跑」