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