新聞中心
Guido van Rossum 是Python語言的作者,Python 是一門解釋性的、是一種面向?qū)ο?、直譯式計算機(jī)程序設(shè)計語言,也是一種功能強(qiáng)大而完善的通用型語言,已經(jīng)具有十多年的發(fā)展Python歷史了。

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)萊西,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
他工作的地方被叫做 Centrum voor Wiskunde en Informatica (CWI).從那時開始,Python 在開發(fā)者當(dāng)中日益流行起來,這歸功于 Python 簡明清晰的語法和開發(fā)效率高的名聲。這次訪談會分為幾個部分,每周都會發(fā)布其中一篇.Van Rossum 會對下列議題給出他的真知灼見:Python 的設(shè)計目標(biāo),Python 程序員的工作效率來自何處。
弱類型意味著什么,等等.在第一篇中,Van Rossum Python 將對 Python 的歷史,受到的主要影響,及其設(shè)計目標(biāo)娓娓道來.Bill Venners: 如果開發(fā)者從沒用過 Python,那你會怎么向他們描述這門語言呢?Guido van Rossum: 從一個方面說,你可以說 Python 是一個非常高階的語言。
而從另一個方面來看,你可以說它是一個非常高階的語言,它實(shí)現(xiàn)的方式正好讓它非常注重可交互性.Python 和腳本語言之間有著很多共同點(diǎn),但是和更傳統(tǒng)的編程語言也有頗多共通之處.
ABC 對 Python 的影響B(tài)ill Venners: 您能簡要介紹一下 Python 的歷史么?Guido van Rossum: 在 1980 年代末,我在 Centrum voor Wiskunde en Informatica (CWI) 的一個小組里面做開發(fā)工作。
這個小組的任務(wù)是設(shè)計實(shí)現(xiàn)一門叫 ABC 的語言.我不清楚人們對 ABC 對Python歷史的影響有多少了解.我之所以會提及 ABC 的影響,是因?yàn)槲以趶氖逻@個項(xiàng)目的時候,所獲良多,而且從共事的同事身上也學(xué)到了很多東西,我對他們非常感激。
ABC 的設(shè)計動機(jī)非常明確.ABC 希望成為一門編程語言,這門語言是為非計算機(jī)程序員或軟件開發(fā)者的那種比較聰明的計算機(jī)用戶而設(shè)計的。在 1970 年代末,ABC 的主設(shè)計師曾向這種用戶教授一些傳統(tǒng)的編程語言.他們的學(xué)生有各個學(xué)科的科學(xué)家:從物理學(xué)家、社會學(xué)家到語言學(xué)家。
為了使用超大型計算機(jī),這些科學(xué)家需要幫忙.雖然這些人在自己的領(lǐng)域可算出類拔萃,他們還是對傳統(tǒng)語言所有的各種局限感到詫異和不適應(yīng).根據(jù)用戶的這個反饋,ABC 的設(shè)計者試圖去開發(fā)一門新的語言.
另一個讓 ABC 的設(shè)計者覺得失望的原因是 Basic.那時,Basic 是一門非常蹩腳的語言.雖然 Basic 也是為那種非程序員的計算機(jī)用戶而設(shè)計的。但是它設(shè)計的著眼點(diǎn)是完全不同的。
在那時,市面上所有的 Basic 版本都非常難用.幾乎所有好玩的 Basic 程序都遍布著底層的奇技淫巧,比如說,如果要把屏幕背景色變成黃色的話,就需要修改內(nèi)存的第 714 字節(jié)。Bill Venners: 這個我也有印象.您是什么時候搞 ABC 的?Guido van Rossum: ABC 的作者在 70年代晚期和 80年代初期,開始這門語言的設(shè)計工作。
我于 1983 年加入這個小組.我想我們一直干到了 1986 年還是 1987 年.因?yàn)榉N種原因,ABC 項(xiàng)目并沒有獲得很大的成功.或許那時太早了,那個時候還沒有因特網(wǎng)可做大規(guī)模的推廣.
Python歷史的誕生
Guido van Rossum: 1986 年,我轉(zhuǎn)向了 CWI 的另一個叫 Amoeba (阿米巴蟲) 的項(xiàng)目.Amoeba 是一個分布式操作系統(tǒng)。直到 1980年代末,我們意識到需要一個腳本語言.在那個項(xiàng)目中,我享有很大的自由度,所以我啟動了一個迷你項(xiàng)目,這個小項(xiàng)目是服務(wù)于當(dāng)時的我們手頭的 Amoeba 項(xiàng)目的。
那時,我對在 ABC 上獲得的經(jīng)驗(yàn)教訓(xùn)記憶猶新.我決定,想辦法設(shè)計一門簡單的腳本語言,它將擁有 ABC 的優(yōu)點(diǎn),但卻沒有他的缺點(diǎn).所以,我挽起袖子開始打鍵盤了.我實(shí)現(xiàn)了一個簡單的虛擬機(jī),一個簡單的 parser,還有一個簡單的運(yùn)行時庫.ABC 中每一個我欣賞的部分我都重新實(shí)現(xiàn)了一把。#t#
我還設(shè)計了一種基本的語法,它用縮進(jìn)來表示語句之間的結(jié)合關(guān)系,而不是用花括號或者 begin-end 塊來表示程序結(jié)構(gòu)。同時,我開發(fā)了幾個功能強(qiáng)大的數(shù)據(jù)結(jié)構(gòu):哈希表 (用來實(shí)現(xiàn) dictionary,我們這樣稱呼它),列表,字符串,以及數(shù)字類型。
ABC 的設(shè)計者放棄了用來讀寫文件的 IO 的方法,他們轉(zhuǎn)而在程序里使用一些全局變量.他們的用戶對全局變量的概念應(yīng)該了然于胸.所以 ABC 的設(shè)計者讓那些全局變量能持久化。
如果你退出一次編程會話,你所有的全局變量就被系統(tǒng)存到磁盤上的一個文件里.等到你下次啟動另一個會話,你所有的全局變量就會恢復(fù)回來.在某種程度上說,這一套運(yùn)作得很好.這和 workspace 有幾分相像,比如說 Smalltalk 里的 workspace 就和這個差不多。
ABC 里有一個 print 語句,可以讓你在屏幕上輸出,還有一個 input 語句,讓你可以從鍵盤上讀入,但是 ABC 卻沒有辦法可以把 IO 重定向到文件,或者從文件重定向到 IO.實(shí)際上,可以說他們根本就沒有提供任何 IO 功能。
網(wǎng)站標(biāo)題:深度剖析Python歷史誕生問題
當(dāng)前URL:http://www.5511xx.com/article/cdecgpd.html


咨詢
建站咨詢
