- 論壇徽章:
- 0
|
Larry Wall:Perl的樂趣
時(shí)間: 2003-8-1
原始出處: AKA雜志
"Larry Wall是如何發(fā)明了一門凌亂的編程語言--接著改變了WEB的面貌?"
LarryWall微笑著回憶起Yahoo的共同創(chuàng)始人DavidFilo幾年之前發(fā)給他消息,當(dāng)時(shí)正值Yahoo公開面市之前的不久.File寫道:"
如果沒有Perl,Wall發(fā)明的通用編程語言,Yahoo是不可能開始的.那么,Larry你愿意買一些便宜的,Yahoo的原始股(IPO)么"?
[color="DarkRed"][color="SlateGray"]
傳奇程序員Larry Wall:Perl的樂趣
時(shí)間: 2003-8-1
原始出處: AKA雜志
"Larry Wall是如何發(fā)明了一門凌亂的編程語言--接著改變了WEB的面貌?"
LarryWall微笑著回憶起Yahoo的共同創(chuàng)始人DavidFilo幾年之前發(fā)給他消息,當(dāng)時(shí)正值Yahoo公開面市之前的不久.File寫道:"
如果沒有Perl,Wall發(fā)明的通用編程語言,Yahoo是不可能開始的.那么,Larry你愿意買一些便宜的,Yahoo的原始股(IPO)么"?
回溯到1996年早期,當(dāng)時(shí)正值硅谷Internet
IPO的瘋狂處于絕對(duì)高度,這樣一個(gè)提議無異于問你是否接受讓一輛裝載了固體黃金制品的自動(dòng)卸貨卡車往你的門前草坪上運(yùn)輸.但是對(duì)于Wall,錢永遠(yuǎn)不是
主要的動(dòng)機(jī).盡管被認(rèn)為是黑客們使用的最有價(jià)值的工具的作者,Wall仍平靜地住在偏遠(yuǎn)的加州的Mountain
View中一個(gè)小鎮(zhèn)上,為陳舊的1977 Hoda
Accord做加工.Perl與錢無關(guān),Wall只是為了解決在日常工作中的碰到的一個(gè)編程問題才發(fā)明了這門語言,并且從開始他就確認(rèn)Perl的源代碼是
可以自由獲得的.人們總是想到用Perl來做修補(bǔ)工作--無論是用它來構(gòu)造一個(gè)上百萬美圓的Internet目錄公司或者只是在他們自己的主頁上面做一項(xiàng)
調(diào)查.
盡管Wall可能很節(jié)儉,但他并不笨.他接受了這個(gè)提議并且為他的14歲的女兒購入一些Yahoo的股票--這也足夠支付她的大學(xué)費(fèi)用.關(guān)于
Internet上古老的"互惠經(jīng)濟(jì)"(gift economy)的規(guī)則的更好的例子是幾乎不可想象的--投資網(wǎng)絡(luò),你就可以獲利.
Larry
Wall喜歡把Perl叫做一門"粗陋的"語言.用他那溫和的嗓音,他這樣描述perl:他是一個(gè)順從,溫順的仆人,只是為了"讓他服從于你的需要"而存
在.擁擠在Web上的大多數(shù)Perl黑客卻欠溫和:他們宣稱,Perl是一種不可缺少的粘合劑,使得整個(gè)web緊緊聯(lián)系在一起----不止是Yahoo,
還有Amazon和其他成百萬的站點(diǎn).Perl的支持者認(rèn)為,如果沒有Perl和Larry Wall,那么網(wǎng)絡(luò)只是它現(xiàn)在樣子的一個(gè)蒼白的影子.
無論是在推動(dòng)Web的發(fā)展,還是在制造了眾多Internet基礎(chǔ)設(shè)施的FreeSoftware/OpenSource運(yùn)動(dòng)的發(fā)展過程中,wall都扮
演了一個(gè)重要的角色.但是即使他的同時(shí)尊稱他為FreeSoftware的"極為重要的首領(lǐng)和睿智的老者",Wall的領(lǐng)導(dǎo)風(fēng)格絕對(duì)是謙卑的----這個(gè)
顯著的個(gè)性使得他區(qū)別于該運(yùn)動(dòng)的其他領(lǐng)導(dǎo)人物.
作為傳教士的兒子和孫子,Wall是一個(gè)虔誠(chéng)的教徒.據(jù)他的朋友,Perl的親密合作者Tom
Christiansen說,他的任務(wù)是實(shí)現(xiàn)他的理想--"使人們合作工作.他計(jì)劃以他內(nèi)心無私的感知能夠?yàn)镻erl做一些互利的工作".但是他不會(huì)允許
自己卷入到不重要的"信仰"戰(zhàn)爭(zhēng)中,這些戰(zhàn)爭(zhēng)正困擾著編程世界----那些無休無止的爭(zhēng)論諸如是否一個(gè)編程語言或者操作系統(tǒng)天生地比另外一個(gè)好.這樣激烈
的爭(zhēng)論是那些喜歡涇渭分明的黑客的偏好,他們不允許哪怕是狹小的變通空間的存在----相對(duì)計(jì)算機(jī)世界中的基礎(chǔ)概念如是/否,0/1等數(shù)字的問題,模糊性
屬于外邊的世界。
但是Wall和Perl就是狹小空間的全部,就是凌亂的非理想性和模糊的創(chuàng)造性.畢竟,傳送的價(jià)值不僅在于它為你解決了某個(gè)具體問題,而在于它幫你完成了
某項(xiàng)工作。某種程度上,Perl,不是第一流的.但那不是Wall關(guān)心的.他謙虛的目標(biāo)就是有用,就是幫助幫助人們做他們需要做的----實(shí)現(xiàn)編程語言,
硬件平臺(tái),多種軟件領(lǐng)域和同一個(gè)宇宙空間中共同工作的人們的互相連接.
如果你仔細(xì)思考,你會(huì)發(fā)現(xiàn)Perl是網(wǎng)絡(luò)的全部所在。
Wall十多年之前首先發(fā)明的Perl,直到1994年網(wǎng)絡(luò)成長(zhǎng)時(shí)才開始爆炸性地傳播,這并非出于偶然。網(wǎng)絡(luò)是一個(gè)黑客云集的,凌亂的既成事實(shí)存在,它需
要快速的思考和更快的反應(yīng)次數(shù). Perl是一個(gè)網(wǎng)絡(luò)黑客的最好朋友.
Larry Wall是如何改變整個(gè)計(jì)算機(jī)文化的.
"我試圖同時(shí)得到適量的靈活性和穩(wěn)定性",在他Mountai
View的有些凌亂的家中,Wall說道.他正地在談關(guān)于Perl的事情,但他的態(tài)度融合進(jìn)了日常生活的基礎(chǔ).Wall有一個(gè)Caller
ID(主叫標(biāo)記)連在計(jì)算機(jī)上面,這樣對(duì)于每一個(gè)進(jìn)來的電話他有指令來發(fā)出對(duì)應(yīng)的聲音.CallerID有什么好的,Wall問,如果你不得不走很遠(yuǎn)去接
電話以知道是誰打電話?同樣的,按下他的門鈴也從一個(gè)Wallace&Gromit粘土木偶發(fā)出一系列對(duì)話;當(dāng)他的干衣機(jī)(藏在車庫中)停止轉(zhuǎn)動(dòng)
時(shí),一種汽笛聲將響徹整個(gè)房間.
Wall的職業(yè)是一個(gè)系統(tǒng)管理員,而不是一個(gè)軟件工程師.系統(tǒng)管理員對(duì)編程和技術(shù)傾向于一種功利主義的態(tài)度----他們關(guān)注于使網(wǎng)絡(luò)不停運(yùn)轉(zhuǎn),解決緊急的
問題,飛快地編程.Wall做為一個(gè)程序員,一生都用來解決這種問題--Perl就是他個(gè)人工藝品倉庫中最近的工具.在他構(gòu)造出PERL的幾年之前,他已
經(jīng)達(dá)到了黑客的名望,他寫了"Rn"----一個(gè)用于讀Usenet新聞組的程序.
對(duì)于軟件開發(fā),Rn是一種現(xiàn)在稱為freesoftware或者opensource模型早期的原型----在其中各地的程序員通過網(wǎng)絡(luò)互相協(xié)作,通過使
得大家都可以獲得代碼來改進(jìn)產(chǎn)品.Wall寫了Rn,在Internet上發(fā)放了源代碼之后,然后就開始做升級(jí)版本,這個(gè)升級(jí)版本包含了來自最初的網(wǎng)絡(luò)空
間中其他黑客提出的建議和錯(cuò)誤修正。
但是回溯到80年代中期,通過網(wǎng)絡(luò)不是很容易發(fā)放升級(jí)版.人們通常通過300-1200波特率的modem連接網(wǎng)絡(luò),是不可能以輕松的態(tài)度把上兆的源代碼來回傳遞,而現(xiàn)在這種情況很正常.
所以Wall寫了一個(gè)小程序,稱為"patch".Patch帶有一個(gè)壓縮的新的升級(jí)源代碼并可以應(yīng)用于以前的源代碼.Patch能夠提高舊代碼更新的速度,并且甚至非常聰明地考慮以前的源代碼作過的變化.
作為黑客,Wall是一個(gè)相當(dāng)慎重的人,但那并不意味著他總是很謙讓."patch改變了計(jì)算機(jī)文化",wall說.
"我多年來一直相信patch是他一個(gè)對(duì)opensource文化最重要的貢獻(xiàn),盡管他從來沒有象Perl或者Rn作到的那樣吸引這種更大,更誘人的工程的注意力."opensource運(yùn)動(dòng)的最著名的領(lǐng)導(dǎo)人之一Eric Raymond說.
"Patch可能是迄今為止最成功的活兒",Raymond說道,"Larry有效地創(chuàng)造了,至少是關(guān)鍵性地促成了,被Linux驗(yàn)證了的現(xiàn)代化的高度分布的開發(fā)模式."
Patch之后是Perl.表面上,他是完全不同的東東,一個(gè)高度復(fù)雜的"腳本"語言,為那些需要寫自動(dòng)任務(wù),連接不兼容程序和系統(tǒng)或者解決難以應(yīng)付的問
題的程序員打算.Perl起源于1986,那時(shí)Wall是Burroughs公司的附屬公司的一個(gè)系統(tǒng)管理員.那時(shí),他致力于加州Santa
Monica和Paoli,Pa.的計(jì)算機(jī)之間信息的同步交換有關(guān)的"NSA的一個(gè)秘密項(xiàng)目",但NSA不止希望希望信息的同步--它還希望生成關(guān)于每次
交換的報(bào)表,而Wall現(xiàn)有的工具沒有一樣可以勝任這個(gè)任務(wù).把所有的事情結(jié)合起來需要一個(gè)應(yīng)急解決方案,一個(gè)編程的活兒,最終成為Perl----實(shí)用
提取和報(bào)表語言(Practical Extraction and Report Language).
"我意識(shí)到在C語言和Unix
Shells之間有極大的空白區(qū)域,"Wall說,"C可以處理復(fù)雜的事情--你可以叫它’可操作復(fù)雜性’而Shells卻擅長(zhǎng)處理那些我稱做
’whipupitude’的事情.但有一大段空白區(qū)域,無論C還是Shells都無法很好地處理,這就是我設(shè)計(jì)PERL的目的."
從那時(shí)起,Wall把他的業(yè)余時(shí)間和精力花費(fèi)在探索一門可以連接計(jì)算機(jī)領(lǐng)域中所有大的空白區(qū)域的語言的需求.
"人們總是在尋找空隙",Wall說,"他們總是在尋找新的生態(tài)環(huán)境.而你進(jìn)入這些生態(tài)環(huán)境的速度是真正重要的,因?yàn)榈谝粋(gè)進(jìn)入這些環(huán)境的人總是贏家."
Perl是一個(gè)贏家.Wall保證Perl的特別強(qiáng)大的能力----文本處理,靈活性和一個(gè)對(duì)于解決快速/困難問題非常有用的工具集----他們使得程序
員可以立即了解Perl的本質(zhì):比如David Filo和Jerry
Yang,這兩個(gè)Stanford大學(xué)的本科生創(chuàng)造了Yahoo.他們發(fā)現(xiàn)Perl不可缺少.他們用Perl來生成Web頁面,為他們的執(zhí)行Web數(shù)據(jù)搜
集的機(jī)器人編寫代碼,并且維護(hù)web地址的數(shù)據(jù)庫.
"我們極大地依賴于它",FILO說,"由于可以快速地開發(fā),你可以很快地做這些事情.
Yahoo的經(jīng)驗(yàn)不是唯一的,Tim O’Reilly,計(jì)算機(jī)圖書的出版公司O’Reilly &
Associates的CEO和奠基人說.不止是O’Reilly出版最暢銷的Perl計(jì)算機(jī)圖書,3年前他們還聘請(qǐng)Wall作為Perl的全職推銷者.
"Perl做這個(gè)很順利",O’Reilly說,"Perl比傳統(tǒng)的編程語言要容易理解的多,并且我認(rèn)為是人們開始構(gòu)造和想象Web是一個(gè)很重要的部分.
他讓業(yè)余愛好者進(jìn)入----你不必是一個(gè)專業(yè)程序員....盡管Perl可能有點(diǎn)難,并且可能有點(diǎn)模糊,它對(duì)于那些人們想做的事情還是可用的.你可以把事
情迅速地捆綁在一起并且迅速解決問題."
我只是盡力使得計(jì)算機(jī)比程序員多想一些.
到底Perl能夠做什么?在地位上,它與sun的其他計(jì)算機(jī)語言--Java/Python/Tcl相比,到底有什么差別?
Perl的擁護(hù)者說,它是一個(gè)"瑞士軍刀"----一件可以高效地做任何事情的工具.
學(xué)習(xí)Perl,一個(gè)人不必是那種精通Java/C++的編程天才,盡管Perl自己的靈活性使得它有時(shí)比較混亂--尤其對(duì)那些習(xí)慣于只用一種方法解決問題
的程序員.但是Perl最大的優(yōu)點(diǎn)在于它在其他計(jì)算機(jī)語言之間建立了一座橋梁.
"Perl曾經(jīng)是,并且繼續(xù)是原型式的膠水語言",Chip Salzenberg, Perl最主要的代碼分發(fā)商之一說."按照設(shè)計(jì),它的演進(jìn)就是為真實(shí)程序員面對(duì)日常的挑戰(zhàn)、 需要使復(fù)雜和非協(xié)作的系統(tǒng)協(xié)調(diào)工作的需求所驅(qū)動(dòng)的。
Larry Wall相信這個(gè)演進(jìn)過程體現(xiàn)了真實(shí)的世界是如何工作的.
Perl作了許多工作,Wall說,并且對(duì)他認(rèn)為是你程序的錯(cuò)誤給出了很好的反饋,所以當(dāng)你試圖快速開發(fā)一些東西的話,會(huì)有非常迅速的好轉(zhuǎn).你試驗(yàn)一些東
西,然后它出錯(cuò),你再改正.你就這樣使他成長(zhǎng),發(fā)展.我就是這樣寫程序的.許多人就是這樣編程的,他們也是這么去思考的.
Wall說,Perl對(duì)真實(shí)生活的反映--他的人性特征--是內(nèi)建于這門語言的深厚的哲學(xué)結(jié)構(gòu).Perl是,第一個(gè)后現(xiàn)代的計(jì)算機(jī)語言,WALL說,一個(gè)人造自然語言,模擬了程序員是如何思考的.
所有語言的深厚的結(jié)構(gòu)都是Wall的主要關(guān)注點(diǎn).在他作為一個(gè)系統(tǒng)管理員和相關(guān)hacking的一生中,他和他的妻子是Uc-Kerkeley的語言系的
學(xué)生.wall說,他們的計(jì)劃是,是成為戰(zhàn)地的傳教士,并致力于翻譯圣經(jīng).他們將從一本沒有書面語言的圣經(jīng)開始工作,從頭學(xué)起,再寫下來,然后幫助將圣經(jīng)
翻譯成那門語言.
他和妻子放棄了這項(xiàng)任務(wù),但是他轉(zhuǎn)而從事另一項(xiàng)工作--協(xié)助其他人為實(shí)現(xiàn)類似的目標(biāo)-與其他人想連接做一些有用的事情而努力.當(dāng)這件事情轉(zhuǎn)而成為創(chuàng)造一門
編程語言,而不是徹底地從頭建造一些事情的時(shí)候,Wall--從他的語言訓(xùn)練中得到靈感--選擇去建造一些事情來復(fù)制真實(shí)的人們的思想和行為.
首先而且最重要的是,這意味著為解決每個(gè)可能的問題提供許多不同的途徑--這導(dǎo)致Perl的戰(zhàn)斗口號(hào),"有不止一條路徑可以實(shí)現(xiàn)"."如果你認(rèn)為人們的語
言是一個(gè)藝術(shù)媒介",WALL說,"他已經(jīng)給你創(chuàng)造力的空間.如果你想能夠?yàn)椴煌氖虑樽鰞?yōu)化--如果你想能夠用同一種語言開處方,作詩,寫報(bào)紙專欄和雜
志專題--他就必須具有靈活性.這與人們?cè)谟?jì)算機(jī)科學(xué)中學(xué)到的截然不同.人們被教導(dǎo)如果有任何冗余,那就是有害的,惡劣的.從自然語言的角度看,我不買它
(指計(jì)算機(jī)科學(xué)的教導(dǎo))的帳."
Perl沿著一門真實(shí)語言的道路發(fā)展,吸收了長(zhǎng)期以來其他語言的優(yōu)點(diǎn)----有一些Unix,一些c++,一些BASIC,一點(diǎn)這個(gè),一點(diǎn)那個(gè).如果其他
任何人有一些新鮮,有用的東西,Perl會(huì)包含他.當(dāng)Wall調(diào)用這些"后現(xiàn)代主義"的概念,他是指Perl的折衷,包容的方式----在每一個(gè)隱蔽處和
裂縫中都可以找到的一點(diǎn)點(diǎn)真理的能力---同時(shí)不用使它自己被任何大的真理所包圍.
當(dāng)他出現(xiàn)的時(shí)候,大多數(shù)計(jì)算機(jī)語言試圖使程序員想計(jì)算機(jī)一樣思考",Wall說,"我試圖使計(jì)算機(jī)比程序員多想一些,并達(dá)到了一定程度的成功.問題是,到底誰是主導(dǎo)者,這就是全部所在".
盡管Perl十分普及,但這門語言不是沒有反對(duì)者. MarcEwing, RedHat
的首席技術(shù)官員,Linux商業(yè)版本的主要分發(fā)商,情愿使用Python;Infoseek,Internet的搜索引擎公司,用Python做內(nèi)部開發(fā)
工作.也許最有力的批評(píng)來自Eric Raymond,他長(zhǎng)期將Perl吹捧為open
source運(yùn)動(dòng)最成功的故事之一."這門語言的設(shè)計(jì)顯示出他的年紀(jì)和明顯的膨脹的標(biāo)記,Perl從來不是一個(gè)漂亮或者優(yōu)雅的語言;他的引誘力在于他的直
接的可用性.長(zhǎng)期之后,在我看來,Larry’s早期選擇產(chǎn)生的問題是積聚和加強(qiáng)其他優(yōu)點(diǎn)只比效益的堆積快一點(diǎn)點(diǎn)."
"這些問題導(dǎo)致了很多人從使用Perl流失到其他腳本語言,",Raymond說,"我個(gè)人是這種趨勢(shì)的一部分;我已經(jīng)完全從Perl轉(zhuǎn)向Python,
一門年輕的語言,有點(diǎn)象應(yīng)用程序但是有更清晰的設(shè)計(jì)...我期望在未來Perl相關(guān)的重要性可能降低,即使啊的開發(fā)人員的基數(shù)在絕對(duì)數(shù)字上持續(xù)增長(zhǎng),因?yàn)?br />
他的競(jìng)爭(zhēng)者的增長(zhǎng)將比Perl的競(jìng)爭(zhēng)者快的多".
Perl有很多優(yōu)點(diǎn),但決不清晰----實(shí)際上使用Perl的黑客用"混亂"作為稱贊的話.但是對(duì)于perl的攻擊者,甚至是Python的支持者,混亂犯了編程的大忌.
我最近從perl的用戶(同時(shí)也是Python的用戶--但他們并不總是喜歡Python)聽到的最多的一個(gè)抱怨是-當(dāng)你有一段時(shí)間沒有接觸Perl后,
即使你自己的Perl代碼也很難再讀懂--更別提別人的Perl代碼了。,"GuidoVanRossun,Python的主要作者說,"對(duì)于過去的或者
不熟悉的Python代碼這很少是一個(gè)問題.當(dāng)Perl的支持者極力提倡Perl用戶寫清晰的代碼,并且較新的Perl版本包含一些幫助特性,Perl堅(jiān)
持“混亂”的價(jià)值意味這總是Perl的一個(gè)問題!
在某中程度上,Perl/Python的爭(zhēng)論只是無休止的那些為了體現(xiàn)黑客特性爭(zhēng)奪主導(dǎo)權(quán)的比賽的另一個(gè)例子.但關(guān)鍵差別是真實(shí)的---那些探詢純正和那
些堅(jiān)持工具的有效性之間的差別."純正語言的支持者總是說Perl是丑陋的",O’Reilly說,"說Perl是一個(gè)’廚房水槽’式的語言,說Perl
會(huì)被他的自重壓垮,而Perl繼續(xù)比其他腳本語言的合集解決越來越多的問題".
"我們出售關(guān)于Perl和Python的最暢銷書."...說,"并且我們繼續(xù)看到Perl使用情況的健康增長(zhǎng),而Python的增長(zhǎng)很平常.Perl的使用比Python高的多,至少根據(jù)書籍銷售的情況來看是這樣."
“Perl并沒有經(jīng)歷任何大規(guī)模的使用者分流”,Salzenberg說,“至多你可以說,在Perl繼續(xù)發(fā)展的同時(shí)其他也在發(fā)展.這對(duì)Perl是很好
的.當(dāng)有許多事情需要膠合,一門粘貼語言是最有用的...Perl將繼續(xù)發(fā)展以使得任何事情可以與其他任何事情相連接.”
Wall讓其他人反擊對(duì)Perl的攻擊.當(dāng)我詢問他對(duì)于Raymond的直接的批評(píng)的反應(yīng)是,他發(fā)給我一份在線email,其中引用了托爾斯泰的話:"這真奇怪,托爾斯泰寫道,漂亮就是好的這個(gè)錯(cuò)覺是如此地完美!"
對(duì)于wall,好就是作好連接,這正是他自身的美麗所在.
Perl不但連接了C程序員的世界和UnixShell的世界,或者連接了計(jì)算機(jī)世界的數(shù)字服務(wù)和人類現(xiàn)實(shí)不成熟的混亂.Perl還在自由軟件世界的兩個(gè)
極端之間架設(shè)了一座橋梁,一方是Raymond為代表的商業(yè)實(shí)用主義,他們支持自由軟件因?yàn)樗鞒隽俗詈玫能浖?一方是自由軟件基金的
RichardStallman領(lǐng)導(dǎo)的激進(jìn)的道德學(xué)家,他們相信自由軟件是絕對(duì)好的.
那些希望修改或者改變perl的人們可以通過在兩種不同的許可聲明下的限制達(dá)到這個(gè)目的.他們可以在GPL下操作---Stallman的FSF制定的非
常嚴(yán)格的許可證,為了保證自由軟件總是保持自由.或者他們可以選擇Wall自己的"藝術(shù)許可證"--一套更寬松的規(guī)則的集合,wall說,這意味著"本質(zhì)
上,你可以用Perl做任何你想的事情事情,只要你把藝術(shù)的控制權(quán)給我就行了."
它已經(jīng)不會(huì)招致FSF任何過分的不滿了,WALL說,但實(shí)際上藝術(shù)license接近與我在這個(gè)問題上的感受,我希望perl能夠被使用.
的確是這樣.Perl在一個(gè)似乎是死路一條的地方開辟了一種可能性---為什么有如此之多的Perl 黑客的一個(gè)主要的原因是,當(dāng)被問到為什么他們喜愛perl,一個(gè)簡(jiǎn)單的回答就是"fun"(有趣)
我問LarryWall為什么認(rèn)為Perl有趣."他讓你富有創(chuàng)造力",他說,"他給你眾多選擇.你常用的計(jì)算機(jī)語言就象一種訓(xùn)練,他會(huì)把你帶到他到過的任何地方.Perl就象一輛偏離大路的汽車,將把你帶到你想去的地方,即使到那里沒有任何正式的道路."
當(dāng)你能夠利用那種路徑搜索的方法, 你就從努力中得到回報(bào).LarryWall,坐在MountainView家中的起居室,撫摩他的小貓,聽著回蕩在房間中神秘的音樂,就象一個(gè)非常高興的男孩.他對(duì)web作出了有價(jià)值的貢獻(xiàn),web不會(huì)讓他忘記它的.
"幾乎每一天,都有人會(huì)給我寫一條消息說我喜歡你發(fā)明的那個(gè)東西",LarryWall說,"它改變了我的生命,我曾經(jīng)討厭編程--現(xiàn)在編程又是一個(gè)快樂的事情."
[color="SlateGray"]
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/600/showart_10399.html |
|