1. Python發展歷史
- 起源
Python的作者,Guido von Rossum,荷蘭人。1982年,Guido從阿姆斯特丹大學獲得了數學和計算機碩士學位。然而,盡管他算得上是一位數學家,但他更加享受計算機帶來的樂趣。用他的話說,盡管擁有數學和計算機雙料資質,他總趨向於做計算機相關的工作,並熱衷於做任何和編程相關的活兒。
在那個時候,Guido接觸並使用過諸如Pascal、C、Fortran等語言。這些語言的基本設計原則是讓機器能更快運行。在80年代,雖然IBM和蘋果已經掀起了個人電腦浪潮,但這些個人電腦的配置很低。比如早期的Macintosh,只有8MHz的CPU主頻和128KB的RAM,一個大的數組就能占滿內存。所有的編譯器的核心是做優化,以便讓程序能夠運行。為了增進效率,語言也迫使程序員像計算機一樣思考,以便能寫出更符合機器口味的程序。在那個時代,程序員恨不得用手榨取計算機每一寸的能力。有人甚至認為C語言的指針是在浪費內存。至於動態類型,內存自動管理,面向對象…… 別想了,那會讓你的電腦陷入癱瘓。
這種編程方式讓Guido感到苦惱。Guido知道如何用C語言寫出一個功能,但整個編寫過程需要耗費大量的時間,即使他已經准確的知道了如何實現。他的另一個選擇是shell。Bourne Shell作為UNIX系統的解釋器已經長期存在。UNIX的管理員們常常用shell去寫一些簡單的腳本,以進行一些系統維護的工作,比如定期備份、文件系統管理等等。shell可以像膠水一樣,將UNIX下的許多功能連接在一起。許多C語言下上百行的程序,在shell下只用幾行就可以完成。然而,shell的本質是調用命令。它並不是一個真正的語言。比如說,shell沒有數值型的數據類型,加法運算都很復雜。總之,shell不能全面的調動計算機的功能。
Guido希望有一種語言,這種語言能夠像C語言那樣,能夠全面調用計算機的功能接口,又可以像shell那樣,可以輕松的編程。ABC語言讓Guido看到希望。ABC是由荷蘭的數學和計算機研究所開發的。Guido在該研究所工作,並參與到ABC語言的開發。ABC語言以教學為目的。與當時的大部分語言不同,ABC語言的目標是“讓用戶感覺更好”。ABC語言希望讓語言變得容易閱讀,容易使用,容易記憶,容易學習,並以此來激發人們學習編程的興趣
- 一門語言的誕生
1991年,第一個Python編譯器誕生。它是用C語言實現的,並能夠調用C語言的庫文件。從一出生,Python已經具有了 :類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊為基礎的拓展系統。 Python語法很多來自C,但又受到ABC語言的強烈影響。來自ABC語言的一些規定直到今天還富有爭議,比如強制縮進。 但這些語法規定讓Python容易讀。另一方面,Python聰明的選擇服從一些慣例,特別是C語言的慣例,比如回歸等號賦值。Guido認為,如果“常識”上確立的東西,沒有必要過度糾結。 Python從一開始就特別在意可拓展性。Python可以在多個層次上拓展。從高層上,你可以直接引入. py文件。在底層,你可以引用C語言的庫。Python程序員可以快速的使用Python寫. py文件作為拓展模塊。但當性能是考慮的重要因素時,Python程序員可以深入底層,寫C程序,編譯為.so文件引入到Python中使用。Python就好像是使用鋼構建房一樣,先規定好大的框架。而程序員可以在此框架下相當自由的拓展或更 改。 最初的Python完全由Guido本人開發。Python得到Guido同事的歡迎。他們迅速的反饋使用意見,並參與到Python的改進。Guido和一些同事構成Python的核心團隊。他們將自己大部分的業余時間用於hack Python。隨后,Python拓 展到研究所之外。Python將許多機器層面上的細節隱藏,交給編譯器處理,並凸顯出邏輯層面的編程思考。Python程 序員可以花更多的時間用於思考程序的邏輯,而不是具體的實現細節。這一特征吸引了廣大的程序員。Python開始流行。
人生苦短,我用python