樂搏講自動化測試-Python發展背景(1)

相信小夥伴們都知道,隨着軟件測試行業的發展和進步自動化測試已經成爲必然。在競爭日益激烈的市場環境中也是你升職加薪的利器。

所以,小編決定從今天起!將要系統、連續、高質量的持續更新「整套自動化測試」文章!從0開始,讓你100%掌握自動化測試技能。
Python的作者,Guido von Rossum(吉多·範·羅蘇姆,中國Python程序員都叫他 龜叔),荷蘭人。1982年,龜叔從阿姆斯特丹大學獲得了數學和計算機碩士學位。
然而,儘管他算得上是一位數學家,但他更加享受計算機帶來的樂趣。用他的 話說,雖然擁有數學和計算機雙料資質,他總趨向於做計算機相關的工作,並熱衷於做任何和編程相關的事情。
樂搏講自動化測試-Python發展背景(1)

在那個時候,龜叔接觸並使用過諸如Pascal、C、Fortran等語言。這些語言的基本設計原則是讓機器能更快運行。在80年代,雖然 IBM和蘋果已經掀起了個人電腦浪潮,但這些個人電腦的配置很低。比如早期的Macintosh,只有8MHz的CPU主頻和128KB的RAM,一個大 的數組就能佔滿內存。
所有的編譯器的核心是做優化,以便讓程序能夠運行。爲了增進效率,語言也迫使程序員像計算機一樣思考,以便能寫出更符合機器口味的程 序。在那個時代,程序員恨不得用手榨取計算機每一寸的能力。有人甚至認爲C語言的指針是在浪費內存。至於動態類型,內存自動管理,面向對象…… 別想了,那會讓你的電腦陷入癱瘓。
樂搏講自動化測試-Python發展背景(1)
這種編程方式讓龜叔感到苦惱。龜叔知道如何用C語言寫出一個功能,但整個編寫過程需要耗費大量的時間,即使他已經準確的知道了如何實現。他 的另一個選擇是shell。Bourne Shell作爲UNIX系統的解釋器已經長期存在。
UNIX的管理員們常常用shell去寫一些簡單的腳本,以進行一些系統維護的工作,比如定期備份、文 件系統管理等等。shell可以像膠水一樣,將UNIX下的許多功能連接在一起。
許多C語言下上百行的程序,在shell下只用幾行就可以完成。然 而,shell的本質是調用命令。它並不是一個真正的語言。比如說,shell沒有數值型的數據類型,加法運算都很複雜。總之,shell不能全面的調動 計算機的功能。
樂搏講自動化測試-Python發展背景(1)
龜叔希望有一種語言,這種語言能夠像C語言那樣,能夠全面調用計算機的功能接口,又可以像shell那樣,可以輕鬆的編程。ABC語言讓龜 叔看到希望。ABC是由荷蘭的數學和計算機研究所開發的。龜叔在該研究所工作,並參與到ABC語言的開發。ABC語言以教學爲目的。與當時的大部分語言不 同,ABC語言的目標是“讓用戶感覺更好”。ABC語言希望讓語言變得容易閱讀,容易使用,容易記憶,容易學習,並以此來激發人們學習編程的興趣。比如下面是一段來自Wikipedia的ABC程序,這個程序用於統計文本中出現的詞的總數:
HOW TO RETURN words document:
PUT {} IN collection
FOR line IN document:
FOR word IN split line:
IF word not.in collection:
INSERT word IN collection
RETURN collection
HOW TO用於定義一個函數。一個Python程序員應該很容易理解這段程序。
ABC語言使用冒號和縮進來表示程序塊。行尾沒有分號。
for和if結構中也沒有括號() 。賦值採用的是PUT,而不是更常見的等號。這些改動讓ABC程序讀起來像一段文字。
儘管已經具備了良好的可讀性和易用性,ABC語言最終沒有流行起來。在當時,ABC語言編譯器需要比較高配置的電腦才能運行。而這些電腦的使用者通常精通計算機,他們更多考慮程序的效率,而非它的學習難度。除了硬件上的困難外,ABC語言的設計也存在一些致命的問題:
可拓展性差。ABC語言不是模塊化語言。如果想在ABC語言中增加功能,比如對圖形化的支持,就必須改動很多地方。
不能直接進行IO。ABC語言不能直接操作文件系統。儘管你可以通過諸如文本流的方式導入數據,但ABC無法直接讀寫文 件。輸入輸出的困難對於計算機語言來說是致命的。你能想像一個打不開車門的跑車麼?
過度革新。ABC用自然語言的方式來表達程序的意義,比如上面程序中的HOW TO 。然而對於程序員來說,他們更習慣 用function或者define來定義一個函數。同樣,程序員更習慣用等號來分配變量。儘管ABC語言很特別,但學習難度 也很大。
傳播困難。ABC編譯器很大,必須被保存在磁帶上。當時龜叔在訪問的時候,就必須有一個大磁帶來給別人安裝ABC編 譯器。 這樣,ABC語言就很難快速傳播。
1989年,爲了打發聖誕節假期,龜叔開始寫Python語言的編譯器。Python這個名字,來自龜叔所摯愛的電視劇Monty Python's Flying Circus。他希望這個新的叫做Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。龜叔作爲一個語言設計愛好者,已經有過設計語言的嘗試。這一次,也不過是一次純粹的hacking行爲。
每天持續更新,軟件測試知識!
如有轉載,請聯繫博主!

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