“第一次使用 Python 時,我就知道它很特別。它提高了代碼的可讀性,寫 Python 代碼是很愉快的過程?!盉arry 回憶道。1989 年,Guido van Rossum 厭倦了當(dāng)時已有編程語言的缺點,決定創(chuàng)造一種新的編程語言。
Python,誕生伊始
就某些方面而言,Python 的崛起就像英國同名喜劇組合Monty Python一樣離奇怪誕,而它也同樣在自己的生態(tài)系統(tǒng)中積聚出名氣和影響力。
Python 最初只是荷蘭程序員 Guido van Rossum 的副業(yè)。上世紀80 年代末,van Rossum 在荷蘭數(shù)學(xué)和計算機科學(xué)研究學(xué)會 (CWI) 工作。他厭倦了當(dāng)時已有編程語言的缺陷,決定創(chuàng)造一種既好用又高能的新語言。
對于門外漢來說,創(chuàng)造一門自己的編程語言不亞于自己造一架飛機,但是時年三十多歲的 van Rossum 有他自己的優(yōu)勢。當(dāng)時他與 CWI 的一個團隊用三年時間創(chuàng)造了一種解釋性編程語言 ABC,所以他對構(gòu)建執(zhí)行編程指令的解釋器需要什么、新語言需要哪些語法構(gòu)建塊都有自己的見解。
對于當(dāng)時的 van Rossum 來說,意識到已有編程語言的易用性缺陷也是非常重要的。他當(dāng)時正在開發(fā)的 Amoeba 分布式計算系統(tǒng)需要使用 C 語言或 Unix shell,這兩種語言都有很明顯的缺陷。
C 語言不僅需要開發(fā)者執(zhí)行手動管理內(nèi)存的復(fù)雜工作、時刻面臨潛在的錯誤,還缺少可重用代碼庫,這就使得開發(fā)者在每執(zhí)行一個新項目時就得重新造一個輪子。而 Unix shell 存在另外一些問題:它為常見任務(wù)提供了一套實用工具,但是運行速度很慢,無法處理復(fù)雜邏輯。
一個人自己創(chuàng)造了一種編程語言,這聽起來很不尋常,但是 van Rossum 得到了足夠的支持。上世紀80 年代末,出于對當(dāng)時可用開發(fā)工具的失望,多種主流語言應(yīng)運而生。僅僅用了三個月時間,van Rossum 就創(chuàng)建了 Python 的工作原型,他認為該原型雖然缺乏一些現(xiàn)代特性,但是仍然能夠從中看出今天 Python 的雛形。
Python 為什么能贏?
上世紀90 年代早期和中期,Python 語言發(fā)展迅速,van Rossum 認為開發(fā)者使用 Python 的原因和他最初創(chuàng)建 Python 的原因一致。他們想要一種高級的腳本語言,能夠平衡易用性和強悍能力,在處理復(fù)雜邏輯時不會出現(xiàn) Unix shell 的局限性。他們想要結(jié)束使用 C 語言時必須手動執(zhí)行內(nèi)存管理、必須在每個項目開始時重復(fù)造輪子的局面。
Barry Warsaw 表示,Python 既具備易用性,其能力也不打折扣,這種平衡是上世紀90 年代早期的主流編程語言所不具備的?!拔抑皩戇^大量 Perl、Tcl 和 C 代碼,寫的過程并不怎么愉悅。當(dāng) Python 出現(xiàn)時,我的感覺是:哇,它讓編程重新變得有趣了!”
如果上世紀80 年代末的流行編程語言能夠更好,或許 Python 壓根就不會出現(xiàn)。van Rossum 當(dāng)時創(chuàng)造 Python 的一大動力來自他在 CWI 開發(fā)的 Amoeba 分布式計算系統(tǒng)與 Perl 腳本語言不兼容。根據(jù) Stack Overflow 開發(fā)者調(diào)查報告,現(xiàn)在 Python 是活躍用戶增長最快的編程語言,而 Perl 已經(jīng)滑出最新的 Stack Overflow 調(diào)查報告。
近年來在 Stack Overflow 網(wǎng)站上,Python 相關(guān)問題的閱讀量增長速度遠遠超過其他編程語言。Python 可用于大型任務(wù)和小型任務(wù),專業(yè)開發(fā)者、業(yè)余開發(fā)者都可以使用。該語言尤其受到 Web 開發(fā)者、數(shù)據(jù)科學(xué)家和系統(tǒng)管理員的青睞。