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