Python 語言發展歷史

2021-08-13 13:16:50 字數 2283 閱讀 7807

python 是一門簡潔而又強大的程式語言。相信即使是剛接觸程式設計的同學也一定聽說過「人生苦短,我用 python(life is short. you need python.)」這句話。目前人工智慧越來越火,python 憑藉它擴充套件性強、第三方庫豐富和免費開源等特點,在機器學習、資料探勘、人工智慧等領域有著很大優勢,前景非常值得期待。(更多關於 python 未來的討論:可以參考:未來十年python的前景會怎樣? - 知乎)

python 創始人穿著「人生苦短,我用 python」的t恤

你也許聽過 python 誕生的故事:2023年的聖誕節,乙個名叫 guido von rossum 的荷蘭程式設計師為了打發無聊的聖誕節假期開始寫 python 語言的編譯/直譯器。

我最初聽到這個故事,腦海裡浮現出了這樣的畫面:乙個彷彿上帝的天才程式設計師,洞悉了計算機世界的所有秘密,一切任務對他來說都太過簡單以至於無法提起興趣,於是便隨手寫了發明了一門語言,而這門語言在後世產生如此大的影響力……實在是令人敬畏。但畢竟計算機領域中這樣的傳奇故事太多了。

然而事實並非這麼簡單。在python 誕生之前還有一段故事要講。guido von rossum 的確是乙個天才和神級程式設計師,然而他選擇創造 python 是有原因的。80年代的時候,個人電腦浪潮已經被掀起,然而其配置與今天相比還處於相當低的水平。於是所有的編譯起的核心是做優化,以便使程式在極小的記憶體條件下仍能執行。這也使得那時的程式設計師在程式設計時像計算機一樣思考,恨不得榨乾計算機每一寸的能力,連指標都被認為是在浪費記憶體,至於動態型別、物件導向什麼的,就只會讓電腦陷入癱瘓。

guido 對此感到很不滿。即使是像他這樣熟練掌握c語言的人,在用c寫功能時也不得不耗費大量的時間。同時他還有另乙個選擇,就是 shell。bourne shell作為unix系統的直譯器已經長期存在,它可以像膠水一樣將 unix 下的許多功能連線在一起。許多c語言下上百行的程式,在shell下只用幾行就可以完成。然而,shell的本質是呼叫命令。它並不是乙個真正的語言,不能全面的調動計算機的效能。

所以 guido 希望有一種語言可以兼具 c 和 shell 的優點。既能全面呼叫計算機的功能介面,又能輕鬆的程式設計。事實上,這時的 guido 正在參與荷蘭的 cwi(數學和計算機研究所)的 abc 語言的開發。這種語言與當時大部分語言不同,它以教學為目的,希望讓語言變得易讀、易用、易學。然而,abc 存在著一些致命的問題,使得它最終沒有流行起來:

注意上面這幾點,它們都是 python 在設計開發中極力避免的。可以說 abc 語言對於 python 語言是非常重要的。

了解了上述 python 起源的歷史,我們才能夠理解 python 誕生的情況。2023年,第乙個 python 編譯器(直譯器)誕生,它用c語言實現,並能夠呼叫c庫(.so 檔案)。從一出生,python已經具有了:類,函式,異常處理,包括表和詞典在內的核心資料型別,以及模組為基礎的拓展系統。

python 語法很多來自c,但又受到 abc 語言的強烈影響。來自 abc 語言的一些規定直到今天還富有爭議,比如強制縮排。但這些語法規定讓 python容易讀。另一方面,python 聰明的選擇服從一些慣例(特別是c語言的慣例)。比如使用等號賦值,使用 def 來定義函式。guido 認為,對於「常識」上確立的東西,沒有必要過度糾結。

python 從一開始就特別在意可拓展性。python 可以在多個層次上拓展。從高層上,你可以引入 .py 檔案。在底層,你可以引用c語言的庫。python 程式設計師可以快速的使用 python 寫 .py 檔案作為拓展模組。但當效能是考慮的重要因素時,python 程式設計師可以深入底層,寫c程式,編譯為 .so 檔案引入到 python 中使用。python 就好像是使用鋼構建房一樣,先規定好大的框架。而程式設計師可以在此框架下相當自由的拓展或更改。

從上述 python 的歷史,我們可以學習到很多,比如 python 清晰簡明、擴充套件性強等特點的**,如何更充分的用好 python,開源、開放的重要性等等。無論如何,我對 python 和程式設計的興趣又增添了幾分。

本文主要參考:

vamei 的部落格:python簡史

wikipedia: python - wikipedia

Python 發展歷史

python 是由 guido van rossum 在八十年代末和九十年代初,在荷蘭國家數學和電腦科學研究所設計出來的。python 本身也是由諸多其他語言發展而來的,這包括 abc modula 3 c c algol 68 smalltalk unix shell 和其他的指令碼語言等等。像 ...

c語言發展歷史

取bcpl的首字母b 而設計出來的語言b語言。第乙個unix系統就是用b語言寫的。這一切都發生在偉大的貝爾實驗室。在1972年,美國貝爾實驗室的 d.m.ritchie 在b語言的基礎上最終設計出了一種新的語言,他取了bcpl的第二個字母作為這種語言的名字,這就是c語言。可移植的c語言編譯程式 的發...

C語言發展歷史

c語言是當今世界上用途最廣泛 最通用的計算機高階語言。它既可以寫出系統軟體,比如計算機作業系統,也可以寫出各種應用軟體,因此成為了應用廣泛,最流行,最受歡迎的計算機高階語言。那麼c語言究竟是怎麼發展起來的呢?語言是在 70 年代初問世的。一九七八年由美國 電報公司 at t 貝爾實驗室正式發表了 語...