Delphi/VisualJ++/.NET/C#之父-Anders Hejlsberg
Anders雖然沒有顯赫的學曆,無法獲得Turning Awards。
但Anders的實力和貢獻絕不輸于任何一位Turning Awards獲得者。
對于成千上萬的使用Borland Turbo Pascal和Delphi進行程式設計的軟體開發者來說,
Anders Hejlsberg,這位丹麥的軟體大師讓他們肅然起敬,是他創制了上述兩個備受歡迎的軟體開發工具。
作為Turbo Pascal、VisualJ++、Delphi、C#的締造者,.NET的領軍人物,Borland的創始人之一,
Microsoft的靈魂人物,Anders在一定程度上影響着全球軟體業的發展。
Anders首次躍上軟體業界舞台是源于他在80年代早期為MS-DOS和CP/M寫的一個Pascal編譯器。
不久一個叫做Borland的年輕公司雇傭了他并且買下了他的編譯器,從那以後這個編譯器就作為Turbo Pascal在市場上推廣。
在Borland,Anders繼續開發Turbo Pacal并且在後來上司一個團隊設計了Turbo Pascal的替代品、
開發工具史上的奇迹:基于Pascal語言Delphi開發工具。
Philippe Kahn和Anders都為Borland做出了重大的貢獻,同時兩人之間還有着深厚的感情。
在Borland工作時,對于Anders任何想法和計劃,Philippe Kahn都是不遺餘力地支援。
也正是這個重要的支援力量,才有随後極為成功的Borland Pascal以及Delphi的問世。
但是在Philippe Kahn離開Borland之後,Anders再也沒有了這股來自最親密戰友的強力支援。
1997年,Borland新的CEO Delbert Yocam在掌握大權後,整個公司開始走向第二個重要的轉變,
Delbert對于Borland産品的開發和趨勢也有了不同于Philippe Kahn的看法。
當Java在1996年逐漸快速發展之後,睿智的Anders也看到了Java成功的未來。
是以在他不再積極參與Delphi2/3的開發工作之後,便非常希望能夠主導Borland Java開發工具的開發,
期望能夠像當初的Delphi1.0一樣,為Borland再次開發出全世界一級的Java開發工具。
不過,由于當時Delphi是Borland最重要的收入來源,高層仍然希望Anders繼續在Delphi産品線上投入全力,
是以當時Delbert并沒準許Anders的請求。
Borland的下一個重要的開發工具JBuilder(當時的産品開發名稱為Latte),仍然交由其他小組負責。
依據筆者推想,由于當時Anders對于Java已經有許多的想法,
是以才會有後來的VJ++以及C#,這些産品和程式語言的許多特性想必已經在Anders的頭腦中醞釀了一段時間了。
Delbert沒有允許Anders帶領Latte開發小組,但Anders仍然沒有放棄他的新計劃。
也許是Anders注定和Borland的緣分已經到了盡,正好這個時候Microsoft展開了有史以來對Borland最大的挖角行動。
在Anders無法在Borland取得滿意的支援之後,Microsoft提供的優厚條件頓時對Anders産生了緻命的吸引力,
進而造成了Borland無法挽回的遺憾。
棄Borland投Microsoft,1996年,在為Borland工作13年以後、Delphi 3釋出前,Anders離開了Borland,加入了Microsoft。
在那裡一開始Anders作為VisualJ++和windows基礎類庫(WFC)的架構師。
随後,Anders擔任了C#的主要設計者和.NET架構建立過程中的一個主要參與者。
之後,Anders上司C#程式設計語言的後續開發。 在此之前,Microsoft曾多次企圖挖走Anders,但都沒成功。
據說Anders去Microsoft(主要)不是錢的問題,雖然Microsoft開價也相當有吸引力:130萬美元年薪外加股票期權分紅,總計超過300萬美元。
更主要的原因是Anders和Delphi開發組其他成員在修改編譯器問題上發生了争執;
還有,據Borland内部人講,Anders認為自己不再是“不可缺少的人”。
Anders在Delphi 3中幾乎沒做什麼工作,Chuck Jazdzewski扮演了一個更重要的角色。
Anders在Borland時把所有精力都放在了Pascal産品上,也需要新的挑戰,
這時Bill Gates的親自邀請,許諾給與挑戰的機會,于是Anders加入Microsoft就勢在必行。
Microsoft用豐厚的薪水、股票認購權和巨額的加盟獎金雇請了Anders之後,Borland曾提出通過不正當手段吸收新成員的控告。
Borland還曾聲稱:提供了很少的細節來支援指控Anders正在開發“Delphi for Java”。
這場訴訟雖然最終以Borland的勝利而收場;
但Anders已經在為Microsoft工作了。
C#語言在Microsoft把視窗作業系統和軟體向網絡遷移的新市場戰略中,
C#(發音是C Sharp)語言是最重要的環節,作為Microsoft反擊Java語言的最有力武器。
在各大軟體公司都争先恐後地把各自的應用程式移植為面向手持裝置和個人電腦的網際網路服務時,
Microsoft希望軟體公司采用C#來編寫各自的基于Web的軟體和服務。
同樣,Microsoft也希望商家能采用.Net家族的電子商務軟體來運作Web服務。
主要目的是通過C#來打倒Java。
Anders上司了C#程式設計語言的設計開發團隊。
2003年7月30号,Anders與Bruce Eckel(《ThinkinginC++》以及《ThinkinginJava》
的作者)和Bill Venners(Artima.com的主編),在華盛頓州Redmond的Microsoft辦公室進行了一次訪談。
Anders談論了C#語言和.NET架構設計上的一些取舍:
◆ 在第一部分:C#的設計過程中,Anders談論了C#設計團隊所采用的流程,
以及在語言設計中可用性研究(usability studies)和好的品味(good taste)相對而言的優點。
◆ 在第二部分:Checked Exceptions的問題中,Anders談論了已檢測異常的版本問題和規模擴充(scalability)問題。
◆ 在第三部分:委托、元件以及表面上的簡單性裡,Anders談論了委托(delegates)以及C#對于元件的概念給予的頭等待遇。
◆ 在第四部分:版本,虛函數和覆寫裡,解釋了談論了為什麼C#的方法預設是非虛函數,以及為什麼程式員必須顯式指定覆寫(override)。
◆ 在第五部分裡,Anders談論了DLLhell、接口契約、stronganmes以及互操作的重要性。
雖然Anders沒有顯赫的學曆,無法獲得Turning Awards(即圖靈獎,資訊科學界最高榮譽獎項,等同于諾貝爾獎)。
但筆者認為Anders的實力和貢獻絕不輸于任何一位Turning Awards的得獎人。
Anders是最好的資訊實踐型人物,在2001年,
他終于獲得了資訊界最具權威的資訊刊物Dr.Dobbs'Journal頒發的Excellent Programming Awards,
以表彰Anders為資訊界做出的卓越貢獻。
他簡直就是神” Lino Tadros是第一個使用Delphi 2建立ActiveX的程式員,
并是以被Delphi總設計師Anders請到Delphi開發組負責ActiveX開發.
“Delphi 2上市後OLE和COM還是個神秘的技術。那時我對 ActiveX 控件的所有東西都非常感興趣。
我在Borland停車場等Anders,當時他正抽着一支香煙走出來,
我問我心目中的‘神’:能否給我一些指點如何用Delphi 2寫一個OCX控件?
他說:‘很有趣!為什麼不自己找出來并告訴我呢’。我們約好每天在停車場碰面(抽一支煙時間),
我向他請教一些問題并告訴他我的研究成果。我們每天碰面次數越來越多,都越來越有興趣實作該技術。
1995年夏天,我終于用 Delphi 2寫出了第一個ActiveX控件!”
“最有趣的事情發生在Delphi 3開發時期”, Lino 說,
“當我在自己電腦上運作編譯一個程式時遇到一個嚴重問題并且已經浪費了我大約4h,我隻好去找Anders和Chuck尋求幫助。
他們幾乎同時坐在電腦前并開始用TD32調試delphi32.exe。沒過幾分鐘,Anders指着螢幕上的CPU視窗中幾個二進制位說:
‘看!Chuck,這個比特好像不應該在這兒,這是一個記錄’。Chuck看了5秒鐘并證明了Anders的意見。
然後Anders看着我說:‘Lino,在從網絡安裝期間,其中一個包因某些原因向左偏離了一個位元組,删除它并重新安裝。’”
“這些家夥簡直就是‘神’!”Lino 可能就是是以自信心大減,而離開了Borland。