查爾斯(si)(si)·西(xi)(xi)蒙尼(Charles Simonyi)是(shi)(shi)“所見即(ji)所得”的(de)(de)(de)發明人(ren),這是(shi)(shi)微(wei)(wei)軟(ruan)公司著名(ming)的(de)(de)(de)Windows系統的(de)(de)(de)核心。查爾斯(si)(si)·西(xi)(xi)蒙尼還一手建立了微(wei)(wei)軟(ruan)的(de)(de)(de)程序(xu)員(yuan)管理體(ti)系,他在微(wei)(wei)軟(ruan)公司的(de)(de)(de)頭(tou)銜(xian)是(shi)(shi)首席架構師(Chief Architect),是(shi)(shi)微(wei)(wei)軟(ruan)最高智囊團的(de)(de)(de)核心。他是(shi)(shi)斯(si)(si)坦福大(da)學的(de)(de)(de)計算機(ji)博士(shi),他關于“匈牙(ya)利表示法(fa)”的(de)(de)(de)博士(shi)論文是(shi)(shi)每個(ge)Windows程序(xu)員(yuan)必須首先學習的(de)(de)(de)課程,Word,Excel等微(wei)(wei)軟(ruan)的(de)(de)(de)應用(yong)軟(ruan)件都(dou)是(shi)(shi)在他的(de)(de)(de)領導下開發成功,查爾斯(si)(si)·西(xi)(xi)蒙尼是(shi)(shi)軟(ruan)件史上的(de)(de)(de)傳奇人(ren)物。
父親的啟蒙
大部分天才程序員在童年時代都特別聰明但很內向,他們對成人世界的億萬(wan)富翁(weng)查(cha)爾斯·西蒙尼規則不感(gan)興趣(qu),而(er)是(shi)生活在(zai)自己(ji)封(feng)閉的(de)(de)小世界中(zhong),與科學(xue)技術為伴(ban),西(xi)蒙尼(ni)(ni)的(de)(de)童年(nian)卻有(you)些(xie)不同。西(xi)蒙尼(ni)(ni)的(de)(de)童年(nian)是(shi)在(zai)50年(nian)代末(mo)期(qi)的(de)(de)匈牙利布達佩斯度過的(de)(de),他(ta)的(de)(de)父親(qin)是(shi)一位電子工(gong)程學(xue)教(jiao)授(shou),父親(qin)一直鼓勵西(xi)蒙尼(ni)(ni)勇(yong)于表(biao)達自己(ji)的(de)(de)看法,與他(ta)人(ren)進行(xing)交流。作為電子工(gong)程學(xue)教(jiao)授(shou)的(de)(de)父親(qin)一直認為求(qiu)解問題是(shi)個人(ren)成(cheng)長中(zhong)不可或缺的(de)(de)一部分,這個觀點對西(xi)蒙尼(ni)(ni)的(de)(de)成(cheng)長產(chan)生了(le)很大的(de)(de)影響,因為計算機程序(xu)設(she)計的(de)(de)主要工(gong)作就是(shi)求(qiu)解問題。
西蒙(meng)尼(ni)(ni)在高中(zhong)階段已(yi)經開始(shi)接觸(chu)計(ji)(ji)算機(ji)和編程(cheng),得(de)益于父親的教(jiao)授身(shen)份,西蒙(meng)尼(ni)(ni)獲得(de)了給一位計(ji)(ji)算機(ji)工(gong)程(cheng)師當(dang)助手的機(ji)會,當(dang)時匈牙利國內一共(gong)只(zhi)有五臺計(ji)(ji)算機(ji)。
利用這個機會,西蒙尼在高中階段完成了自己的第一個程序和第一個專業程序。西蒙尼寫的第一個程序是填充幻方,讓每行、每列和對角線上的數之和均相等。而他的第一個專業程序則是為一種非常簡單、類似FORTRAN的高級語言寫的編譯器。西蒙尼把這個編譯器作為一項創新成果賣給(gei)了政府部(bu)門,并得到一大筆錢,不(bu)(bu)過他一分也沒花,因為不(bu)(bu)久之(zhi)后他就離開了匈牙利。
西(xi)蒙(meng)尼當時編程用的是(shi)古(gu)老(lao)的電子管計算機(ji),那是(shi)一臺俄制(zhi)計算機(ji),UralII。它只(zhi)有4K內存,支(zhi)持40位浮點和20位操作指令,并且只(zhi)能使用八進(jin)制(zhi)機(ji)器碼編程(沒有匯(hui)編器)。
高中畢業之(zhi)后,在布達佩斯的一(yi)(yi)(yi)次交(jiao)易(yi)會上,西(xi)蒙尼遇到了(le)(le)幾位從(cong)事(shi)計算機工(gong)作的丹麥人。在充分(fen)(fen)(fen)了(le)(le)解他們公司的新機器(qi)之(zhi)后,西(xi)蒙尼拜(bai)托其(qi)中一(yi)(yi)(yi)個(ge)人將自(zi)己編(bian)寫的小程(cheng)序(xu)帶到丹麥給(gei)他們的主(zhu)管看,該程(cheng)序(xu)能(neng)準確(que)反饋任(ren)意時刻(ke)機器(qi)正在分(fen)(fen)(fen)析(xi)長(chang)表(biao)達式的哪一(yi)(yi)(yi)部分(fen)(fen)(fen)。公司主(zhu)管很喜歡(huan)這個(ge)程(cheng)序(xu),并提供給(gei)西(xi)蒙尼一(yi)(yi)(yi)份(fen)工(gong)作。西(xi)蒙尼就(jiu)這樣(yang)離開了(le)(le)匈(xiong)牙利。
在丹麥編程一年半之后,西蒙尼用自己的工資,加上之前從政府部門獲得的獎金,前往加州大學伯克(ke)(ke)利分校(xiao)學習,專業是工程(cheng)數(shu)學。在校(xiao)期間(jian),西蒙尼(ni)進入伯克(ke)(ke)利計算機(ji)中心當程(cheng)序員,收入用來支(zhi)付學費。
在(zai)伯克利(li)上學(xue)時,西(xi)(xi)蒙(meng)(meng)尼寫了一(yi)個(ge)很不錯的SNOBOL編譯器(qi)。一(yi)位名叫(jiao)巴(ba)特勒(le)·蘭普(pu)(pu)森的計(ji)算機科學(xue)教授非常喜歡(huan)這個(ge)編譯器(qi),他還讓計(ji)算機科學(xue)專業(ye)的學(xue)生在(zai)課堂上使用(yong)它。后來,巴(ba)特勒(le)·蘭普(pu)(pu)森跟另(ling)外(wai)幾個(ge)教授一(yi)起(qi)創辦(ban)了伯克利(li)計(ji)算機公司,西(xi)(xi)蒙(meng)(meng)尼便在(zai)那家(jia)公司兼職工作。
1972年,從加州大學(xue)伯(bo)克利分校畢業后,西蒙尼(ni)進入斯坦福大學(xue)研究(jiu)(jiu)生班(ban)繼續深造,研究(jiu)(jiu)方向(xiang)是計(ji)算(suan)機科學(xue)。研究(jiu)(jiu)生期間(jian),西蒙尼(ni)繼續在施樂(Xerox)的(de)帕(pa)洛阿(a)爾托研究(jiu)(jiu)中心(xin)(PARC,Palo Alto Research Center)兼職工作。西蒙尼(ni)為(wei)Alto電腦編(bian)寫文本編(bian)輯(ji)器Bravo,這是第一個(ge)“所(suo)見即(ji)所(suo)得(What you see is What you get)”的(de)文字處理軟件(jian),Bravo改變了信息(xi)組織和(he)顯示的(de)方式(shi),為(wei)計(ji)算(suan)機人機交互界面的(de)發展做出重要(yao)貢獻。
1977年,西蒙尼(ni)以優異的(de)成績取得(de)了斯坦(tan)福大學的(de)博士(shi)學位。但他的(de)博士(shi)論文卻(que)不(bu)是(shi)關于“所見即所得(de)”,而是(shi)研究(jiu)如(ru)何(he)提高程(cheng)序(xu)員生產力,描述如(ru)何(he)采(cai)取有效方(fang)法(fa)組織(zhi)程(cheng)序(xu)員開發(fa)(fa)軟(ruan)件。軟(ruan)件開發(fa)(fa)的(de)過程(cheng)中最大的(de)問題是(shi)無(wu)(wu)限制的(de)延期,如(ru)何(he)在(zai)規定時間(jian)內完成開發(fa)(fa)是(shi)研究(jiu)的(de)主(zhu)要課題。西蒙尼(ni)認為在(zai)軟(ruan)件無(wu)(wu)法(fa)如(ru)期完成時加入更多(duo)的(de)程(cheng)序(xu)員只會增加管理負擔,不(bu)是(shi)解決問題的(de)正確方(fang)法(fa),關鍵是(shi)有效地使用程(cheng)序(xu)員,他提出了設置(zhi)程(cheng)序(xu)經理的(de)方(fang)法(fa)來解決這個問題。
1980年(nian),西(xi)蒙尼(ni)決定(ding)離(li)開(kai)施樂(le),尋找(zhao)(zhao)適合自己(ji)的(de)公司。他請鮑勃·麥特(te)卡爾夫(Bob Metcalfe)共進午餐來(lai)商討這件事情。鮑勃是(shi)以太網發(fa)明人(ren),3Com公司的(de)董(dong)事長和創始人(ren),比西(xi)蒙尼(ni)早兩年(nian)離(li)開(kai)施樂(le)。鮑勃給了西(xi)蒙尼(ni)一張名(ming)(ming)單,上面列(lie)有他應該去找(zhao)(zhao)的(de)人(ren)。名(ming)(ming)單上,比爾·蓋茨排在第一位。
1980年11月,西蒙尼與比爾·蓋茨(Bill Gates)和史蒂夫·鮑爾默(Steve Palmer)進行了深入的探討。蓋茨那時雖然非常年輕,但對計算機的(de)看法非(fei)常富有遠見(jian)。西(xi)蒙尼只和他們交談了(le)5分鐘,就決定(ding)要到微(wei)(wei)(wei)軟(ruan)公(gong)司(si)工作。他們在一(yi)起(qi)討論(lun)了(le)微(wei)(wei)(wei)軟(ruan)的(de)未(wei)來(lai)發展,蓋(gai)茨預見(jian)微(wei)(wei)(wei)軟(ruan)公(gong)司(si)將成為微(wei)(wei)(wei)型電腦軟(ruan)件世界性公(gong)司(si),將全面提供各種軟(ruan)件產(chan)品包括操作系統,應(ying)用程序,編程工具和消費軟(ruan)件。
1996年,蓋茨在拉(la)斯維加斯計算機經銷商博覽會(hui)(COMDEX)接受采訪時(shi)談到圖形用戶界(jie)面(mian)的問(wen)題,他說道(dao):“當西蒙尼(ni)加入公司時(shi),我(wo)就知道(dao)我(wo)們未來(lai)一定能(neng)夠成功開發出圖形用戶界(jie)面(mian),只是成功的時(shi)間未知。”
西蒙尼在微軟的第一個項目是主持Multiplan軟件的開發工作。Multiplan即Microsoft Excel的前身。西蒙尼采用新的設計準則,使Multiplan軟件能在多個運行平臺上工作。盡管后來DOS操作系統的迅速普及使得該軟件的可移植性意義相對不大,但是西蒙尼的創舉令蓋茨對他深為賞識。針(zhen)對微(wei)軟的(de)程(cheng)序員在變量命名過程(cheng)中(zhong)產生的(de)混亂(luan),西蒙(meng)尼(ni)創立了(le)匈牙利命名法(fa)(Hungariannotation)。匈牙利命名法(fa)是一(yi)種將對象(xiang)的(de)屬性(xing)、類型(xing)和描(miao)述都(dou)包含在變量名中(zhong)的(de)命名標準(zhun),后來成為(wei)軟件行(xing)業的(de)行(xing)業標準(zhun)之一(yi),保(bao)障了(le)微(wei)軟程(cheng)序的(de)質量和源代(dai)碼的(de)易(yi)讀性(xing)、可維護性(xing)。
西蒙(meng)尼(ni)還創建了“宏程序”(metaprogramme)和“宏程序員”(metaprogrammer)的(de)概念,目的(de)在(zai)于增強(qiang)軟件開發(fa)過(guo)程中(zhong)的(de)管理,但該成就(jiu)鮮(xian)為人知。
西蒙尼(ni)為微軟公司貢(gong)獻的不僅僅是圖(tu)形用戶界面,還有另(ling)外兩項財富。
第一項(xiang)是(shi)開發(fa)(fa)應(ying)用(yong)軟(ruan)(ruan)件(jian)的(de)經(jing)驗,當時在個人電腦(nao)領域(yu)有(you)四種類型軟(ruan)(ruan)件(jian):操作(zuo)系統,編程語言,應(ying)用(yong)軟(ruan)(ruan)件(jian),和工具程序(xu)。其中(zhong),蓋茨(ci)對應(ying)用(yong)軟(ruan)(ruan)件(jian)的(de)了解比較(jiao)少,這(zhe)方面(mian)主要(yao)是(shi)西蒙(meng)尼(ni)掌(zhang)控(kong)大局。西蒙(meng)尼(ni)計劃(hua)開發(fa)(fa)一系列應(ying)用(yong)軟(ruan)(ruan)件(jian)包(bao)括電子表格,文字處理,數據庫等,這(zhe)實際(ji)上是(shi)之后非常(chang)成功(gong)的(de)Office系列的(de)雛形。
第二項(xiang)財富是西蒙(meng)尼關于程(cheng)序員(yuan)生產力的(de)理(li)論,它被蓋(gai)茨(ci)稱為(wei)(wei)“軟(ruan)件工廠(chang)”理(li)論。西蒙(meng)尼將程(cheng)序經(jing)理(li)分成不同級別(bie),形成了管理(li)程(cheng)序員(yuan)的(de)金字塔(ta)式的(de)體系(xi)結構(gou)。蓋(gai)茨(ci)是最高程(cheng)序經(jing)理(li),然后(hou)(hou)是技術頂(ding)尖人物,微軟(ruan)稱為(wei)(wei)架構(gou)師(Architect),架構(gou)師之(zhi)下是程(cheng)序經(jing)理(li),最后(hou)(hou)才(cai)是程(cheng)序員(yuan)。但“軟(ruan)件工廠(chang)”的(de)理(li)論未能(neng)成功(gong),因為(wei)(wei)軟(ruan)件開發過程(cheng)中(zhong)有太多的(de)不定(ding)因素,不可能(neng)全部在設計規定(ding)之(zhi)中(zhong),軟(ruan)件質量還需要程(cheng)序員(yuan)的(de)才(cai)能(neng)。
西蒙(meng)尼(ni)于(yu)2002年創(chuang)辦了Intentional Software,目前擔任該公(gong)司主(zhu)席和CTO。這家公(gong)司的(de)宗旨是創(chuang)造能加速(su)軟件設計的(de)技術(shu),讓(rang)商(shang)務(wu)人士即(ji)使不熟悉(xi)電腦(nao)術(shu)語(yu),也能清(qing)楚(chu)地描述需求。
2005年,西蒙尼(ni)被福布斯雜(za)志列(lie)入十(shi)億美元超(chao)級(ji)富翁(weng)的名單并保(bao)持(chi)至今。
個人生活
西蒙尼現住在美國西雅圖地區,業余時間喜愛外出航海,他的游船“思嘉(jia)德號(Skat)”被列為(wei)美國(guo)第八大(da)(da)私家游(you)艇。西蒙尼至今仍堅(jian)持獨(du)身(shen)主義(yi),他認為(wei)現(xian)在的生活十分自由,并且(qie)喜歡從(cong)大(da)(da)海和太空中獲得靈(ling)感。
西蒙尼熱衷(zhong)于慈善事業,每年(nian)向各項科學基金和公益(yi)事業捐(juan)助一千萬(wan)至五(wu)千萬(wan)美(mei)元。例如,2004年(nian),他(ta)把獲(huo)得的(de)年(nian)度信息系統獎(Annual Infosys Award)的(de)獎金全(quan)部捐(juan)給了慈善機構。
在工作以外,西蒙尼表現出對航天旅行的極大興趣,并于2006年9月在(zai)俄羅斯星城(cheng)(俄羅斯加(jia)加(jia)林宇(yu)航員培訓(xun)中心)接(jie)受(shou)訓(xun)練。2007年4月(yue)7日,他與兩位俄羅斯宇(yu)航員一起搭載(zai)聯盟TMA-10飛船前往國際空(kong)(kong)間站,并于(yu)21日返回地球,成為(wei)第五名太空(kong)(kong)游(you)客(ke)。4月(yue)9日到達國際空(kong)(kong)間站的時候(hou),西蒙尼(ni)說(shuo):“黑暗(an)天空(kong)(kong)中的一切都令人驚嘆,非常非常激動人心。就像一個巨大的舞(wu)臺布景,有許多不可思議的歌(ge)劇或(huo)現代(dai)劇的奇(qi)妙演(yan)出(chu)。當我說(shuo)我徹底折服的時候(hou),就是(shi)現在(zai)這個樣(yang)子。” [3-4]
2009年3月,西蒙尼再次進行(xing)了太空(kong)旅行(xing),重(zhong)游國際(ji)空(kong)間站。