個人資料:
Delphi和.NET之父:安德斯·海爾斯(AndersHejlsberg)安德斯·海爾斯伯格(AndersHejlsberg,1960.11~),丹麥人,TurboPascal編譯器的主要作者,Delphi和.NET之父。
人物經歷:
雖然Anders沒有顯赫的學歷,無法獲得TurningAwards(即圖靈獎,信息科學界最高榮譽的獎項,等同於諾貝爾獎)。但是我認為Anders的實力和貢獻絕不輸於任何一位TurningAwards的得獎人。Anders是最好的信息實踐型人物,在2001年,他終於獲得了信息界最具權威的信息刊物Dr. Dobbs'Journal頒發的Excellent ProgrammingAwards,以表彰Anders為信息界做出的卓越貢獻。我想Anders應該是許多本身沒有高學歷或不是計算機信息科系出身的優秀程式設計師最好的效仿對象。
AndersHejlsberg這位不世出的軟體天才,是目前全世界最頂尖的軟體技術人員之一。論實現技術,Anders可能是目前的第一高手,因為他精通程式語言、編譯器技術、開發工具、Framework以及系統架構。我雖然知道許多軟體界重要的人物和好手,但是尚不知有任何人能像Anders一樣在這么多領域都能成為大家。下面是筆者整理出Anders Hejlsberg到目前為止重要的功績、貢獻以及獲頒的重要大獎:
" 和Philippe Kahn共同創辦Borland
" 開發出Turbo Pascal,當時首創的In-Memory Compiler震驚了全世界
"開發出全世界最暢銷的Pascal產品,Turbo Pascal(這是許多信息人員學習Pascal和DataStructure使用的經典產品)以及Borland Pascal。Turbo/Borland Pascal合計銷售超過了數百萬套。Dr.N. Wirth(Pascal語言的創始人員)也應該向Anders致敬,表達Anders對於Pascal語言的貢獻
" Anders使用彙編語言撰寫編譯器,其功力無人能出其右。創造出了全世界速度最快、品質也是一流的Pascal編譯器。在Anders離開了Borland之後,幾乎沒有人能夠修改Anders的編譯器
" 開發出影響深遠的Delphi這個偉大的RAD工具
" 開發出VJ++語言
" Microsoft .NET的Architect
" Microsoft頒授Microsoft Distinguish Engineer大獎
" 發明C#這個又將造成重大影響的語言
對於成千上萬的使用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的替代品、開發工具史上的奇蹟: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談論了已檢測異常(checked exceptions)的版本(version ability)問
題和規模擴展(scalability)問題。
◆ 在第三部分:委託、組件以及表面上的簡單性里,Anders談論了委託(delegates)以及C#對於組件的概念給予的頭等待遇。
◆ 在第四部分:版本,虛函式和覆寫里,Anders解釋了談論了為什麼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。