Anders Hejlsberg(安德斯-海森博格) 坐在自己的辦公室,雙眼直直的盯著前方。他要做一個(gè)決定,決定自己未來(lái)的命運(yùn)和理想。這是1996年一個(gè)普通的下午,幾個(gè)小時(shí)前,他剛與比爾-蓋茨結(jié)束了一次愉快的午餐,同為軟件界的精英,他們相談甚歡,蓋茨給他開(kāi)出三百萬(wàn)以上的年薪和數(shù)萬(wàn)股的微軟股票。這是一個(gè)誘人的條件,但更重要的是,蓋茨許諾他可以有充分的時(shí)間和資源投身自己感興趣的技術(shù)方向。
Anders在猶豫,他是否真的要離開(kāi)已經(jīng)工作了十三年的Borland。從Turbo Pascal、SideKick再到Delphi,Borland是Anders輝煌的起點(diǎn),他在這里成為人們敬仰的軟件大師,并一手鑄就了 Borland傳奇;在Borland,Anders有太多美好的回憶和未完成的理想。
[attach]9710[/attach]
然而,隨著1994年P(guān)hilippe Kahn(Borland公司創(chuàng)始人)的離去,Anders漸漸失去了最強(qiáng)有力的支援;Borland的新任CEO Delbert Yocam希望加強(qiáng)Delphi在IDE市場(chǎng)的王者地位,因?yàn)镈elphi才是Borland最主要的財(cái)務(wù)來(lái)源;但Anders已經(jīng)看到Java和虛擬機(jī)語(yǔ)言的潛力,與其在已有的產(chǎn)品上徘徊不前,他更想專注于新產(chǎn)品Borland Java(后來(lái)的JBuilder)的研發(fā);Borland的管理層的技術(shù)短視和Anders的技術(shù)追求顯得如此格格不入;Anders回憶那段經(jīng)歷時(shí)曾說(shuō)“那時(shí),我感覺(jué)自己并不是不可缺少的人”。
風(fēng)靡一時(shí)的Turbo Pascal
Borland的內(nèi)部矛盾很快引起了微軟的注意,Anders在開(kāi)發(fā)界的名頭和對(duì)技術(shù)的理解使微軟急不可耐,甚至對(duì)Borland使用了最直接的攻擊。微軟人力部門(mén)派遣加長(zhǎng)型的大轎車到Borland大門(mén)口找Anders吃飯,并開(kāi)出了年薪百萬(wàn)美元以上的條件;在苦等無(wú)應(yīng)、按捺不住之下,很快就再次聯(lián)系A(chǔ)nders,這次給出的條件是兩百萬(wàn)美元,但依然沒(méi)能打動(dòng)Anders。微軟開(kāi)始思索金錢(qián)以外的東西。第三次,比爾-蓋茨親自出馬,除了開(kāi)出三百萬(wàn)的價(jià)碼,還給Anders完成技術(shù)理想的許諾。
經(jīng)過(guò)短暫的猶豫,Anders完成了自己的決定,這個(gè)決定足以像Turbo Pascal和Delphi那樣再次振動(dòng)整個(gè)開(kāi)發(fā)界;因?yàn)檫@個(gè)決定,促成了VJ++、C#和微軟.NET戰(zhàn)略的誕生。
Visual J++
1996年,Anders正式加盟微軟,成為Visual J++和WFC(Windows基礎(chǔ)類庫(kù))的架構(gòu)師。他的第一個(gè)項(xiàng)目與其在Borland的技術(shù)理想相當(dāng)接近,在微軟知名的Visual Studio平臺(tái)上打造一個(gè)基于虛擬機(jī)的語(yǔ)言和像Delphi一樣徹底解放程序員生產(chǎn)力的IDE。這就是J++語(yǔ)言和VJ++開(kāi)發(fā)工具。我們知道,編程語(yǔ)言和IDE的開(kāi)發(fā)相當(dāng)考驗(yàn)一個(gè)架構(gòu)師的功力,作為用匯編打造Turbo Pascal和親手開(kāi)發(fā)Delphi的軟件大師(自Anders離開(kāi)Borland后,Delphi的底層架構(gòu)在三年內(nèi)一直無(wú)人可以修改),Anders 不負(fù)眾望,微軟很快在新版Visual Studio 6.0版本中引入了J++;微軟平臺(tái)的程序員找到了擊敗Java陣營(yíng)的工具。
在相當(dāng)一段時(shí)間里,J++成為微軟抗衡Java的最有力武器;同時(shí),由于Anders對(duì)Java的一些想法,改進(jìn)后的J++甚至吸引了一大批 Java程序員。后來(lái)由于微軟在Java開(kāi)發(fā)工具授權(quán)問(wèn)題上和Sun公司的糾紛以及Borland公司對(duì)微軟大張旗鼓的挖角的報(bào)復(fù),迫使微軟停止了 Visual J++的后續(xù)開(kāi)發(fā)。在Borland對(duì)微軟和Anders個(gè)人的起訴書(shū)上寫(xiě)有這樣一句話:“Anders正在幫助微軟開(kāi)發(fā)Delphi for Java”。
作為Anders在微軟的第一個(gè)產(chǎn)品,J++曾一度取得成功;但最后的糾紛使Anders意識(shí)到,商業(yè)環(huán)境的變化已經(jīng)無(wú)法再像當(dāng)年做 Pascal那樣隨意,想要完成自己的夢(mèng)想,必須幫助微軟打造自己的技術(shù)平臺(tái)和編程語(yǔ)言,而這門(mén)語(yǔ)言不是C++,因?yàn)樗幌胧蹸++標(biāo)準(zhǔn)委員會(huì)的限制;這門(mén)語(yǔ)言也不是Java,因?yàn)樗吹絁ava不完美的地方和商業(yè)紛爭(zhēng);Anders要的,是運(yùn)行在獨(dú)立平臺(tái)上的一門(mén)完美語(yǔ)言 。
.NET與C#
VJ++之后,Anders作為.NET概念的發(fā)起人之一,被任命為微軟.NET的首席架構(gòu)師主持開(kāi)發(fā)工作。眾所周知,.NET框架最初是個(gè)模糊的概念,即使是推出.NET戰(zhàn)略一年之后,開(kāi)發(fā)者依然無(wú)法看清.NET的技術(shù)愿景。其實(shí),Anders也在不斷的思考,從Turbo Pascal到Delphi再到現(xiàn)在的.NET,所有這一切都是致力于對(duì)開(kāi)發(fā)者生產(chǎn)力的解放;但在微軟,他要做的是平衡技術(shù)理想和商業(yè)價(jià)值的關(guān)系;還好,比爾蓋茨履行了他當(dāng)年的諾言,Anders可以按照他的想法打造.NET;程序員出身的蓋茨相信,好的技術(shù)必然會(huì)帶來(lái)好的商業(yè)價(jià)值。
在經(jīng)過(guò)不斷的反思和討論之后,Anders確定了.NET未來(lái)的走向:一個(gè)致力于敏捷軟件開(kāi)發(fā)、快速應(yīng)用開(kāi)發(fā)、平臺(tái)無(wú)關(guān)性和網(wǎng)絡(luò)透明化的軟件開(kāi)發(fā)平臺(tái)。.NET將是微軟為下一個(gè)十年對(duì)服務(wù)器和桌面型軟件工程邁出的第一步。它應(yīng)該包含許多有助于互聯(lián)網(wǎng)和內(nèi)部網(wǎng)應(yīng)用迅捷開(kāi)發(fā)的技術(shù)。
這就是我們現(xiàn)在所看到的.NET,更重要的是,為了實(shí)現(xiàn)這一平臺(tái),Anders需要一門(mén)新的編程語(yǔ)言,它既要像Java一樣通過(guò)虛擬機(jī)實(shí)現(xiàn)平臺(tái)的跨越,還要避免一些開(kāi)發(fā)者普遍抱怨的Java語(yǔ)言存在的缺點(diǎn);同時(shí),這門(mén)語(yǔ)言的革新將使得程序員可以同時(shí)進(jìn)行Windows應(yīng)用軟件和網(wǎng)絡(luò)應(yīng)用軟件以及組件和服務(wù)的開(kāi)發(fā)。這門(mén)語(yǔ)言就是C#。
Anders曾笑稱自己“把上世紀(jì)末和本世紀(jì)初的全部獻(xiàn)給了C#”。作為C#的架構(gòu)師,Anders對(duì)其傾注了自己的全部精力。2003年,在 Channle 9的一次訪談中,《Java編程思想》的作者Bruce Eckel向Anders證實(shí)一段傳聞:“我聽(tīng)說(shuō)C#是一個(gè)工程師小組在一個(gè)屋子里設(shè)計(jì)出來(lái)的? ”,Anders苦笑作答:“是的。4年來(lái),我們一直呆在這個(gè)屋子里。現(xiàn)在,每周一、三、五,我們?nèi)匀辉谶@里會(huì)面。”
我們可以想象Anders為使C#只允許單一繼承,同時(shí)保證一個(gè)類可以實(shí)現(xiàn)多個(gè)接口功能的苦苦思索;也可以想象他為C#支持完整反射的反復(fù)論證;這一切都是為了他的技術(shù)理想,而這個(gè)理想自大學(xué)時(shí)代開(kāi)發(fā)Turbo Pascal時(shí)就未曾變過(guò)。
現(xiàn)在,我們已經(jīng)看到了.NET和C#的成功,這不僅體現(xiàn)在每期的編程語(yǔ)言排行榜上,在Windows平臺(tái)和眾多.NET開(kāi)發(fā)的網(wǎng)站上,.NET和C#現(xiàn)在已經(jīng)無(wú)處不在。在Delphi的輝煌過(guò)后,Anders正在用自己的理想續(xù)寫(xiě)新的技術(shù)傳奇。