計(jì)算機(jī)人物傳記(一)_第1頁
計(jì)算機(jī)人物傳記(一)_第2頁
計(jì)算機(jī)人物傳記(一)_第3頁
計(jì)算機(jī)人物傳記(一)_第4頁
計(jì)算機(jī)人物傳記(一)_第5頁
已閱讀5頁,還剩115頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

計(jì)算機(jī)人物傳記(一)美媒披露世界最早一批女性電腦高手往事她們60年前開始玩電腦,曾為世界上第一臺(tái)計(jì)算機(jī)編程序,也是世界上第一批“黑客”,曾為世界第一臺(tái)電子計(jì)算機(jī)ENIAC編寫過程序。

據(jù)美國媒體5日?qǐng)?bào)道,在電腦時(shí)代,許多老年人不甘落后,然而鮮為人知的是,在美國仍然生活著幾名80多歲的“奶奶級(jí)”電腦高手:她們?cè)诙?zhàn)中幫助軍方精確地計(jì)算出炮彈發(fā)射軌跡,曾為世界上第一臺(tái)電子計(jì)算機(jī)編寫程序,還是世界上第一批“黑客”.半個(gè)多世紀(jì)來,人們對(duì)這批“奶奶級(jí)”電腦高手毫無所知,直到日前,她們的故事才首次浮出水面,并正在被拍成一部名叫《隱形電腦:ENIAC程序師的故事》的紀(jì)錄片.

紀(jì)錄片制片人(左)和4名“奶奶級(jí)”電腦高手在一起,她們分別是貝蒂(左二)、馬琳(左三)、凱瑟琳(右一),前排坐著的貝蒂·辛德·霍伯頓目前也已去世.

孫子炫耀牽出傳奇故事

現(xiàn)年83歲的美國新澤西州老太太貝蒂·巴蒂克是5個(gè)孫子的祖母,喜歡上網(wǎng)打橋牌.然而鮮為人知的是,她其實(shí)是世界上最早的一批女性電腦高手,她曾為世界上第一臺(tái)計(jì)算機(jī)編過程序.

對(duì)于這一點(diǎn),即使十分熟悉貝蒂的朋友也不知道.不過,貝蒂的孫子亞歷克斯卻早就知道奶奶的秘密.一天,他在學(xué)校里向老師炫耀說,自己的奶奶是世界上最早的計(jì)算機(jī)先驅(qū)和電腦高手.當(dāng)時(shí),老師以為小孩子是在吹牛,還狠狠批評(píng)了他一頓.為了還兒子一個(gè)誠實(shí)的名聲,亞歷克斯的父母親自到學(xué)校向那名教師解釋了一切.

幫助軍方計(jì)算彈道軌跡

貝蒂的傳奇故事隨即引起了歷史學(xué)家的關(guān)注.

據(jù)悉,貝蒂和計(jì)算機(jī)打上交道可以說是陰差陽錯(cuò).1945年,當(dāng)時(shí)20歲的貝蒂還是美國密蘇里州西北教師學(xué)院一名數(shù)學(xué)專業(yè)的女大學(xué)生.隨著二戰(zhàn)接近尾聲,美國陸軍由于缺少男數(shù)學(xué)家計(jì)算彈道發(fā)射軌跡,開始在賓夕法尼亞州大學(xué)發(fā)起了一項(xiàng)絕密的“阿伯丁試驗(yàn)場(chǎng)”行動(dòng),招募女性成為計(jì)算彈道軌跡的“人體計(jì)算機(jī)”.

貝蒂成功地被美國陸軍錄用,成了一名“軍中數(shù)學(xué)家”,幫助陸軍精確地計(jì)算各種武器的彈道軌線.與貝蒂一同被招募的還有另外5名女學(xué)生.

為首臺(tái)計(jì)算機(jī)編寫程序

二戰(zhàn)結(jié)束后,貝蒂繼續(xù)為軍方從事計(jì)算機(jī)研究工作.1946年,她和另外5名女伙伴開始為世界上第一臺(tái)電子計(jì)算機(jī)ENIAC編寫程序.1949年,她又幫助美國諾斯羅普航空公司為世界上第一臺(tái)商用計(jì)算機(jī)UNIVACI設(shè)計(jì)邏輯程序,這臺(tái)計(jì)算機(jī)在1951年首次被美國人口普查署投入了使用.

據(jù)悉,為世界上第一臺(tái)計(jì)算機(jī)ENIAC編寫程序堪稱是一項(xiàng)考驗(yàn)身體毅力、創(chuàng)造力和耐力的嚴(yán)峻工作,因?yàn)檫@臺(tái)機(jī)器在當(dāng)時(shí)來說實(shí)在太復(fù)雜了,它占地170平方米,重達(dá)30噸,包含了大約18000個(gè)電子管、70000個(gè)電阻器和至少3000多個(gè)開關(guān).1946年2月,美國陸軍軍械部和賓夕法尼亞大學(xué)莫爾學(xué)院聯(lián)合向世界宣布ENIAC的誕生,從此揭開了現(xiàn)代電子計(jì)算機(jī)發(fā)展和應(yīng)用的序幕.

世界上第一批“黑客”

據(jù)悉,貝蒂甚至還是世界上最早的女“電腦黑客”,因?yàn)樵谠缙诘挠?jì)算機(jī)程序研究中,她和其他5名女同事還曾合法地“黑”過世界上首批計(jì)算機(jī)中的一臺(tái),并將它轉(zhuǎn)變成了一臺(tái)程序儲(chǔ)存器,從而幫助計(jì)算機(jī)真正地邁入了數(shù)字化時(shí)代.

貝蒂婚后生有3名兒女,為了照顧3個(gè)孩子,幾年后她被迫離開了計(jì)算機(jī)研究行業(yè).

被美國計(jì)算機(jī)史遺忘

據(jù)悉,在6名最早的女性電腦高手中,目前只有3人還活在世上,都已是80多歲高齡.

幾十年來,貝蒂和她的5名女同事一直被美國計(jì)算機(jī)史所忽略和遺忘.在ENIAC計(jì)算機(jī)發(fā)明40周年慶祝典禮中,這些最早的先行者甚至沒有獲得邀請(qǐng),唯一一名被邀請(qǐng)的女性還是作為另一名計(jì)算機(jī)專家的配偶出現(xiàn)的.

最近,貝蒂的故事正被拍成一部紀(jì)錄片.據(jù)紀(jì)錄片制片人、計(jì)算機(jī)歷史學(xué)家凱西·克萊曼說:“這部紀(jì)錄片不僅僅是講述她們的傳奇故事,而且對(duì)美國目前的計(jì)算機(jī)業(yè)具有重要意義,因?yàn)槿缃竦拿绹?jì)算機(jī)界仍是男性主宰的世界.而這幾位'奶奶級(jí)'電腦高手的事跡證明,女性在計(jì)算機(jī)研究上的能力絲毫不亞于男性.”丹尼斯·利奇·傳奇的締造者——C語言之父訪談DennisMRitchie(丹尼斯·里奇),C語言之父,UNIX之父。C語言是使用最廣泛的語言之一,可以說,C語言的誕生是現(xiàn)代程序語言革命的起點(diǎn),是程序設(shè)計(jì)語言發(fā)展史中的一個(gè)里程碑。自C語言出現(xiàn)后,以C語言為根基的C++、Java和C#等面向?qū)ο笳Z言相繼誕生,并在各自領(lǐng)域大獲成功。但今天C語言依舊在系統(tǒng)編程、嵌入式編程等領(lǐng)域占據(jù)著統(tǒng)治地位。C語言,這種最有效、最通用的編程語言,就是他開發(fā)的,而這還是他在做另一個(gè)項(xiàng)目時(shí)的副產(chǎn)品。DennisRitchie還和KenThompson一起開發(fā)了Unix操作系統(tǒng),因此,他還是名副其實(shí)的UNIX之父?,F(xiàn)年64歲的40年如一日在貝爾實(shí)驗(yàn)室/朗訊科技公司(原AT&T實(shí)驗(yàn)室)工作,現(xiàn)在是計(jì)算科學(xué)研究中心系統(tǒng)軟件研究部主任。從二十世紀(jì)七十年代起,他的工作得到了很多計(jì)算機(jī)組織的公認(rèn)和表彰,如:美國計(jì)算機(jī)協(xié)會(huì)(ACM)授予的系統(tǒng)及語言杰出論文獎(jiǎng)(1974);電氣和電子工程師協(xié)會(huì)(IEEE)的EmmanuelPiore獎(jiǎng)(1982);貝爾實(shí)驗(yàn)室特別人員獎(jiǎng)(1983);美國計(jì)算機(jī)協(xié)會(huì)(ACM)的圖靈獎(jiǎng)(1983);NEC公司的C&C基金獎(jiǎng)(1989);電氣和電子工程師協(xié)會(huì)(IEEE)的優(yōu)秀獎(jiǎng)?wù)?HammingMedal)(1990)等等。目前,DennisM.Ritchie正擔(dān)任貝爾實(shí)驗(yàn)室/朗訊科技公司(原AT&T實(shí)驗(yàn)室)下屬的計(jì)算科學(xué)研究中心系統(tǒng)軟件研究部的主任一職。該中心位于美國新澤西州的MurrayHill。1978年BrianW.Kernighian和DennisM.Ritchie出版了名著《C程序設(shè)計(jì)語言(TheCProgrammingLanguage)》,現(xiàn)在此書已翻譯成多種語言,成為C語言方面最權(quán)威的教材之一。大師的修煉之道在Ritchie的成長歷程中,有兩個(gè)人對(duì)他的影響最大,一個(gè)是他父親,而另一個(gè)是他的摯友,同為UNIX發(fā)明人的KenThompson。尤其是后者,我們可以從后面他對(duì)此問題的回答中得到印證。有人問過Dennis,他的偶像是誰,不論在計(jì)算機(jī)領(lǐng)域還是其他領(lǐng)域?他說:我不是在英雄熏陶下成長起來的。很顯然,對(duì)我職業(yè)生涯影響最大的人物是KenThompson。UNIX大部分是他的工作,同樣也是C語言的前輩,同樣Plan9系統(tǒng)的大部分工作也是他做的。并且在這其間Ken做了第一個(gè)計(jì)算機(jī)象棋大師。Ritchie生于1941年9月9日的紐約Bronxville,獲得學(xué)士學(xué)位并且獲得哈佛大學(xué)更高的學(xué)位,在那里以肄業(yè)生資格學(xué)習(xí)物理,以研究生資格學(xué)習(xí)應(yīng)用數(shù)學(xué)。也正是在這時(shí)候,一個(gè)偶然的機(jī)會(huì)改變了他一生的選擇。Ritchie這樣描述他的轉(zhuǎn)變,當(dāng)他聽取一些非課程類的計(jì)算機(jī)講座后(大約1960年),開始對(duì)計(jì)算機(jī)著迷,并選擇了一學(xué)期正規(guī)(介紹性的)課程。第一部分是模擬計(jì)算機(jī),后面是關(guān)于打孔卡片設(shè)備的,然后是關(guān)于真正的數(shù)字式計(jì)算機(jī)的,并為UnivacI號(hào)機(jī)準(zhǔn)備了一個(gè)程序。當(dāng)時(shí)他是一個(gè)主修物理學(xué)的學(xué)生,但是更加著迷于計(jì)算機(jī)處理的理論和實(shí)際問題。因此,他的畢業(yè)論文大部分是理論方面的(遞歸函數(shù)的層次),但是也開始投入更大精力到實(shí)踐方面。作為助教為同一個(gè)介紹性課程的后續(xù)版本工作了三年——不過那時(shí)計(jì)算機(jī)已經(jīng)成了IBM7049。1968年獲得數(shù)學(xué)博士,而論文正是上面的《遞歸函數(shù)的的層次》。1967年加入貝爾實(shí)驗(yàn)室,他的父親AlistairE.Ritchie在那里有長時(shí)間的工作經(jīng)歷,他的父親對(duì)晶體管電路類的東西很有研究,正是由于父親的影響,也使得他走上了科學(xué)研究之路。不久后,加入了Multics項(xiàng)目,那時(shí)由貝爾實(shí)驗(yàn)室、麻省理工學(xué)院和通用電器三家的合作項(xiàng)目。Ritchie負(fù)責(zé)多道處理機(jī)的BCPL語言和GE650的編譯器,它們都是屬于GECOS系統(tǒng)的。同樣的,他也寫了ALTRAN語言的代數(shù)編譯器,那是用于符號(hào)計(jì)算機(jī)的一種語言和系統(tǒng)。圖:Dennis在辦公室里后來,Ritchie先生協(xié)助KenThompson做UNIX操作系統(tǒng)。在UNIX系統(tǒng)基本就緒并且在教育、政府和商業(yè)中得到一定程度的應(yīng)用時(shí),SteveJohnson和他(在Ken幫助下)開始將這個(gè)操作系統(tǒng)移植到Interdata8/32上,通過這種方式證明其輕便性,基于UNIX快速的傳播:貝爾實(shí)驗(yàn)室的第7版已經(jīng)成為商業(yè)化UNIX的第五版和BSDUNIX的基礎(chǔ)。在UNIX發(fā)展之前,他向Thompson的B語言中加入數(shù)據(jù)類型和新的句法,就這樣產(chǎn)生了一種新語言——C,這也是他說Thompson是C語言的前輩的原因。C是便攜式UNIX的基礎(chǔ),并且它也在其它領(lǐng)域得到了廣泛應(yīng)用;計(jì)算機(jī)各方面的應(yīng)用程序和系統(tǒng)發(fā)展,從手持設(shè)備到巨型機(jī),都有對(duì)它的應(yīng)用。有美國標(biāo)準(zhǔn)和國際標(biāo)準(zhǔn)的C語言,并且它是后來Stroustrup寫的C++語言的基礎(chǔ)。他從來沒有間斷過在計(jì)算機(jī)及其操作系統(tǒng)方面的工作。也因此,他所領(lǐng)導(dǎo)的研究小組開發(fā)出了Plan9和Inferno。Ritchie的業(yè)余生活也非常精彩,工作之余,他喜歡干什么呢?他這樣描述自己的生活,干好多糾纏不清的事,大部分是和計(jì)算機(jī)相關(guān)的。另一方面,也讀讀書看看報(bào)。另一項(xiàng)愛好是旅行,他到過很多地方,特別喜歡旅行,但每次時(shí)間都不是很長。他是一個(gè)戀家的人,因而有時(shí)旅行不久后感到相當(dāng)疲乏,但喜歡回想旅行經(jīng)歷,這時(shí)就很希望能擠出時(shí)間在一個(gè)具有異國情調(diào)的地方待得時(shí)間長一點(diǎn)。曾有人問過下面的問題,對(duì)于一個(gè)人是如何涉足軟件工業(yè)領(lǐng)域的,不同人有不同的回答。是什么使Ritchie選擇了她,又是什么使得他在此領(lǐng)域如此瀟灑呢?他的回答很簡潔:興趣和好奇心!他說:我開始對(duì)于物理學(xué)比較感興趣,現(xiàn)在仍然是一個(gè)業(yè)余愛好者,試圖跟上物理學(xué)的一些新東西。早先上大學(xué)時(shí)包括讀研究生,我在計(jì)算機(jī)理論方面花了不少時(shí)間(如圖靈機(jī)、復(fù)雜性理論)。這其間,我對(duì)真實(shí)的電腦也非常著迷,著迷于所編即所見的經(jīng)歷:當(dāng)你編出一個(gè)程序,便能立即看到你的思想的實(shí)現(xiàn)!所有的事情以一種非常有趣的方式聯(lián)系在了一起,也正是這一類的東西促使我進(jìn)入這一領(lǐng)域。但不知什么原因,我沒有想過我正在這一領(lǐng)域做什么,即使時(shí)光倒流到1968年,我想也是如此。DMR先生對(duì)問題的描述非常簡潔。問:您的生活是怎樣和計(jì)算機(jī)聯(lián)系在一起的?DMR:在大學(xué)的時(shí)候我開始對(duì)它感興趣(大約1960-61年),我參加了一個(gè)非學(xué)術(shù)性的講座,關(guān)于大學(xué)里的UnivacI(通用自動(dòng)計(jì)算機(jī)I號(hào)),然后就選修了一些課程。問:您覺得怎樣才是學(xué)編程的好方法?學(xué)習(xí)語言時(shí)一種好的工具是不是必需的?DMR:我想你最有必要做下面的事情——編一些小程序,然后編大一點(diǎn)的。問:怎樣才算是一種好的大學(xué)教育呢?尤其對(duì)計(jì)算科學(xué)來說。DMR:教育知識(shí)面最好要寬一些,不要僅僅局限于編程。即使是編程,最好多學(xué)幾種語言。我在大學(xué)時(shí)花了幾年時(shí)間學(xué)習(xí)物理和計(jì)算理論知識(shí),現(xiàn)在我仍然對(duì)當(dāng)時(shí)的選擇比較滿意。貝爾實(shí)驗(yàn)室出大師圖:圖片看貝爾實(shí)驗(yàn)室的發(fā)展C語言或Unix,任一項(xiàng)發(fā)明足以讓Dennis成為一代又一代程序員們的偶像。但當(dāng)我們接觸這位偉人之后發(fā)現(xiàn),Dennis是一位非常低調(diào)的人,形成對(duì)照的是他在軟件業(yè)成就輝煌的40年。今天,當(dāng)初與他同期加入貝爾實(shí)驗(yàn)室的科學(xué)家中,多數(shù)人都已安享晚年或是自立門戶成為老板,而Dennis還是一如既往地在這里從事自己喜歡的研究工作,著書立說,潛心編程。在完成C語言和Unix兩座高峰后,他還帶領(lǐng)他的研究小組開發(fā)出了新一代操作系統(tǒng)Plan9和Inferno。C語言和UNIX的發(fā)展歷程,還讓我們從側(cè)面見證了業(yè)界流流傳很久的話題:貝爾實(shí)驗(yàn)室出大師!而在談到貝爾實(shí)驗(yàn)室成功的原因時(shí),Dennis的評(píng)價(jià)只有四個(gè)字:管理得到!貝爾實(shí)驗(yàn)室是全球馳名的研發(fā)機(jī)構(gòu),遍布全球16個(gè)國家,自1937年以來已經(jīng)產(chǎn)生出11位諾貝爾獎(jiǎng)獲得者。貝爾實(shí)驗(yàn)室的科學(xué)家和研究人員自1925年以來已經(jīng)獲得了40000多項(xiàng)發(fā)明,30000多項(xiàng)專利,平均每個(gè)工作日超過4項(xiàng),是全球最多產(chǎn)的發(fā)明源泉之一。貝爾實(shí)驗(yàn)室原名“貝爾實(shí)驗(yàn)室”,1996年10月正式改稱“貝爾實(shí)驗(yàn)室”(BellLabs),先后為AT&T和朗訊科技公司的研發(fā)機(jī)構(gòu),也是后者得以成立的支柱。它主要從事通信科技的基礎(chǔ)研究和技術(shù)發(fā)展工作,目前還從事通信系統(tǒng)和設(shè)備的研制工作。自1925年成立之時(shí)起,它一直是世界上規(guī)模最大、通信科技和控制等方面最先進(jìn)、優(yōu)秀人才最集中和科技成果最突出的工業(yè)研究實(shí)驗(yàn)室或研發(fā)機(jī)構(gòu)。它的工作人員從成立時(shí)的3600人和年經(jīng)費(fèi)1200萬美元發(fā)展到1991年的29000人和37億美元。在1999年,雇員人數(shù)仍為25000人,年經(jīng)費(fèi)36.78億美元,依然雄居世界研發(fā)機(jī)構(gòu)的榜首,被稱為“世界首要的研發(fā)機(jī)構(gòu)”和研發(fā)的“象牙之塔”。圖:KenThompson(左)和DennisRitchie從克林頓手中接地過國家技術(shù)獎(jiǎng)?wù)聠枺涸贏T&T和Bell實(shí)驗(yàn)室有這樣多的IT發(fā)明和著名人物,您覺得有什么秘決嗎?DMR:我覺得這得益于我們的管理,使得有足夠資金資助研究,更重要的是給予充足的時(shí)間和允許某些思想發(fā)展的時(shí)間。很幸運(yùn)的另一點(diǎn)是,這里有一批天才人物的加入。還有一定程度的幸運(yùn)在里面:1970年代,在計(jì)算機(jī)硬件條件(如小型機(jī))發(fā)生了巨大的變化,這樣使得許多機(jī)構(gòu)可以順利地開展實(shí)驗(yàn),而這之前是很困難的。C語言是Dennis的得意這筆,對(duì)于這一筆,他看得非常平靜,當(dāng)問到他對(duì)C語言的將來做一下預(yù)測(cè)時(shí),他的回答十分簡潔:C語言正在被C++,也可能是Java所替代,也可能是更高級(jí)的腳本語言。當(dāng)然,它在關(guān)于系統(tǒng)一類設(shè)計(jì)中還是相當(dāng)強(qiáng)的工具。問:您能對(duì)IT的將來做一下預(yù)測(cè)嗎?將來我們最有可能用什么語言?DMR:我對(duì)預(yù)測(cè)不在行,但是很明顯,人們正在從象C語言之類的直接編譯型語言,轉(zhuǎn)換到注重解釋性的語言,象某些腳本語言。問:您對(duì)面向?qū)ο笫窃鯓永斫獾??它是不是一種好的可接受的編程思考方式?有沒有學(xué)習(xí)OO必須的有用的工具?DMR:我看過OO的東西但我現(xiàn)在還不是OO迷。這種思想是非常好的,也即是通過隱藏任務(wù)的執(zhí)行來定義界面,但是它可能做得有點(diǎn)過火;它以很難發(fā)現(xiàn)工作本質(zhì)的程序終結(jié);它的所有的東西就是界面。問:數(shù)學(xué)和計(jì)算機(jī)科學(xué)有什么關(guān)系嗎?DMR:我覺得計(jì)算機(jī)科學(xué)就是:包括工程學(xué)在內(nèi)的對(duì)數(shù)學(xué)的應(yīng)用。問:現(xiàn)在的大學(xué)有部分學(xué)生中途退學(xué),您怎樣看待這現(xiàn)象呢?DMR:在泡沫時(shí)期,我曾經(jīng)為此非常擔(dān)心,現(xiàn)在,至少現(xiàn)在在我們國家,好象不很普遍了。可能原因在于,人們已經(jīng)不再把計(jì)算機(jī)科學(xué)看作可以立即賺到大把美金的東東了,因此,現(xiàn)在其他的人對(duì)這門學(xué)科本身更感興趣一點(diǎn)。問:您對(duì)中國和中國的程序員有什么認(rèn)識(shí)?您想對(duì)他們說點(diǎn)什么嗎?DMR:我訪問中國好多次,但每次都很短暫,以至于很難形成一個(gè)一般的看法。上一次我還記得,在大學(xué)的見面會(huì)上,我講了一些當(dāng)時(shí)正在從事的工作的情況和歷史,學(xué)生們的態(tài)度非常熱情,他們提問所表達(dá)出的知識(shí)面也很寬博。問:您怎樣教育自己的孩子和學(xué)生?DMR:兩者我都不可能有!我沒結(jié)婚,并且我是在工業(yè)系統(tǒng)而不是學(xué)術(shù)機(jī)構(gòu)中。C語言、UNIX雙雙飛C語言是一門偉大的語言,一門偉大的承前啟后的語言。C語言是借助Unix操作系統(tǒng)的翅膀而起飛的,Unix操作系統(tǒng)也由于C而得已快速移植落地生根,兩者相輔相承,成就了軟件史上最精彩的一幕。而對(duì)于C的誕生,大師對(duì)他的描述是那樣地不經(jīng)意。C語言的發(fā)展頗為有趣。它的原型ALGOL60語言。1963年,劍橋大學(xué)將ALGOL60語言發(fā)展成為CPL(CombinedProgrammingLanguage)語言。1967年,劍橋大學(xué)的MatinRichards對(duì)CPL語言進(jìn)行了簡化,于是產(chǎn)生了BCPL語言。1970年,KenThompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語言”。意思是將CPL語言煮干,提煉出它的精華。而在1973年,B語言也給人“煮”了一下,在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言,他取了BCPL的第二個(gè)字母作為這種語言的名字,這就是C語言。為了使UNIX操作系統(tǒng)推廣,1977年DennisM.Ritchie發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語言編譯文本《可移植的C語言編譯程序》。1978年BrianW.Kernighian和DennisM.Ritchie出版了名著《C程序設(shè)計(jì)語言(TheCProgrammingLanguage)》,從而使C語言成為目前世界上流行最廣泛的高級(jí)程序設(shè)計(jì)語言。1988年,隨著微型計(jì)算機(jī)的日益普及出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況美國國家標(biāo)準(zhǔn)研究所(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn),成為現(xiàn)行的C語言標(biāo)準(zhǔn)。C語言發(fā)展迅速,而且成為最受歡迎的語言之一,主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件,如DbaseⅢPLUS、DbaseⅣ都是由C語言編寫的。用C語言加上一些匯編語言子程序,就更能顯示C語言的優(yōu)勢(shì)了。C++、Java等語言受C語言影響深刻。在技術(shù)方面,曾有人問Dennis,C語言設(shè)計(jì)目標(biāo)有沒有隨著時(shí)間推移而改變?如果沒變,為什么?他說:我個(gè)人的目標(biāo)這些年來一直未變,并且,我不是1989和1999年標(biāo)準(zhǔn)的主要推動(dòng)者。無論1989年ANSI標(biāo)準(zhǔn)還是ISO標(biāo)準(zhǔn)都使事情制度化了,這些條文比我最初寫的文檔要好;最需要加以說明的是我早先關(guān)于函數(shù)原型做的工作,對(duì)C++語言的影響是非常重要的一個(gè)影響。而在關(guān)于眾多計(jì)算機(jī)語言的激烈辯論中,始終處在中心位置的C語言作者Dennis卻顯得很平靜。西班牙的一位大學(xué)生曾經(jīng)問過他類似的問題:如果UNIX被選為過去和當(dāng)前的操作系統(tǒng),盡管過去幾年出現(xiàn)了一些面向?qū)ο蟮恼Z言,毫無疑問C也將被認(rèn)為是“唯一的語言”。你怎么看待C++和Java,以及C和C++程序員之間在UseNet上經(jīng)常發(fā)生的激烈爭(zhēng)論呢?他說:C++的很大一部分得宜于C。因?yàn)镃早在C++出現(xiàn)之前就已經(jīng)具有了非常好的兼容性,所以C++才可以采用C作為建構(gòu)自身的基礎(chǔ)并使用它來開發(fā)自己的編譯器。C被設(shè)計(jì)成為一種便攜式匯編語言,對(duì)于這一特性人們褒貶不一,C++則試圖把編程方法提高到面向?qū)ο筮@種更抽象的層次上來。從最近形成的標(biāo)準(zhǔn)來看,二者共同的缺點(diǎn)是:帶有過多的裝飾和附屬物。同樣的,它們都采用了相同的編程思想,都試圖按照真正的需求來編寫代碼。Java顯然是C++的改進(jìn)版本。它砍掉了C中的指針操作部分,引入了生成獨(dú)立于機(jī)器的目標(biāo)文件這種編程思想(雖然這個(gè)思想并不是很新的,但是也許直到現(xiàn)在它才真正可行了)。既然Sun和Microsoft公司(它的產(chǎn)品同樣的有過多的裝飾附件)已經(jīng)把Java作為它們之間競(jìng)爭(zhēng)的工具,誰也難以預(yù)料事態(tài)將向何處發(fā)展。圖:KenThompson和DennisRitchie在PDP111971問:您是怎樣發(fā)明C語言的?發(fā)明的過程是什么樣子的。它對(duì)您的生活和研究有什么影響嗎?DMR:公正地說,發(fā)明C語言的目的是:為了寫編譯器和語言設(shè)計(jì),為了更易于編寫UNIX操作系統(tǒng)程序,我們做的一個(gè)可以在小型計(jì)算機(jī)上使用的工具。Unix做的比較好,并且PC開始相當(dāng)普遍,由于C語言在Unix上的很好地應(yīng)用,使得用它來寫應(yīng)用程序和操作系統(tǒng)迅速增長起來。因此,對(duì)我來說,C語言的確非常重要。問:您覺得C語言和C++有什么不同嗎?DMR:多年以來,C和C++,已經(jīng)是兩種不同的語言了;Stroustrup先生汲取了C語言語法和潛在的語義學(xué)中的許多東西,形成了C++語言。在一些交叉領(lǐng)域,標(biāo)準(zhǔn)委員會(huì)盡量使兩種語言兼容。問:您覺得計(jì)算機(jī)語言和我們?nèi)祟惖恼Z言有什么不同呢?DMR:計(jì)算機(jī)語言更加正式和明確,有統(tǒng)一的規(guī)則,當(dāng)然,它們都是經(jīng)過設(shè)計(jì)的。人類語言有語法,但相對(duì)來說不很正式,有些規(guī)則可以打破,當(dāng)然,它們有不同的目的——為了同人交流而不是同機(jī)器交流。人物印象DMR先生的專業(yè)精神令人感動(dòng),近40年如一日,在他所從事的領(lǐng)域辛勤耕耘,而他的多項(xiàng)發(fā)明,包括C語言,Unix,也包括現(xiàn)在正在進(jìn)行的Plan9,無論哪一項(xiàng),在軟件發(fā)展史上都有著舉足輕重的地位,和他的偉大成就形成對(duì)照的是他的行事,態(tài)度低調(diào),他的表達(dá),象他的軟件一樣,簡潔生動(dòng)而準(zhǔn)確。C++的成功,很大一部分也來自于C,是C語言的普及和深入,才有了后面的鳳凰涅盤,從另一個(gè)角度,在同另一語言大師Pascal之父NiklausWirth交流時(shí),C++的名字也是源自C語言的利器,Wirth先生不無惋惜地表示,后來他開發(fā)的語言可惜沒叫Pascal2。安德斯·海爾斯伯格AndersHejlsberg中文譯名:安德斯·海爾斯伯格,丹麥人,\o"TurboPascal"TurboPascal編譯器的主要作者。進(jìn)入微軟公司后,先后主持了\o"VisualJ++"VisualJ++和\o".Net".Net。目錄?主要?dú)v程?Delphi和.NET之父:安德斯·海爾斯伯格?AndersHejlsberg的故事?Borland創(chuàng)業(yè)故事[顯示全部]主要?dú)v程編輯本段回目錄1加入Borland公司之前AndersHejlsberg安德斯·海爾斯伯格曾在丹麥技術(shù)大學(xué)學(xué)習(xí)工程,當(dāng)時(shí)他在丹麥擁有個(gè)叫PolyData的公司,他編寫了CompassPascal編譯器核心,后來叫PolyPascal。2在Borland公司安德斯·海爾斯伯格把CompassPascal編譯器核心授權(quán)給了美國\o"Borland"Borland公司,并作為雇員加入Borland公司,并且是后來所有\(zhòng)o"TurboPascal"TurboPascal版本與\o"Delphi"Delphi前3個(gè)版本的架構(gòu)師。\o"PhilippeKahn"PhilippeKahn為第一個(gè)版本的TurboPascal添加了用戶界面與編輯器。3加入微軟公司

據(jù)說,\o"比爾·蓋茨"比爾·蓋茨親自參與了這次挖角行動(dòng),并許諾安德斯·海爾斯伯格在微軟將得到技術(shù)上的足夠自由和資源支持。據(jù)說該事件也是微軟公司和Borland公司后續(xù)官司的導(dǎo)火索。4在微軟公司進(jìn)入微軟公司后,首先主持了VisualJ++的開發(fā)工作,后來由于在Java開發(fā)工具授權(quán)問題上和Sun公司的糾紛,微軟停止了VisualJ++的后續(xù)開發(fā)。這之后,作為.Net概念的發(fā)起人之一,安德斯·海爾斯伯格被任命為微軟.Net的首席架構(gòu)師,主持.Net的開發(fā)工作。Delphi和.NET之父:安德斯·海爾斯伯格編輯本段回目錄安德斯·海爾斯伯格(AndersHejlsberg,1960.11~),丹麥人,TurboPascal編譯器的主要作者,Delphi和.NET之父

安德斯·海爾斯伯格曾在丹麥技術(shù)大學(xué)學(xué)習(xí)工程,當(dāng)時(shí)他在丹麥擁有個(gè)叫PolyData的公司,他編寫了Pascal編譯器核心,最初叫作CompassPascal,后來叫PolyPascal。Anders把該編譯器核心授權(quán)給了美國Borland公司。安德斯·海爾斯伯格作為雇員加入Borland公司,并且是后來所有Pascal版本與Delphi前3個(gè)版本的架構(gòu)師。PhilippeKahn為Pascal添加了用戶界面與編輯器。AndersHejlsberg

AndersHejlsberg曾在丹麥科技大學(xué)學(xué)習(xí)工程學(xué)。AndersHejlsberg第一次登上軟件界歷史舞臺(tái)是在80年代早期,因?yàn)樗麨镸S-DOS和CP/M設(shè)計(jì)了一個(gè)Pascal編譯器。當(dāng)時(shí),還是一個(gè)小公司的Borland很快雇用了他,并買下了他的編譯器,改稱TurboPascal。在Borland,Hejlsberg繼續(xù)開發(fā)TurboPascal,并最終帶領(lǐng)他的小組設(shè)計(jì)了TurboPascal的替代品、開發(fā)工具史上的奇跡:Delphi語言。

1996年,AndersHejlsberg在Delphi3發(fā)布前離開Borland去了MS。

在此之前,MS曾多次企圖挖走Anders,但都沒有成功。據(jù)信anders去MS(主要)不是錢的問題,雖然MS的開價(jià)也相當(dāng)有吸引力:130萬美元年薪外加股票期權(quán)和分紅,總計(jì)超過300萬美元。更主要的原因是Anders和Delphi開發(fā)組的其他成員在修改編譯器的問題上發(fā)生了爭(zhēng)執(zhí);還有,據(jù)Borland內(nèi)部人講,Anders認(rèn)為自己不再是“不可缺少的人”。

Anders在Delphi3中幾乎沒有做什么工作,ChuckJazdzewski扮演了一個(gè)更重要的角色。(--AndersOhlsson)Anders在Borland時(shí)把所有精力都放在了Pascal產(chǎn)品上,也需要新的挑戰(zhàn),這時(shí)BillGates的親自邀請(qǐng),許諾給與挑戰(zhàn)的機(jī)會(huì),Anders加入了Microsoft就勢(shì)在必行。

Microsoft用豐厚的薪水、股票認(rèn)購權(quán)和巨額的加盟獎(jiǎng)金雇請(qǐng)了Hejlsberg之后,Borland曾提出通過不正當(dāng)手段吸收新成員的控告。Borland還曾聲稱—提供了很少的細(xì)節(jié)來支持指控—Hejlsberg正在開發(fā)“DelphiforJava”。這場(chǎng)訴訟雖然最終以Borland的勝利而收?qǐng)?;但Anders已經(jīng)在為Microsoft工作了。

1996年Anders來到微軟后,直接主抓VisualJ++的研發(fā)工作,并在1999年被授予“distinguishedengineer”(卓越工程師),在微軟僅有16人獲得這樣的榮譽(yù)。

后來微軟希望通過開發(fā)最新的軟件開發(fā)語言來贏得軟件開發(fā)者的擁戴,在微軟公司把視窗操作系統(tǒng)和軟件向網(wǎng)絡(luò)遷移的新市場(chǎng)戰(zhàn)略中,C#語言是最重要的環(huán)節(jié)。微軟動(dòng)用了最好的資源。Anders擔(dān)任了C#語言的首席設(shè)計(jì)師,同時(shí)也是微軟.NET戰(zhàn)略構(gòu)架的重要參與決策者??紤]一下Anders的經(jīng)歷,就不會(huì)奇怪微軟將此重任交給他了。畢竟C#也不是他對(duì)軟件開發(fā)方式重大變革的首次?,F(xiàn)在經(jīng)過幾年時(shí)間的埋頭苦干,C#已成為微軟反擊Java語言的最有力武器。

鑒于他為軟件開發(fā)做出的巨大貢獻(xiàn),Anders在《Dr.Dobb's》雜志的2001年西部會(huì)議上被授予“PrestigiousExcellenceinProgrammingAward”,《Dr.Dobb's》雜志的主編JonathanErickson說:“這一榮譽(yù),我們每年只頒給那些在軟件開發(fā)領(lǐng)域做出非凡貢獻(xiàn)的人員,Anders開發(fā)的C#和他整個(gè)職業(yè)生涯中為軟件開發(fā)所做出的巨大貢獻(xiàn)有目共睹,他無愧于這一榮譽(yù)!”

比爾蓋茨也高度評(píng)價(jià)說:“我們?yōu)锳nders獲得這一榮譽(yù)感到無比自豪,Anders在C#創(chuàng)建中所做的努力將會(huì)改變現(xiàn)在的軟件開發(fā)方式,并將在以后的十年繼續(xù)產(chǎn)生影響。”

“程序員是最好的職業(yè)”,Anders說:“每兩年,CPU的速度要加倍,內(nèi)存容量是原來的四倍,但是我們的大腦還是原來的大小,很顯然,將需要更多的程序原來補(bǔ)充這些?!?/p>

______

注:海爾斯伯格曾在微軟博物館視頻上表明他是1960年生的,但很多其它資料顯示,他是1961年生的。2006年,在巴塞羅那微軟技術(shù)教育大會(huì)(TechED)上,安德斯再次確認(rèn)他生于1960年。AndersHejlsberg的故事編輯本段回目錄在我的世界里,AndersHejlsberg是如同神一般存在的人物.AndersHejlsbergDelphi和C#的締造者,Borland的創(chuàng)始人之一,現(xiàn)在Microsoft的核心人物之一,在一定程度上影響著這個(gè)世界的發(fā)展.溫文爾雅,為人低調(diào).不管在Internet中還是在現(xiàn)實(shí)生活中,都找不到太多關(guān)于他的信息.進(jìn)入Microsoft已有九年,只是到了近幾年隨著dotNet的問世才開始在公眾面前出現(xiàn).像他這樣的人,擁有別人艷羨的財(cái)富,名譽(yù)和地位,卻甘心默默無聞的工作.我想,當(dāng)年他接受Microsoft邀請(qǐng)的唯一緣由,就是Microsoft能提供讓他的才華充分發(fā)揮的環(huán)境,而在Borland,他已被限制的太多.一個(gè)曾與他共同工作過的同事在BLOG寫道,AndersHejlsberg擁有不可思議的個(gè)人魅力和語言表達(dá)能力,得到了所有人的尊敬,并令人敬畏.程序員是個(gè)特殊的行業(yè),這里中的每個(gè)人都智力出眾,驕傲無比,并以此自負(fù).有句經(jīng)典的話:管理程序員,就像放牧一群驕傲的貓.我不知道,只能去想象,在這個(gè)行業(yè)中,一個(gè)溫文爾雅卻能讓同行競(jìng)爭(zhēng)對(duì)手感到"敬畏"的人,到底是個(gè)什么樣的人.也許,因?yàn)樵谒砩象w現(xiàn)出的,正是程序員們追求的終極之道:以精神魅力征服世界,而不是物質(zhì)魅力.

AndersHejlsberg曾在丹麥科技大學(xué)學(xué)習(xí)工程學(xué),他編寫的Pascal編譯器的核心,1981年將Pascal編譯器賣給了Borland,并加入Borland公司,那時(shí)的Borland公司還是一個(gè)名不見經(jīng)傳的小公司。AndersHejlsberg在Borland主持開發(fā)了TurboPascal,TurboPascal獲得一直好評(píng),AndersHejlsberg并未止步不前,他將TurboPascal編程一種面向?qū)ο蟮?、擁有可視化環(huán)境和卓越的數(shù)據(jù)庫訪問特性的應(yīng)用程序開發(fā)語言-Delphi。Java出現(xiàn)了。AndersHejlsberg在Borland一直郁郁不得志,據(jù)Borland內(nèi)部人士講AndersHejlsberg認(rèn)為自己不再是不可或缺的人。比爾蓋茨慧眼識(shí)才,三故茅廬,把AndersHejlsberg請(qǐng)到了微軟。最開始微軟許以重金,但AndersHejlsberg不為所動(dòng),當(dāng)清楚AndersHejlsberg的想法后,比爾蓋茨答應(yīng)給他一個(gè)寬松的環(huán)境,既領(lǐng)導(dǎo)VisualJ++小組,并提供薪水和紅利獎(jiǎng)金300萬美元。這樣Borland這個(gè)大牛孵化器為微軟輸送了一位超級(jí)大牛。好景不長,SUN公司認(rèn)為微軟破壞了java的跨平臺(tái)性,很快微軟就會(huì)利用它的VJ++將java開發(fā)人員拉攏到它的周圍,而它的VJ++以及WFC的很多特性明顯是為了Windows平臺(tái)設(shè)計(jì)。SUN中止了對(duì)微軟的java授權(quán)。此后微軟便選擇AndersHejlsberg擔(dān)任C#的首席設(shè)計(jì)師。Borland創(chuàng)業(yè)故事編輯本段回目錄記得大學(xué)時(shí),第一個(gè)在PC上使用的軟件就是SideKick。這個(gè)至今讓我仍然無法忘記的軟件,也曾讓許多人津津樂道,而Borland當(dāng)時(shí)也就是以SideKick成為全球知名的軟件公司。不過Borland第一個(gè)奠立創(chuàng)業(yè)基礎(chǔ)的軟件,卻是我大二用來交作業(yè)的TurboPascal,而TurboPascal也是我聽到的第一個(gè)關(guān)于Borland的有趣的故事。AndersHejlsberg當(dāng)年\o"PhilippeKahn"PhilippeKahn(Borland的創(chuàng)始人)和AndersHejlsberg到美國創(chuàng)業(yè)時(shí),便由Anders以匯編語言撰寫了TurboPascal的編譯器,而Philippe則包辦了TurboPascal其他的部分。在這兩位仁兄開發(fā)完TurboPascal之后,窮得快連登廣告的錢都沒有了。Philippe為了在Byte雜志(還記得這個(gè)著名的雜志嗎?)刊登TurboPascal的廣告,和Anders商量了一個(gè)方法,那就是直接約Byte雜志的人到當(dāng)時(shí)Borland的辦公室討論刊登廣告的事情。當(dāng)Byte的人到了Borland之后,Philippe、Anders和公司的助理小姐故意忙著接,接受TurboPascal的訂單,并且告訴Byte雜志的人等一下。過了一陣之后Philippe才進(jìn)入房間向Byte的人道歉,說他們的TurboPascal受到市場(chǎng)的熱烈歡迎,訂單源源不斷地到來,因此可能不需要在Byte雜志刊登廣告了,接著Philippe向Byte的人展示TurboPascal這個(gè)產(chǎn)品。由于在當(dāng)時(shí)的機(jī)器中TurboPascal能夠在極少的RAM中常駐執(zhí)行,又提供閃電般的編譯速度,這立刻讓Byte雜志的人當(dāng)場(chǎng)震驚。憑著專業(yè)知識(shí)和豐富的經(jīng)驗(yàn),Byte的人立刻知道這將是一個(gè)革命性的軟件,因此馬上希望Philippe能夠在Byte雜志刊登TurboPascal的廣告,并且愿意以半價(jià)刊登。當(dāng)然,Philippe也立刻爽快地答應(yīng)了,于是一個(gè)革命性的軟件TurboPascal終于在Byte雜志刊登出來了。當(dāng)時(shí)售價(jià)49.99美元的TurboPascal立刻為Borland帶來了大量的財(cái)富,TurboPascal也馬上成為PC上除了基本的Basic之外最暢銷的開發(fā)工具,由此正式揭開了Borland影響PC開發(fā)工具近20年的歷史的序幕。TurboPascal是由AndersHejlsberg親自開發(fā)的,并且和PhilippeKahn談好的條件是Borland每賣出一套TurboPascal,Anders便從中抽取一份版權(quán)費(fèi)。由于當(dāng)時(shí)軟件的價(jià)格不算便宜,能夠?qū)懢幾g器的人更是少之又少,所以編譯器工程師通常都能夠獲得優(yōu)厚的報(bào)酬。因此當(dāng)時(shí)AndersHejlsberg在完成了TurboPascal、并且和PhilippeKahn談好了合作條件之后,Anders理所當(dāng)然地認(rèn)為一套TurboPascal會(huì)定價(jià)數(shù)百元美金,因?yàn)檫@不但是當(dāng)時(shí)一般編譯器的價(jià)格,而且TurboPascal還內(nèi)含了一個(gè)開發(fā)環(huán)境和編輯器(Editor),這是當(dāng)時(shí)許多工具沒有提供的。沒有想到極具商業(yè)頭腦的PhilippeKahn了解到:如果把TurboPascal定價(jià)在數(shù)百美金,那么TurboPascal可能只會(huì)賣出數(shù)百到數(shù)千套,無法沖出大量的銷售額。因此,PhilippeKahn以極大的勇氣,瞞著AndersHejlsberg只把TurboPascal定價(jià)為49.95美金。這種價(jià)格在當(dāng)時(shí)對(duì)于編譯器和開發(fā)工具來說簡直是不可思議的低價(jià)。當(dāng)AndersHejlsberg知道了PhilippeKahn的定價(jià)后,簡直快氣昏了。因?yàn)樵谶@么低的價(jià)格下Anders的版稅金一定少得可憐,因此當(dāng)時(shí)Anders說他把最好的Pascal開發(fā)工具拿去讓一個(gè)白癡銷售。沒有想到的是,PhilippeKahn的定價(jià)策略獲得了極大的成功。TurboPascal以極佳的品質(zhì)和令人不可思議的低價(jià)格成為當(dāng)時(shí)最具吸引力的Pascal開發(fā)工具。當(dāng)然,在TurboPascal賣出了讓人難以置信的成績之后,Anders便再也不提他把專業(yè)Pascal編譯器讓白癡去賣這件事了。PhilippeKahn關(guān)鍵產(chǎn)品--SideKick雖然TurboPascal快速地讓Borland在當(dāng)時(shí)全世界的程序員中成為最響亮的軟件新星,但是真正讓Borland打人一般計(jì)算機(jī)使用人群、快速成長為軟件巨人的大功臣的,卻是Borland早期最重要的產(chǎn)品--SideKick。在TurboPascal之后,Borland接著推出了SideKick這套軟件。SideKick可以說是隨后著名的內(nèi)存常駐軟件(TerminateandStayResident-TSR)的始祖,也是Borland跨出開發(fā)工具領(lǐng)域、讓幾乎所有PC使用者認(rèn)識(shí)Borland的關(guān)鍵軟件。SideKick在當(dāng)時(shí)以許多豐富的小工具和記事功能讓它成為每一個(gè)程序員愛不釋手的工具。還記得當(dāng)時(shí)我每天都會(huì)使用SideKick的ASCII對(duì)照表和計(jì)算器的功能,因?yàn)樵趨R編語言(Assembly)盛行的時(shí)期,查閱ASCII對(duì)照表和在2進(jìn)制、10進(jìn)制以及16進(jìn)制之間進(jìn)行轉(zhuǎn)換是每日必要的工作。當(dāng)然SideKick也很快成為了暢銷軟件,在全球狂賣數(shù)10萬套,繼續(xù)把Borland往頂尖的軟件公司推進(jìn)。所謂的TSE代表TerminateandStayResident。這個(gè)意思是說,這類軟件在執(zhí)行后會(huì)隱藏在內(nèi)存的某個(gè)位置中,但是并沒有出現(xiàn)在屏幕上。不過使用者通過一個(gè)快捷鍵就可以立刻調(diào)出這類軟件讓使用者使用,在使用完畢之后又可以按一個(gè)快捷鍵再度隱藏它。這樣的軟件運(yùn)行方式在當(dāng)時(shí)是一項(xiàng)全新的創(chuàng)舉。以我的眼光來看,SideKick這個(gè)軟件對(duì)于Borland來說是非常關(guān)鍵的作品,因?yàn)槲覍ideKick歸類成"消費(fèi)型軟件"產(chǎn)品。所謂消費(fèi)型軟件,是指可以被所有計(jì)算機(jī)使用者使用的軟件,而不是只給程序員或是開發(fā)者使用的軟件。凡是現(xiàn)今比較會(huì)賺錢或是規(guī)模比較大的軟件公司大都屬于開發(fā)"消費(fèi)型軟件"的公司。例如Microsoft除了有和Borland競(jìng)爭(zhēng)得你死我活的開發(fā)工具之外,最重要的是Microsoft擁有兩大"消費(fèi)型軟件":Windows操作系統(tǒng)和Office。這兩類軟件才是Microsoft最賺錢的產(chǎn)品。Oracle是另外一個(gè)很好的例子,數(shù)據(jù)庫幾乎是現(xiàn)在任何應(yīng)用都需要使用的軟件。同樣,SideKick就屬于這一類型的軟件,因?yàn)镾ideKick可以被所有的開發(fā)者使用來增加生產(chǎn)力,而不管開發(fā)者使用的是什么語言。因此當(dāng)Borland推出SideKick之后,立刻在全世界狂賣,也成為繼TurboPascal之后Borland最賺錢的產(chǎn)品。我認(rèn)為在后來的數(shù)年之中Borland走得比較辛苦,便是因?yàn)锽orland再也沒有推出像SideKick一樣屬于"消費(fèi)型軟件"的重量級(jí)產(chǎn)品,而只有屬于程序員和開發(fā)者小眾市場(chǎng)的產(chǎn)品,這是非??上У氖虑?。而"消費(fèi)型軟件"也是到現(xiàn)在我仍然認(rèn)為Borland應(yīng)該推出的產(chǎn)品。AndersHejlsberg近照由于SideKick的TSR技術(shù)是當(dāng)時(shí)獨(dú)一無二的,而且是如此的好用,這引起了當(dāng)時(shí)許多人的好奇,并且成了所有軟件廠商模仿的對(duì)象,我還記得稍后許多的計(jì)算機(jī)信息書籍都以如何學(xué)習(xí)TSR技術(shù)作為賣點(diǎn)。也是因?yàn)镾ideKick和TSR太成功了,因此Borland立刻進(jìn)行了兩個(gè)工作。第一當(dāng)然是馬上開發(fā)下一版的SideKick,讓SideKick繼續(xù)執(zhí)類似軟件的牛耳,以防止其他軟件公司推出類似的軟件來分食SideKick打下的天下。很快地,Borland便推出了SideKick的后續(xù)版本,不但功能更多,而且SideKick從原本完全以開發(fā)者為中心的軟件轉(zhuǎn)變?yōu)檫m合所有計(jì)算機(jī)使用者使用的消費(fèi)型軟件??纯醋髨D,從產(chǎn)品封面以"DesktopOrganizer"為主題便可以了解到SideKick在當(dāng)時(shí)的定位。果然,后續(xù)的SideKick又持續(xù)地大賣,這讓PhilippeKahn非常振奮,也讓他雄心大盛,開始想要通過SideKick的成功主導(dǎo)PC軟件的標(biāo)準(zhǔn),這當(dāng)然就是SideKick一舉成名的TSR技術(shù)。在Borland通過TurboPascal和SideKick大獲成功之后,也因TSR技術(shù)成為大多數(shù)開發(fā)者津津樂道的軟件公司,許多軟件公司都開始模仿Borland的TSR技術(shù)開發(fā)大量的TSR軟件。不過當(dāng)TSR技術(shù)大量被運(yùn)作之后。最后卻造成眾多的TSR軟件彼此沖突,無法正確地相互共存,這主要是因?yàn)樵S多TSR軟件都使用了相同的快捷鍵來調(diào)出/關(guān)閉軟件,或是隱藏在相同的內(nèi)存位置。我還記得,當(dāng)時(shí)同時(shí)使用幾個(gè)TSR軟件時(shí),必須遵照一定的運(yùn)行次序才可以正常使用。為了解決這個(gè)擾人的問題,Borland開始廣邀軟件公司,想要以Borland為首制定TSR的標(biāo)準(zhǔn)。如此一來,只要所有的軟件廠商遵照Borland制定的標(biāo)準(zhǔn),那么所有的TSR軟件就可以彼此正確地運(yùn)行在PC之中。當(dāng)Borland公布了這個(gè)想法并且發(fā)表了初步的TSR標(biāo)準(zhǔn)規(guī)格之后,卻立刻引起了Microsoft的緊張。因?yàn)楫?dāng)時(shí)TSR是如此的流行,Microsoft害怕TSR技術(shù)由Borland主導(dǎo)之后會(huì)讓Borland成為PC軟件的霸主,進(jìn)而嚴(yán)重影響Microsof想主宰PC的計(jì)劃。因此在Borland開始正式制定TSR標(biāo)準(zhǔn)之際,Microsoft便站出來反對(duì)Borland定義的TSR標(biāo)準(zhǔn),并且聲明Microsoft將在未來的DOS操作系統(tǒng)中加入對(duì)于TSR的支持,因此沒有必要再額外制定TSR標(biāo)準(zhǔn)。當(dāng)時(shí)的軟件公司,包括Borland在內(nèi),都無法和Microsoft對(duì)抗。在操作系統(tǒng)廠商表明了反對(duì)立場(chǎng)之后,Borland的這個(gè)構(gòu)想很快便迫于形勢(shì)而放棄了。關(guān)于TSR的爭(zhēng)議應(yīng)該算是Borland和Microsoft之間的第一場(chǎng)戰(zhàn)爭(zhēng)。雖然在沒有引起太大的烽火之前便很快收?qǐng)觯贿^也算是Borland和M1crosoft第一次真正的交手。也正是由于這次的相爭(zhēng),讓Microsoft驚訝于Borland快速的興起,并開始正視Borland這家在當(dāng)時(shí)還算小的軟件公司?!禕orland傳奇》雖然在有關(guān)TSR的技術(shù)之爭(zhēng)中Microsoft贏得了勝利,不過很奇怪的是,此后TSR軟件反而開始慢慢地退燒。除了一些少數(shù)的公用程序軟件仍然使用TSR之外,之后便沒有什么重量級(jí)的軟件是使用TSR技術(shù)開發(fā)的,這算不算是另一樁Microsoft介入之后搞砸的技術(shù)呢?最后再敘述一個(gè)從Borland老員工處聽來的有趣故事。許多人一直想要知道:Borland的總部在哪里?或是想要知道:為什么Borland會(huì)選擇ScottValley作為總部?事情的經(jīng)過是這樣的:當(dāng)年P(guān)hilippeKahn和AndersHejlsberg到美國準(zhǔn)備開始創(chuàng)業(yè)時(shí),由于沒有資金,PhilippeKahn就在西餐廳打工,負(fù)責(zé)端盤子的工作,而AndersHejlsberg則努力的在開發(fā)TurboPascal。當(dāng)PhilippeKahn存了一筆小錢之后,兩個(gè)人便開始了創(chuàng)業(yè)大計(jì)。首先他們必須找到一個(gè)公司的總部,可是要在哪里實(shí)現(xiàn)PhilippeKahn和AndersHejlsberg心中的理想呢?雖然當(dāng)時(shí)他們住在L.A.附近,但是光憑PhilippeKahn存的一點(diǎn)小錢是絕不夠在L.A.大展鴻圖的,因此PhilippeKahn和AndersHejlsberg決定到比較偏遠(yuǎn)的地方試試。于是這兩位仁兄便開著PhilippeKahn的破車往南出發(fā)了。聽說當(dāng)PhilippeKahn把車開到ScottValley附近時(shí)剛好沒有汽油了,眼看四周的環(huán)境覺得還不錯(cuò),就決定在這個(gè)地方展開PhilippeKahn和AndersHejlsberg的創(chuàng)業(yè)之夢(mèng)。就是這個(gè)決定讓原本默默無聞的ScottValley在數(shù)年之后竟成為一個(gè)家喻戶曉的高科技盛地。C#首席設(shè)計(jì)師AndersHejlsberg專訪編輯本段回目錄C#首席設(shè)計(jì)師AndersHejlsberg專訪JohnOsbornAndersHejlsberg譯者:榮耀[譯序:精彩技術(shù),不容錯(cuò)過!限于時(shí)間和能力,譯文倘有訛誤,當(dāng)以英文原版為準(zhǔn)。]2007年7月,O’Reilly編輯JohnOsborn參加了微軟職業(yè)開發(fā)者會(huì)議。在此,他對(duì)著名的工程師、微軟.Net框架設(shè)計(jì)師、C#程序語言首席設(shè)計(jì)師AndersHejlsberg進(jìn)行了采訪。AndersHejlsberg因設(shè)計(jì)PC上最早的語言之一—TurboPascal而出名。他把TurboPascal授權(quán)給Borland公司,后又率隊(duì)開發(fā)了Delphi—一個(gè)極為成功的可視化的客戶/服務(wù)應(yīng)用設(shè)計(jì)工具[譯注:此處不必拿MIDAS之類較真J]。訪問時(shí)在座的還有微軟C#產(chǎn)品經(jīng)理TonyGoodhew和O'Reilly的Windows編輯RonPetrusha。Osborn:

我已經(jīng)看到一些關(guān)于C#[發(fā)音為"Seesharp"]的新聞故事,我注意到有很多似乎傾向于這樣的觀點(diǎn)—或理論上說—C#不是Java的克隆就是Java的微軟替代物。如果你來寫這個(gè)標(biāo)題,你希望人們?cè)趺丛u(píng)論這門語言?Hejlsberg:

首先,C#不是Java的克隆。在設(shè)計(jì)C#期間,我們考察了很多種語言,如C++、Java、Modula2、C、Smalltalk等。很多語言都有我們感興趣的相同的核心思想,比如深度面向?qū)ο蟆⒑喕瘜?duì)象等等。

C#和這些別的語言尤其是Java的關(guān)鍵不同點(diǎn)是它非常接近C++。在我們的設(shè)計(jì)中努力使然。C#從C++直接借用了大多數(shù)的操作符、關(guān)鍵字和聲明。我們還保留了許多被Java拋棄的語言特性。為什么Java中沒有枚舉,道理何在?我的意思是,拋棄它們是基于何種理論基礎(chǔ)?在C++中,枚舉顯然是一個(gè)很有意義的概念。在C#中,我們保留了枚舉并同樣使其類型安全。并且,枚舉不只是整型,它們實(shí)際上是從.NET基類庫里的System.Enum派生下來的強(qiáng)類型的值類型。如果沒有造型轉(zhuǎn)換,枚舉類型“foo”和枚舉類型“bar”不可互換。我認(rèn)為這是個(gè)重要的差異。我們還保留了操作符重載和類型轉(zhuǎn)換。C#名字空間的整體結(jié)構(gòu)也非常接近C++。

但是,超越這些傳統(tǒng)的語言論題,我們?cè)O(shè)計(jì)語言的一個(gè)關(guān)鍵的目標(biāo)是使C#面向組件。我們向語言自身加入了你在編寫組件時(shí)所需要的所有概念。例如屬性[譯注:即property,翻譯為“屬性”,由來已久。我懷疑如果先有attribute的話,property會(huì)不會(huì)被翻譯為“性質(zhì)”、“特性”,而attribute才是“屬性”:JL]、方法、事件、特性[譯注:即attribute,截至目前,此名詞譯法仍較混亂。有的翻譯和property不區(qū)分,也譯為“屬性”;有的譯為“特性”;有的譯為“屬性信息”。在該名詞譯法尚未統(tǒng)一之前,本著精簡原則,筆者先把它翻譯成“特性”。但注意,XML中的attribute的譯法一般比較統(tǒng)一,即為“屬性”(因?yàn)閄ML中沒有一個(gè)類似于property的東西會(huì)與之混淆)。因此,本文最后交叉描述C#和XML的部分,請(qǐng)留心“特性”、“屬性”各有所指。]和文檔等,它們都是一流的語言結(jié)構(gòu)。我們對(duì)特性所做的工作是全新的和創(chuàng)新的。利用特性可為任何對(duì)象加入有類型的、可擴(kuò)展的元數(shù)據(jù)。這在目前任何其它程序語言里都看不到的。C#也是第一個(gè)合并XML注釋標(biāo)記的語言,編譯器可以用其直接從源碼中生成可讀的文檔。

另外一個(gè)重要的概念是我所說的“一站購物式軟件”[one-stop-shoppingsoftware]。一旦你用C#寫代碼,你就在這一個(gè)地方寫了一切。不再需要頭文件、IDL(接口定義語言)文件、GUID和復(fù)雜的接口。因?yàn)樗亲园莸膯卧?。一旦用這種方式寫自描述的代碼,你就可以把你的軟件嵌入到ASP頁面或植入各種不同的環(huán)境,這在以前是不可能的。

但是讓我們?cè)倩氐浇M件這個(gè)重要的概念。語言是否應(yīng)該支持屬性或事件,業(yè)界有很多爭(zhēng)論。沒錯(cuò),我們是可以用方法表達(dá)這種概念。我們可以用諸如“get”或“set”之類的程序塊的命名模式模擬屬性的行為。我們可以用接口和實(shí)現(xiàn)接口的適配器并轉(zhuǎn)發(fā)到對(duì)象。這都是可能實(shí)現(xiàn)的,就象可能在C語言里進(jìn)行面向?qū)ο缶幊桃粯?。只是它太困難了,需要太多的手工勞動(dòng),為了表達(dá)你真正的思想,你最終不得不去做所有的工作。我們認(rèn)為是時(shí)候了,應(yīng)該有個(gè)語言使得創(chuàng)建組件變得容易些。今天程序員在創(chuàng)建軟件組件。他們并不是創(chuàng)建整個(gè)應(yīng)用或整個(gè)類庫。每個(gè)人都是在創(chuàng)建從宿主環(huán)境提供的基組件繼承下來的組件。這些組件重載一些方法和屬性,它們處理一些事件,并把組件安裝回系統(tǒng)。樹立這些概念是關(guān)鍵的第一課。Osborn:

你最近在介紹C#時(shí),第一張幻燈片上面寫著:“C/C++家族里第一個(gè)面向組件的語言”。Hejlsberg:

是的。這是我的首要目標(biāo)之一。我們談?wù)撘磺腥绾味际菍?duì)象,這也非常關(guān)鍵。以前象Smalltalk和Lisp語言都可以這么做,但代價(jià)昂貴。我認(rèn)為C#包含一些優(yōu)美有趣的創(chuàng)新使得組件開發(fā)容易些。例如裝箱和拆箱的概念。裝箱可以使一個(gè)值類型的值轉(zhuǎn)換為一個(gè)對(duì)象,拆箱可以使一個(gè)對(duì)象轉(zhuǎn)換為一個(gè)簡單類型的值。這在以前或許也有,但我們把它應(yīng)用于語言的方式是一種優(yōu)美的創(chuàng)新。

我們努力避免用“象牙塔“的方式設(shè)計(jì)C#和.Net框架。我們承受不起重寫我們所有的軟件的負(fù)擔(dān)。業(yè)界也負(fù)擔(dān)不起,特別是今天我們正轉(zhuǎn)移到Internet時(shí)代。你要善于利用你已經(jīng)擁有的。所以,我認(rèn)為互操作性也是關(guān)鍵的。我們致力于為程序員提供所有符合Internet標(biāo)準(zhǔn)的可互操作的正確的解決方案,例如、HTML、XML以及微軟已經(jīng)存在的技術(shù)。所以你不會(huì)有如墜深淵的那一刻—發(fā)現(xiàn)新的.NET框架下沒有提供你用的一些東西,或者你意識(shí)到你想利用一些已經(jīng)存在的API或組件的時(shí)候。你已經(jīng)看到我們已把所有COM的互操作能力內(nèi)建入語言和公共運(yùn)行時(shí);你已經(jīng)看到可以使用DllImport特性導(dǎo)入已存在的DLL[動(dòng)態(tài)連接庫];你已經(jīng)看到即使那些都不能遂你愿,我們也有不安全代碼的概念。不安全代碼允許你寫使用指針的內(nèi)聯(lián)C代碼,可以做不安全的造型轉(zhuǎn)換,可以抑制內(nèi)存從而使其不會(huì)被意外地垃圾收集[譯注:此處用作動(dòng)詞J]。

關(guān)于不安去代碼有很多爭(zhēng)論,人們似乎認(rèn)為我們?cè)谖净蚴窃诟墒裁磩e的壞事。我認(rèn)為這是個(gè)誤會(huì)。代碼不會(huì)僅僅因?yàn)闃?biāo)記了“不安全”就表示它不受管制。當(dāng)然,我們不會(huì)扔出不安全的指針使人們?nèi)菀资艿綇腎nternet下載的不安全代碼的攻擊。不安全代碼被深深地約束在安全的環(huán)境里。我們提供這樣的彈性:1.呆在受管制的代碼箱里完成工作而不會(huì)墜入深淵;2.轉(zhuǎn)入一個(gè)不同的語言使用一個(gè)不同的編程模型寫本地代碼。如果你停留在這個(gè)箱子里,我們會(huì)使代碼更加安全,因?yàn)橄到y(tǒng)知道它要干什么。事實(shí)上,即使你寫不安全代碼也不意味著你離開了受管制的空間。你的不安全代碼會(huì)變得更有效率。

Osborn:

請(qǐng)給我多講一些在受管制的環(huán)境里處理不安全代碼的機(jī)制。Hejlsberg:

好的。描述受管制的執(zhí)行環(huán)境比如Smalltalk、Java和.NET公共語言運(yùn)行時(shí)一個(gè)重要特征是它們提供垃圾收集機(jī)制。為了提供垃圾收集機(jī)制,至少要提供一個(gè)現(xiàn)代的垃圾收集器,一個(gè)“標(biāo)記和清掃”垃圾收集器。比起傳統(tǒng)不受管制代碼來說,你必須更多地了解正在執(zhí)行的代碼。為了找出要排除的死對(duì)象,你必須能遍歷堆棧,找到所有活動(dòng)的根,并指出哪些對(duì)象是活動(dòng)的哪些是不再被訪問的。然而,為了能夠達(dá)到這個(gè)目標(biāo),你必須和你執(zhí)行的代碼緊密協(xié)作。代碼必須具有更好的描述性。它要告訴你它是怎么分布在堆棧里的,它的局部變量存放在何處等等。

當(dāng)我們?cè)贑#中編寫不安全代碼時(shí),你可以做不是類型安全的事,比如指針操作。標(biāo)記為不安全的代碼并非絕對(duì)執(zhí)行在不可信任的環(huán)境里。為了使之執(zhí)行,你必須授予信任,否則,代碼將不會(huì)執(zhí)行。從這一點(diǎn)來看,和其它本地代碼并無區(qū)別—真正的區(qū)別是它們?nèi)匀贿\(yùn)行在受管制的空間里。你寫的方法有一個(gè)描述表,它告訴你哪些對(duì)象是活動(dòng)的,因此,不管什么時(shí)候你進(jìn)入這些代碼,你都不必穿越列集邊界。否則,當(dāng)你進(jìn)入非描述性的、不受管制的代碼(比如通過Java本地接口),你不得不在堆棧上設(shè)置一個(gè)水印或設(shè)置一個(gè)屏障。你必須重新列集所有箱子外的參數(shù)。一旦開始使用對(duì)象,你必須對(duì)你觸及的東西小心翼翼,因?yàn)镚C[垃圾收集器]仍然在另一個(gè)不同線程里運(yùn)行。如果你不使用一些隱晦的方法鎖定對(duì)象從而正確地抑制垃圾收集器,它可能會(huì)移去對(duì)象。如果你忘記那么做,那你將會(huì)不走運(yùn)。

我們采用了一個(gè)不同的方式。我們說過,“讓我們集成這個(gè)到語言中去。讓我們提供聲明,例如fixed聲明,它可以讓你抑制對(duì)象以和GC協(xié)作并集成之?!庇眠@種方法,我們提供最佳方式,帶領(lǐng)所有已經(jīng)存在的代碼一起向前,而不是僅僅將它們拋棄。這是一個(gè)不一樣的設(shè)計(jì)方式。Osborn:

因此,你們對(duì)不安全代碼的處理方式是—不安全代碼的內(nèi)存實(shí)際上是在垃圾收集器的監(jiān)視之下?Hejlsberg:

是的。但是,就象所謂的“購者自慎,不包退換”一樣,它并不安全。你可以獲取指針并做錯(cuò)事—當(dāng)然,你在本地代碼里也能干同樣的錯(cuò)事。Osborn:

我認(rèn)為另一個(gè)易混淆的地方,是理解C#在哪兒停止和公共運(yùn)行時(shí)從哪兒開始。與它從公共運(yùn)行時(shí)庫得到的相比,C#語言自身的創(chuàng)新是什么?Hejlsberg:

好的,我想這個(gè)混淆來源于這樣一個(gè)事實(shí)—當(dāng)人們談?wù)揓ava時(shí),他們并不真的知道哪個(gè)是語言哪個(gè)是運(yùn)行時(shí)。當(dāng)人們談?wù)揓ava時(shí),混淆就發(fā)生了。哪個(gè)語言哪個(gè)是運(yùn)行時(shí)?當(dāng)他們談?wù)揓ava時(shí),他們到底指的是什么?Java,語言?Java,語法?還是Java,平臺(tái)?人們把這些不同的方面混成一團(tuán)。我們的方式表明我們想成為一個(gè)跨語言的平臺(tái)。我們將創(chuàng)建一個(gè)平臺(tái),它允許你進(jìn)行多語言編程,并且共享一套公共的API(應(yīng)用編程接口)。讓我們承認(rèn)這一點(diǎn),一些人喜歡用COBOL編程,一些人喜歡用Basic編程,一些人喜歡用C++,還有一些人將會(huì)喜歡用C#—我希望。但是,我們不會(huì)試圖告訴你,忘記你曾經(jīng)做過的所有的事情吧,我們不會(huì)說,“現(xiàn)在只有一種語言,在這個(gè)競(jìng)爭(zhēng)中不會(huì)再有創(chuàng)新了”。我們說業(yè)界因?yàn)閺椥远押?。Java是怎么來的?它的出現(xiàn)是因?yàn)樵谒耙呀?jīng)存在一些編程語言,而在它后也還將會(huì)出現(xiàn)一些編程語言。我們想打造一個(gè)平臺(tái),在此你可以偏愛某種語言但不會(huì)否定整個(gè)價(jià)值取向;我們想打造一個(gè)平臺(tái),它將是創(chuàng)新的。今天誰在幫助COBOL程序員?誰把他們帶入WEB?只有在.NET平臺(tái)上你才可以把富士通COBOL嵌入ASP頁面。我的意思是,它真正是革命性的!Osborn:

假定.NET平臺(tái)上支持多語言,那為什么選擇C#而不是VisualBasic、C++甚至COBOL?是什么使C#如此引人注目?Hejlsberg:

首先,C#可以使我們從一張白紙開始。也就是說,我們沒有任何向后兼容性的負(fù)擔(dān)。這顯然會(huì)使事情簡化,無論從是從實(shí)現(xiàn)的立場(chǎng)還是從使用的立場(chǎng)都是這樣。例如,在C#中,我們只有一類類型,并且總是被垃圾收集。而另一方面,受管制的C++有兩套。因?yàn)樗A舴抢占L(fēng)格的編程。因此,在C#中,只需要你理解一些簡單的概念。語言是一個(gè)有趣的東西,它是一種口味;語言又是一件嚴(yán)肅的事情,它是程序員選擇的一種生活方式。我是指,我們意識(shí)到我們不能走出來說,“這兒有個(gè)平臺(tái),你只可以使用一個(gè)基礎(chǔ)語言?!奔词乖谀莻€(gè)平臺(tái)上用一種語言可以做所有的事情,人們還是可能不喜歡它的語法。他們可能喜歡大括號(hào)或者一些其它的程序塊分界符。那是他們熟悉的。那是使他們感覺舒服并且富有生產(chǎn)力和能力的。我們對(duì)待C#的方式僅僅是為認(rèn)為語言太復(fù)雜的C++程序員和認(rèn)為丟失了一些C和C++語言特性的Java程序員提供一個(gè)可選物。我們尋求一個(gè)簡化C++的方式并投入到一個(gè)多語言的平臺(tái)中,它提供更大的互操作性,并且它提供完備的組件概念等等?!峁┙o開發(fā)者一個(gè)語言實(shí)現(xiàn)選擇。我想我們做了件漂亮的工作。你基本上可以在VisualBasic、.NET和C#中做同樣的事情。VisualBasic對(duì)大多數(shù)程序員來說仍然是易接受的。C#則具有更多的活動(dòng)空間并且比VB更富威力。AndersHejlsbergOsborn:

這意味著在C#中可用更少的聲明實(shí)現(xiàn)更多?Hejlsberg:

是的。意味著通過不安全代碼,你可以得到更多的能力。

Osborn:

也就是說,不能在VB中寫不安全代碼?Hejlsberg:

是的。不可以。Goodhew:

但是,基本上,兩種語言都可以做同樣的事。和VisualStudio6相比,這是一個(gè)根本性的改變。在Visualstudio6.0中,如果你想創(chuàng)建多線程的MTS對(duì)象,并且你是一個(gè)VB程序員,你就沒招。你不得不用C++?,F(xiàn)在,有了.NET框架,你可以使用任何一種你喜歡的語言。Hejlsberg:

這就是我在一般會(huì)議談話里說過的,.NET框架提供一致的編程模型。在語言和框架的進(jìn)化過程中,我們一貫似乎都是把一種程序語言綁死在特定的API和特定的編程方式上。VB是快速應(yīng)用開發(fā)工具;MFC(微軟基礎(chǔ)類)是子類化的方式;ASP則是把東西塞到Web頁面中。在每一種情況下,你對(duì)編程模型的選擇決定了你對(duì)程序語言和可使用的API的選擇。每次當(dāng)你變換框架時(shí),它都增加了你學(xué)習(xí)新語言和API負(fù)擔(dān)的工作量。我們真正努力統(tǒng)一這一切,我們提供一套API,一套支持可視化設(shè)計(jì)的工具,我們還提供一個(gè)可以任選一種適合你的語言的彈性。Osborn:

我不知道這對(duì)那些使用象VBScript和Jscript腳本語言的有什么作用?Hejlsberg:

.NET框架下奇妙的事情之一是使腳本語言能夠編譯??纯碅SP+,現(xiàn)在,實(shí)際上,在你的頁面里運(yùn)行的是真正編譯的代碼。它不是后綁定的、調(diào)度查找的—如果用戶沒有點(diǎn)擊頁面,你不會(huì)看到運(yùn)行時(shí)錯(cuò)誤。ASP+開發(fā)者可以使用VisualBasi.NET完整的威力而不是VBScript。并且第一次,他們可以使用Perl、Python和其它流行語言,如果他們這么選擇的話。Petrusha:

服務(wù)端的JavaScript現(xiàn)在也能被編譯?Hejlsberg:

沒錯(cuò)。Goodhew:.NET框架使得使用腳本語言就象用具有完全特性的語言一樣,因?yàn)樗鼈儸F(xiàn)在訪問的是一個(gè)真正的編程框架并且訪問的是同一基類API。你應(yīng)該看看搞Jscript實(shí)現(xiàn)的伙計(jì)們都已經(jīng)實(shí)現(xiàn)了什么。[編注:Jscript是微軟對(duì)ECMA262語言規(guī)范(ECMAScript版本3)的實(shí)現(xiàn),只有一些很小的例外(為了保持向后的兼容性),Jscript是對(duì)ECMA標(biāo)準(zhǔn)的完整實(shí)現(xiàn)]。所以.NET平臺(tái)提供了一個(gè)公共語言框架,對(duì)腳本寫作者來說,具有極大的好處。Osborn:

我們已經(jīng)討論關(guān)于Java、C++和腳本。在PDC[譯注:(微軟)職業(yè)開發(fā)者會(huì)議],我聽很多人爭(zhēng)論.NETIL(IL是微軟中間語言,所有編譯器都必須產(chǎn)生它以運(yùn)行在.NET框架上)和運(yùn)行于Java虛擬機(jī)中的Java字節(jié)碼并沒有什么不同。從你的談話中,顯然你并不同意這一點(diǎn)。你介意進(jìn)一步評(píng)論它們之間的區(qū)別嗎?Hejlsberg:

好的。首先,IL的思想是一個(gè)很老的思想了。你可以追溯這個(gè)概念到UCSDPascalp-machine(一個(gè)早期的個(gè)人計(jì)算機(jī)Pascal實(shí)現(xiàn))或者Smalltalk。P-code曾被Basic和VisualBasic使用,Word的一個(gè)組成部件,內(nèi)部使用p-code引擎,因?yàn)樗?。所以,p-code并不是什么新東西。參考文獻(xiàn)編輯本段回目錄

湯姆·庫爾茲目錄?基本信息?托瑪斯·庫爾澤——BASIC語言的發(fā)明人之一?《IT史記》相關(guān)章節(jié):BASIC:平裝本《圣經(jīng)》?約翰·凱默尼——BASIC語言的發(fā)明人之一[顯示全部]基本信息編輯本段HYPERLINK"://techcn/index.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論