C++的背影 ——C++之父Bjarne Stroustrup印象(作者:左轻侯)
這篇文章是2002年寫的,雖然至今已將9年,我還是轉(zhuǎn)了過來,因為它確實能引發(fā)我們思考。一些問題并沒有因時間而得到解決。
原文如下:
熱愛C++的朋友請不要誤會,我并不是在暗示“C++已經(jīng)日薄西山”,或者任何類似的意思。從語義上來說,C++作為一門編程語言,當然不會有什么背影。事實上,我想說的是一個人的背影。因此這個題目顯得有點突兀,甚至嘩眾取寵。但是我想,在C++社群中,每一個人都會同意,有一個名字就是C++的象征。這個名字當然就是Bjarne Stroustrup。
Bjarne Stroustrup博士,1950年出生于丹麥,先后畢業(yè)于丹麥阿魯斯大學(xué)和英國劍橋大學(xué),AT&T大規(guī)模程序設(shè)計研究部門負責人,AT&T 貝爾實驗室和ACM成員。1979年,Stroustrup開始開發(fā)一種語言,當時稱為"C with Class",后來演化為C++。1998年,ANSI/ISO C++標準建立,同年,Stroustrup推出其經(jīng)典著作The C++ Programming Language的第三版。
2002年10月,Stroustrup首次訪問中國。
接觸IT界的時間越長,我就越明顯地發(fā)現(xiàn),那些曾經(jīng)在媒體上喧囂一時的話題,往往只是些無關(guān)緊要的事情,而真正有著深刻意義和影響的大事,卻很容易默默無聞。
Stroustrup的訪華,在技術(shù)圈子里引起了很大的轟動。多少年來,中國的程序員一直通過翻譯的著作這樣的間接渠道(往往滯后時間很長),在黑暗中辛苦摸索。直到互聯(lián)網(wǎng)普及之后,我們才能夠通過網(wǎng)絡(luò)在第一時間追蹤最新的技術(shù),與國外的同行進行技術(shù)交流,慢慢地、一步步地拉近與世界的距離。今天,我們終于有機會當面請教這位世界級的大師,直接聆聽這個領(lǐng)域中最權(quán)威的聲音。我們再也不用費盡心思去琢磨蹩腳翻譯背后的作者的思想,不用迷惑于那些經(jīng)常出自于一知半解的專家之口、不知道經(jīng)過多少次轉(zhuǎn)述、真?zhèn)坞y辨的驚人之論了。在得知Stroustrup訪華的消息之后,我就和一些朋友談到,這是一個開始,希望中國的技術(shù)界能夠契此機會,依靠大家的努力,與國際上的技術(shù)社群建立穩(wěn)定的交流機制,希望這件事標志著中國的程序員們不再是一個孤立、被國際社會遺忘的群體,真真正正成為世界大家庭的一員。
不過,除了主辦方做的一些宣傳之外,Stroustrup的到來,幾乎沒有見諸任何主流媒體,雖然Stroustrup的成就和對計算機界的影響力,足以與當代任何一個人相比,雖然這次事件的意義,遠遠超過許多國內(nèi)IT圈子里的雞毛蒜皮。
Stroustrup的這次訪華,行經(jīng)北京、西安、杭州、上海四個城市,時間長達半個月。在此期間,我有幸見過他三次。
第一次是他剛剛到達北京的第二天,華章的兩位朋友請他在北海后門的一家飯店吃飯,留了一個機會給我和他共進晚餐。我至今對北京的堵車痛恨無比,因為那天正好是周末,加上大雨,我竟然比預(yù)定的時間晚了一個多小時到達目的地。當我氣急敗壞地沖進那家飯店時,一眼就看到,在最靠里面的角落里,華章的兩位朋友中間,坐著一位老外。
他站起來,很有禮貌地和我握手。他本人和那張著名的照片(在C++社區(qū)中盡人皆知)上的樣子很象,有點禿頂,衣著隨便,與其說是一位來中國訪問的專家,不如說是一個在自己家中隨意進餐的藍領(lǐng)。我用英語結(jié)結(jié)巴巴地解釋了遲到的原因,他點著頭“哦”了好幾聲,一副“理解理解”的樣子,仿佛他也曾深受堵車之苦。雖然我們素昧平生,但對方的神情和簡單的幾句話,卻一下子拉近了我們的距離。這句話聽起來象書上的套話,但身臨其境的我,卻的確有這樣的感覺。
在這次見面之前,我曾經(jīng)想象過Stroustrup會是一個什么樣的人,會不會比較高傲。因為我知道,大凡超群絕倫的人物,往往在性格上都有一些偏執(zhí),何況以C++之父的身份?但是和我想象的完全相反,Stroustrup非常和善,具有技術(shù)人員特有的那種極佳的幽默感,很愛笑,甚至可以說有點天真。當我說了一句傾慕的話之后,他居然會象個孩子一樣不好意思。
飯店里很吵,其實不是談話的好地方。我的口語水平本來就不好,大學(xué)畢業(yè)后又荒廢了好幾年,但是面對Stroustrup,不知為什么,我居然勇氣百倍,用這種洋涇濱英語連說帶比劃,跟他說了一些事情。我告訴他,我翻譯過他的一個關(guān)于C++的風(fēng)格與技術(shù)的FAQ,而且正在閱讀他的名著《C++程序設(shè)計語言》;我告訴他,中國有很多C++程序員,大家期待他的到來已經(jīng)很久了;我告訴他,中國的程序員缺乏與國外社群的交流,希望我們能夠推動這種交流;我還為自己的口語水平而道歉(BS很理解地說英語也不是他的母語),希望能夠通過Email交流……
然后Stroustrup用一連串低沉的英語作為回答,但并不是那種嚴肅的學(xué)術(shù)性的發(fā)言,而是說得很隨意,也很投入,顯然他在打動別人之前先打動了自己。說得精彩之處,他會左顧右盼,然后和我們一起開懷大笑。
這是一家普通的飯店,菜也是很普通的菜。BS和北京街頭隨處可見的老外并沒有多少區(qū)別。說著說著,我突然有一種沖動,我想,這些坐在我們旁邊自顧自高談闊論的人,會不會知道角落里這個談笑風(fēng)生、自得其樂的老外,就是一位震鑠當代的大師,一位為人類做出過偉大貢獻的人?
“人和人,真的是很不一樣……”我想。
由于BS明天一早還要趕飛機去西安,所以我們相聚的時間相當有限。出了店門,我們揮手告別。我的收獲是BS在《C++程序設(shè)計語言》中文版上的簽名和一張合影。
回到家里,整個夜晚我都在房間走來走去。同租的室友問我:“你今天好象很激動啊?”
“當然,”我回答說,“因為我見到了這個領(lǐng)域的巔峰。”
Stroustrup的行程是先到北京安頓,然后飛往西安,按照西安-北京-杭州-上海這個順序進行正式訪問。在等待Stroustrup回北京的時候,我在csdn上看到了一個貼子:《Bjarne Stroustrup在西安的講座很令人失望》。點進去看,倒不是對講座的內(nèi)容失望,而是批判舉辦活動中的一些現(xiàn)象,這也正是我最擔心的。其實我知道舉辦方作出了很大努力,有些技術(shù)上的問題情有可原,對于這次事件本身來說,算不得什么大不了的事情。但是觸動我的是,文中說到Stroustrup演講完以后,聽眾們提問的情況。貼子的原文如下:
“……那位主持人在宣布開始提問后,就走了出去,之后混亂的場面就開始了,我坐在地板上聽了幾個問題,大多是問C++、C#、Java哪門語言更好之類的問題,這些人可能并不了解Bjarne Stroustrup,他本人早都說過不會對語言的優(yōu)劣進行評述,可這些人還是不停的問,甚至還有人問Bjarne Stroustrup,在計算機和自己的女朋友當中他更喜歡哪一個?是不是更喜歡計算機?這種問題,我不想作什么評論,好好的機會,就這樣......唉!!我可以明顯的看到Bjarne Stroustrup的臉上有不悅的表情。在看到前面的人越聚越多,并開始拼命的想搶到話筒的時候,我決定還是早點離開為妙,我從地上站起身來,拍拍身上的塵土,大踏步的離開了。”
我以前并沒有和Stroustrup打過交道,也不知道他對中國的印象如何。我曾猜想過,Stroustrup是如何看待中國的?是不是把我們當作一個遙遠的蠻荒之地來看待,就象我們看待非洲某個小國一樣?如果真是這樣,那也一點都不奇怪,畢竟中國在國際上的形象是一個IT市場,而不是一個IT領(lǐng)跑者。當然隨便進行這種猜測是不禮貌的,但是那也要我們能夠贏得人家的尊敬才行。當?shù)弥幸姷絊troustrup的機會時,我和朋友曾經(jīng)互相勉勵:“不要丟中國程序員的臉啊。”
一年多以前,我曾對朋友說過:“這幾年中國程序員的水平是長進了很多,以前是不知道自己水平有多差,現(xiàn)在是知道自己水平有多差了。”IT技術(shù)的核心在國外,我們開放國門的時候也并不長,水平比不上人家,是沒有辦法的事情。知道自己水平差以后,無非是兩點,一是要承認現(xiàn)實,二是要想辦法追趕。
進入計算機這個行業(yè)以來,我已經(jīng)見過了無數(shù)自以為或被人以為是高手的妄人,種種氣焰毋庸詳說,盡管在Stroustrup面前他們連學(xué)生的資格都遠遠夠不上。中國到底有多少人在使用C++?有多少人對C++有深入全面的了解(雖然我知道水平高的人肯定是有的)?我們的民族軟件產(chǎn)業(yè),到底是由一群什么人在支撐?
期待中的大師終于來了,期望中的face-to-face的交流場面也終于出現(xiàn)了,面對顯示器屏幕,我突然有一種莫名的孤獨蒼涼的感覺。
第二次見到Stroustrup,也是在飯店里,由我作東,北京的幾個程序員朋友和他進行一次小范圍的交流。該死的歷史又一次重演了,又是周末,又是大雨,我又一次遲到了。不同的是,當我再次氣急敗壞地沖進飯店時,看到了不同的場景。Stroustrup一個人坐在桌子的一邊,左右座位都是空的,其他人坐在他的對面,大家都不說話,只有他一個人在默默地吃東西。他好象已經(jīng)習(xí)慣了我的遲到,問了我一句:“You got lost?”
也許是受到了這種氣氛的影響,我坐在他旁邊的時候,一時居然不知道應(yīng)該說什么好。雖然我很想為他在西安的遭遇說幾句道歉的話,但又開不了口。
他拿起手頭的一份英文報紙,指著上面的Texas大學(xué)對我說:“A small world.”原來他已經(jīng)受聘擔任Texas大學(xué)的教授了。我問:“Then you leave AT&T?”他說AT&T仍然保留了他的位置。我還問過他關(guān)于Lippman加入微軟擔任VC.net首席架構(gòu)師的事情,與我的預(yù)料不同,他似乎對微軟的編譯器評價很高。
但是總的來說,這一次Stroustrup比上一次要沉默得多,很少發(fā)笑,大多數(shù)時候都在默默吃東西。我終于忍不住,問了一個也許不太禮貌的問題:“Do you feel lonely in China?”Stroustrup沒有聽明白“l(fā)onely”這個詞,當他弄明白了之后,很嚴肅地說:“No.”他指指對面,又指指外面,說(當然是用英文):“他們,還有很多人,他們都給了我很好的待遇。”“希望中國能給您留下一個好印象。”“現(xiàn)在就已經(jīng)是這樣了。”但愿如此。
吃完飯后,Stroustrup去賓館接受一家媒體的采訪。我和幾個朋友繼續(xù)聊天。雖然他們和我一樣,因為口語水平的限制,沒有能和Stroustrup暢所欲言,但是興奮之情都溢于言表。有一位還嚷嚷著要去報考Stroustrup的研究生,雖然后者說他接受Texas大學(xué)的聘用以后,已經(jīng)收到了數(shù)以千計的application。
在白石橋的人行天橋上,望著黑暗的天空下來來往往的車流,我對一個朋友說,我為Stroustrup感到不平。象比爾·蓋茨、拉里·埃利森這種人訪華,都會享受國賓級的待遇,媒體上也會鋪天蓋地地宣傳。Stroustrup無論從成就還是從影響力上來說,都和他們是一個層次的,為什么他的中國之行會這樣樸素、低調(diào)、默默無聞?對方略作思考后回答,因為蓋茨和埃利森都身為大商業(yè)公司的首腦,可以直接影響中國的市場和政府。而Stroustrup雖然發(fā)明了C++和實際掌握著C++語言的標準,但他對業(yè)界的影響并不那么直接,他本人也不是有錢人。我說:“這個我也知道,但我還是為他感到不平。”
Stroustrup在1979年發(fā)明C++語言,至今已經(jīng)二十多年,一直在為C++的完善、發(fā)展和標準化而奮斗。在在Stroustrup的理想中(也是他一直在不懈提倡的),C++應(yīng)該是一種中立的、開放的、不依賴于任何平臺的、不被任何一家商業(yè)公司所操縱的語言,它的標準掌握在ISO C++標準委員會中。在這一點上,C++和Delphi與Java這樣的語言有著本質(zhì)的區(qū)別。
雖然C++出現(xiàn)得很早,但是它的ISO標準經(jīng)過千錘百煉,遲至1998年才正式出臺。Stroustrup不滿商業(yè)公司為了自己的利益,把C++變成各種亂七八糟的方言,花了很多心血在C++的標準化工作上面。在來自世界各地的志愿者們的共同努力下,新的C++標準和標準庫都已經(jīng)臻于完美。從這個意義上來說,Stroustrup創(chuàng)立的不僅僅是一種語言,而是一種文化。Stroustrup成功了(C++也許是當前使用最廣泛的通用工業(yè)語言),但他仍然有很多事情要做。Stroustrup的這次中國之行,可以看作是他和他的理念與中國軟件界的一次正面接觸。從我看到的情況來說,至少中國軟件界的氣氛,與Stroustrup渾身上下的氣質(zhì)并不那么相投。
網(wǎng)上有一個所謂IEEE對Stroustrup專訪的文章,很明顯是一個愚人節(jié)笑話,內(nèi)容是Stroustrup宣揚他故意將C++設(shè)計得難以學(xué)習(xí),是為了提高程序員的薪水。不知哪位好事之徒把它譯成了中文,導(dǎo)致了我?guī)缀踉诔Hサ拿恳粋€論壇(包括非技術(shù)性的論壇)上都發(fā)現(xiàn)了這個東西的轉(zhuǎn)貼(有時還是一而再再而三的轉(zhuǎn)貼),底下跟著一大堆煞有介事的評論。在后來的通信中,我把這個事告訴了Stroustrup,他顯然當成了笑話來聽,回答說:“It doesn't matter as long as they don't believe it.”
我該怎么回答他,告訴他其實大家都信以為真?
最后一次見到Stroustrup,是在北京大學(xué)的一個C++語言研討會上。前一天在清華的演講我沒有去,據(jù)說相當成功。北大的這個研討會是內(nèi)部性質(zhì)的,規(guī)模不大,實行憑證入場的方式,應(yīng)該是保證了參與者的質(zhì)量。與會的還有幾位重量級的人物,包括《C++程序設(shè)計語言》的譯者、北大的裘宗燕教授,另外慕名而來的估計也不少。
我無論如何不能再遲到了,提前一個小時到了會場。我剛到,就陸陸續(xù)續(xù)有人進來了,一邊互相打聽著“C++之父的研討會是不是在這里”。很多人帶著Stroustrup著作的各種版本,估計是來尋求簽名的。終于,Stroustrup在華章公司和北大計科系的人的簇擁下出現(xiàn)了,今天他看起來精神不錯。
首先是Stroustrup做了一個題為《Speak C++ Like a Native》(將C++作為一種母語)的演講,概要地說明了C++的設(shè)計思想和幾種編程風(fēng)格。內(nèi)容比較基礎(chǔ),而且在西安交大和清華做的演講也是這個,我沒有太在意。接下來是由舉辦方邀請的人進行比較正式的發(fā)言,裘宗燕第一,熊節(jié)第二,我排在第三個。我提的是一個關(guān)于通過C++語言開發(fā)跨平臺程序的問題,詢問C++為什么沒有一個象Delphi那樣的跨越平臺的framework,以及現(xiàn)有的標準庫是否有往這方面發(fā)展的意向。這個問題發(fā)揮的彈性很大,可以詳細討論,也可以幾句話帶過去。但是Stroustrup象回答前兩個問題一樣,非常詳盡和耐心地做了回答,從C++的目標和定位說起,談到標準庫和商業(yè)公司的專有庫的區(qū)別,談到因為資金問題標準庫不太可能發(fā)展成為包羅萬象的framework,最后建議我可以嘗試一些比較優(yōu)秀的第三方庫。在說話的時候,Stroustrup一直注視著我的眼睛,不斷打著手勢,認真得讓我有愧疚的感覺,因為我的理解往往跟不上他的言鋒。
最精彩的是自由答問時間,很多人都已經(jīng)躍躍欲試了。我已經(jīng)無法詳細地回憶起當時的具體情形,總之發(fā)言非常踴躍。在我的印象中,似乎沒有出現(xiàn)特別有創(chuàng)意的問題(當然在這種即興發(fā)言中,很難出現(xiàn)這種好問題),不過大多數(shù)的問題都有相當?shù)乃健F鋵嵅挥寐犓麄儐柕膬?nèi)容,只需要看到那一張張神情專注而略顯緊張的年輕的臉,就能夠讓人產(chǎn)生一種熟悉和親切的感覺……毋庸諱言的是,其實有不少問題純屬浪費時間,因為類似的問題Stroustrup早已經(jīng)回答過許多次了,在網(wǎng)上稍微查找一下就能找到答案。這種情況應(yīng)該可以從一個側(cè)面說明,中國程序員作為一個整體,與國外的交流還是太少了,仍然缺乏放眼世界的胸襟和眼光。
“Stroustrup真可憐,被人一遍又一遍地問這些同樣的問題,”負責陪同Stroustrup的一位朋友忍不住嘀咕說,很容易想象,這種場面他已經(jīng)見過好多回了。盡管如此,Stroustrup仍然不厭其煩地解答著每一個問題,認真得讓人想起近代歷史上的傳教士,這份耐心真是讓我佩服無己。很顯然,今天他興致很高,特別是遇到了good question的時候,發(fā)揮的時間遠遠超過了預(yù)定的期限。幾個小時的熱烈討論,讓Stroustrup已經(jīng)略顯疲態(tài),后來不得不背靠著墻壁說話(不知為何,他就是不愿意規(guī)規(guī)矩矩地坐著,整個自由答問期間都是采用站立的姿勢,甚至常常用一只腳踩在椅子上)。但是當主持者向他示意時間已到,可以結(jié)束時,他卻搖手反對,表示要繼續(xù)討論下去。現(xiàn)場發(fā)出了一片善意的笑聲……
晚飯由北大的一位副教授做東,作陪的有華章的幾位編輯,C-View的孟巖和王昕,科泰的陳榕。陳榕在微軟工作過多年,英語很好,和Stroustrup聊了很長時間,談的是業(yè)界的一些事情,基本上沒有涉及技術(shù)問題。
曲終人散,我們走出北大的校門,Stroustrup將在第二天飛往上海。臨上車之前,他很嚴肅地和我們中的每一個人握手道別,并表示感謝。不知中國之行帶給他的是什么?但我知道,他帶給我們有很多,包括以后建立的聯(lián)系。在北京的夜色中,這個年過五十、頭發(fā)已經(jīng)稍微有些花白的丹麥人轉(zhuǎn)身離去,留下一個沉默的背影。
再見,Stroustrup
總結(jié)
以上是生活随笔為你收集整理的C++的背影 ——C++之父Bjarne Stroustrup印象(作者:左轻侯)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 123十进制转十六
- 下一篇: 艾宾浩斯记忆法和遗忘曲线