天天看點

C++ 的背影{C++之父Bjarne Stroustrup印象 左輕侯}

            C ++ 的 背 影

                   ——C++之父Bjarne Stroustrup印象 左輕侯 2002.11.4   熱愛C++的朋友請不要誤會,我并不是在暗示“C++已經日薄西山”,或者任何類似的意思。從語義上來說,C++作為一門程式設計語言,當然不會有什麼背影。事實上,我想說的是一個人的背影。是以這個題目顯得有點突兀,甚至嘩衆取寵。但是我想,在C++社群中,每一個人都會同意,有一個名字就是C++的象征。這個名字當然就是Bjarne Stroustrup。

  Bjarne Stroustrup博士,1950年出生于丹麥,先後畢業于丹麥阿魯斯大學和英國劍橋大學,AT&T大規模程式設計研究部門負責人,AT&T 貝爾實驗室和ACM成員。1979年,Stroustrup開始開發一種語言,當時稱為"C with Class",後來演化為C++。1998年,ANSI/ISO C++标準建立,同年,Stroustrup推出其經典著作The C++ Programming Language的第三版。

  2002年10月,Stroustrup首次通路中國。

  接觸IT界的時間越長,我就越明顯地發現,那些曾經在媒體上喧嚣一時的話題,往往隻是些無關緊要的事情,而真正有着深刻意義和影響的大事,卻很容易默默無聞。

  Stroustrup的訪華,在技術圈子裡引起了很大的轟動。多少年來,中國的程式員一直通過翻譯的著作這樣的間接管道(往往滞後時間很長),在黑暗中辛苦摸索。直到網際網路普及之後,我們才能夠通過網絡在第一時間追蹤最新的技術,與國外的同行進行技術交流,慢慢地、一步步地拉近與世界的距離。今天,我們終于有機會當面請教這位世界級的大師,直接聆聽這個領域中最權威的聲音。我們再也不用費盡心思去琢磨蹩腳翻譯背後的作者的思想,不用迷惑于那些經常出自于一知半解的專家之口、不知道經過多少次轉述、真僞難辨的驚人之論了。在得知Stroustrup訪華的消息之後,我就和一些朋友談到,這是一個開始,希望中國的技術界能夠契此機會,依靠大家的努力,與國際上的技術社群建立穩定的交流機制,希望這件事标志着中國的程式員們不再是一個孤立、被國際社會遺忘的群體,真真正正成為世界大家庭的一員。

  不過,除了主辦方做的一些宣傳之外,Stroustrup的到來,幾乎沒有見諸于任何主流媒體,雖然Stroustrup的成就和對計算機界的影響力,足以與當代任何一個人相比,雖然這次事件的意義,遠遠超過許多國内IT圈子裡的雞毛蒜皮。

  Stroustrup的這次訪華,行經北京、西安、杭州、上海四個城市,時間長達半個月。在此期間,我有幸見過他三次。

  第一次是他剛剛到達北京的第二天,華章的兩位朋友請他在北海後門的一家飯店吃飯,留了一個機會給我和他共進晚餐。我至今對北京的堵車痛恨無比,因為那天正好是周末,加上大雨,我竟然比預定的時間晚了一個多小時到達目的地。當我氣急敗壞地沖進那家飯店時,一眼就看到,在最靠裡面的角落裡,華章的兩位朋友中間,坐着一位老外。

  他站起來,很有禮貌地和我握手。他本人和那張著名的照片(在C++社群中盡人皆知)上的樣子很象,有點秃頂,衣着随便,與其說是一位來中國通路的專家,不如說是一個在自己家中随意進餐的藍領。我用英語結結巴巴地解釋了遲到的原因,他點着頭“哦”了好幾聲,一副“了解了解”的樣子,仿佛他也曾深受堵車之苦。雖然我們素昧平生,但對方的神情和簡單的幾句話,卻一下子拉近了我們的距離。這句話聽起來象書上的套話,但身臨其境的我,卻的确有這樣的感覺。

  在這次見面之前,我曾經想象過Stroustrup會是一個什麼樣的人,會不會比較高傲。因為我知道,大凡超群絕倫的人物,往往在性格上都有一些偏執,何況以C++之父的身份?但是和我想象的完全相反,Stroustrup非常和善,具有技術人員特有的那種極佳的幽默感,很愛笑,甚至可以說有點天真。當我說了一句傾慕的話之後,他居然會象個孩子一樣不好意思。

  飯店裡很吵,其實不是談話的好地方。我的口語水準本來就不好,大學畢業後又荒廢了好幾年,但是面對Stroustrup,不知為什麼,我居然勇氣百倍,用這種洋泾濱英語連說帶比劃,跟他說了一些事情。我告訴他,我翻譯過他的一個關于C++的風格與技術的FAQ,而且正在閱讀他的名著《C++程式設計語言》;我告訴他,中國有很多C++程式員,大家期待他的到來已經很久了;我告訴他,中國的程式員缺乏與國外社群的交流,希望我們能夠推動這種交流;我還為自己的口語水準而道歉(BS很了解地回答英語也不是他的母語),希望能夠通過Email交流……

  然後Stroustrup用一連串低沉的英語作為回答,但并不是那種嚴肅的學術性的發言,而是說得很随意,也很投入,顯然他在打動别人之前先打動了自己。說得精彩之處,他會左顧右盼,然後和我們一起開懷大笑。

  這是一家普通的飯店,菜也是很普通的菜。BS和北京街頭随處可見的老外并沒有多少差別。說着說着,我突然有一種沖動,我想,這些坐在我們旁邊自顧自高談闊論的人,會不會知道角落裡這個談笑風生、自得其樂的老外,就是一位震铄當代的大師,一位為人類做出過偉大貢獻的人?

  “人和人,真的是很不一樣……”我想。

  由于BS明天一早還要趕飛機去西安,是以我們相聚的時間相當有限。出了店門,我們揮手告别。我的收獲是BS在《C++程式設計語言》中文版上的簽名和一張合影。

  回到家裡,整個夜晚我都在房間走來走去。同租的室友問我:“你今天好象很激動啊?”

  “當然,”我回答說,“因為我見到了這個領域的巅峰。”

  Stroustrup的行程是先到北京安頓,然後飛往西安,按照西安-北京-杭州-上海這個順序進行正式通路。在等待Stroustrup回北京的時候,我在csdn上看到了一個貼子:《Bjarne Stroustrup在西安的講座很令人失望》。點進去看,倒不是對講座的内容失望,而是批判舉辦活動中的一些現象,這也正是我最擔心的。其實我知道舉辦方作出了很大努力,有些技術上的問題情有可原,對于這次事件本身來說,算不得什麼大不了的事情。但是觸動我的是,文中說到Stroustrup演講完以後,聽衆們提問的情況。貼子的原文如下:

  “……那位主持人在宣布開始提問後,就走了出去,之後混亂的場面就開始了,我坐在地闆上聽了幾個問題,大多是問C++、C#、Java哪門語言更好之類的問題,這些人可能并不了解Bjarne Stroustrup,他本人早都說過不會對語言的優劣進行評述,可這些人還是不停的問,甚至還有人問Bjarne Stroustrup,在計算機和自己的女朋友當中他更喜歡哪一個?是不是更喜歡計算機?這種問題,我不想作什麼評論,好好的機會,就這樣......唉!!我可以明顯的看到Bjarne Stroustrup的臉上有不悅的表情。在看到前面的人越聚越多,并開始拼命的想搶到話筒的時候,我決定還是早點離開為妙,我從地上站起身來,拍拍身上的塵土,大踏步的離開了。”

  我以前并沒有和Stroustrup打過交道,也不知道他對中國的印象如何。我曾猜想過,Stroustrup是如何看待中國的?是不是把我們當作一個遙遠的蠻荒之地來看待,就象我們看待非洲某個小國一樣?如果真是這樣,那也一點都不奇怪,畢竟中國在國際上的形象是一個IT市場,而不是一個IT領跑者。當然随便進行這種猜測是不禮貌的,但是那也要我們能夠赢得人家的尊敬才行。當得知有見到Stroustrup的機會時,我和朋友曾經互相勉勵:“不要丢中國程式員的臉啊。”

  一年多以前,我曾對朋友說過:“這幾年中國程式員的水準是長進了很多,以前是不知道自己水準有多差,現在是知道自己水準有多差了。”IT技術的核心在國外,我們開放國門的時候也并不長,水準比不上人家,是沒有辦法的事情。知道自己水準差以後,無非是兩點,一是要承認現實,二是要想辦法追趕。

  進入計算機這個行業以來,我已經見過了無數自以為或被人以為是高手的妄人,種種氣焰無庸詳說,盡管在Stroustrup面前他們連學生的資格都遠遠夠不上。中國到底有多少人在使用C++?有多少人對C++有深入全面的了解(雖然我知道水準高的人肯定是有的)?我們的民族軟體産業,到底是由一群什麼人在支撐?

  期待中的大師終于來了,期望中的face-to-face的交流場面也終于出現了,面對顯示器螢幕,我突然有一種莫名的孤獨蒼涼的感覺。

  第二次見到Stroustrup,也是在飯店裡,由我作東,北京的幾個程式員朋友和他進行一次小範圍的交流。該死的曆史又一次重演了,又是周末,又是大雨,我又一次遲到了。不同的是,當我再次氣急敗壞地沖進飯店時,看到了不同的場景。Stroustrup一個人坐在桌子的一邊,左右座位都是空的,其他人坐在他的對面,大家都不說話,隻有他一個人在默默地吃東西。他好象已經習慣了我的遲到,問了我一句:“You got lost?”

  也許是受到了這種氣氛的影響,我坐在他旁邊的時候,一時居然不知道應該說什麼好。雖然我很想為他在西安的遭遇說幾句道歉的話,但又開不了口。

  他拿起手頭的一份英文報紙,指着上面的Texas大學對我說:“A small world.”原來他已經受聘擔任Texas大學的教授了。我問:“Then you leave AT&T?”他說AT&T仍然保留了他的位置。我還問過他關于Lippman加入微軟擔任VC.net首席架構師的事情,與我的預料不同,他似乎對微軟的編譯器評價很高。

  但是總的來說,這一次Stroustrup比上一次要沉默得多,很少發笑,大多數時候都在默默吃東西。我終于忍不住,問了一個也許不太禮貌的問題:“Do you feel lonely in China?”Stroustrup沒有聽明白“lonely”這個詞,當他弄明白了之後,很嚴肅地說:“No.”他指指對面,又指指外面,說(當然是用英文):“他們,還有很多人,他們都給了我很好的待遇。”“希望中國能給您留下一個好印象。”“現在就已經是這樣了。”但願如此。

  吃完飯後,Stroustrup去飯店接受一家媒體的采訪。我和幾個朋友繼續聊天。雖然他們和我一樣,因為口語水準的限制,沒有能和Stroustrup暢所欲言,但是興奮之情都溢于言表。有一位還嚷嚷着要去報考Stroustrup的研究所學生,雖然後者說他已經收到了數以千計的application。

  在白石橋的人行天橋上,望着黑暗的天空下來來往往的車流,我對一個朋友說,我為Stroustrup感到不平。象比爾·蓋茨、拉裡·埃利森這種人訪華,都會享受國賓級的待遇,媒體上也會鋪天蓋地地宣傳。Stroustrup無論從成就還是從影響力上來說,都和他們是一個層次的,為什麼他的中國之行會這樣樸素、低調、默默無聞?對方略作思考後回答,因為蓋茨和埃利森都身為大商業公司的首腦,可以直接影響中國的市場和政府。而Stroustrup雖然發明了C++和實際掌握着C++語言的标準,但他對業界的影響并不那麼直接,他本人也不是有錢人。我說:“這個我也知道,但我還是為他感到不平。”

  Stroustrup在1979年發明C++語言,至今已經二十多年,一直在為C++的完善、發展和标準化而奮鬥。在在Stroustrup的理想中(也是他一直在不懈提倡的),C++應該是一種中立的、開放的、不依賴于任何平台的、不被任何一家商業公司所操縱的語言,它的标準掌握在ISO C++标準委員會中。在這一點上,C++和Delphi與Java這樣的語言有着本質的差別。

  雖然C++出現得很早,但是它的ISO标準經過千錘百煉,遲至1998年才正式出台。Stroustrup不滿商業公司為了自己的利益,把C++變成各種亂七八糟的方言,花了很多心血在C++的标準化工作上面。在來自世界各地的志願者們的共同努力下,新的C++标準和标準庫都已經臻于完美。從這個意義上來說,Stroustrup創立的不僅僅是一種語言,而是一種文化。Stroustrup成功了(C++也許是目前使用最廣泛的通用工業語言),但他仍然有很多事情要做。Stroustrup的這次中國之行,可以看作是他和他的理念與中國軟體界的一次正面接觸。從我看到的情況來說,至少中國軟體界的氣氛,與Stroustrup渾身上下的氣質并不那麼相投。

  網上有一個所謂IEEE對Stroustrup專訪的文章,很明顯是一個愚人節笑話,内容是Stroustrup宣揚他故意将C++設計得難以學習,是為了提高程式員的薪水。不知哪位好事之徒把它譯成了中文,導緻了我幾乎在常去的每一個論壇(包括非技術性的論壇)上都發現了這個東西的轉貼(有時還是一而再再而三的轉貼),底下跟着一大堆煞有介事的評論。在後來的通信中,我把這個事告訴了Stroustrup,他顯然當成了笑話來聽,回答說:“It doesn't matter as long as they don't believe it.”

  我該怎麼回答他,告訴他其實大家都信以為真?

  最後一次見到Stroustrup,是在北京大學的一個C++語言研讨會上。前一天在清華的演講我沒有去,據說相當成功。北大的這個研讨會是内部性質的,規模不大,實行憑證入場的方式,應該是保證了參與者的品質。與會的還有幾位重量級的人物,包括《C++程式設計語言》的譯者、北大的裘宗燕教授,另外慕名而來的估計也不少。

  我無論如何不能再遲到了,提前一個小時到了會場。我剛到,就陸陸續續有人進來了,一邊互相打聽着“C++之父的研讨會是不是在這裡”。很多人帶着Stroustrup著作的各種版本,估計是來尋求簽名的。終于,Stroustrup在華章公司和北大計科系的人的簇擁下出現了,今天他看起來精神不錯。

  首先是Stroustrup做了一個題為《Speak C++ Like a Native》(将C++作為一種母語)的演講,概要地說明了C++的設計思想和幾種程式設計風格。内容比較基礎,而且在西安交大和清華做的演講也是這個,我沒有太在意。接下來是由舉辦方邀請的人進行比較正式的發言,裘宗燕第一,熊節第二,我排在第三個。我提的是一個關于通過C++語言開發跨平台程式的問題,詢問C++為什麼沒有一個象Delphi那樣的跨越平台的framework,以及将現有的标準庫是否有往這方面發展的意向。這個問題發揮的彈性很大,可以詳細讨論,也可以幾句話帶過去。但是Stroustrup象回答前兩個問題一樣,非常詳盡和耐心地做了回答,從C++的目标和定位說起,談到标準庫和商業公司的專有庫的差別,談到因為資金問題标準庫不太可能發展成為包羅萬象的framework,最後建議我可以嘗試一些比較優秀的第三方庫。在說話的時候,Stroustrup一直注視着我的眼睛,不斷打着手勢,認真得讓我有愧疚的感覺,因為我的了解往往跟不上他的言鋒。

  最精彩的是自由答問時間,很多人都已經躍躍欲試了。我已經無法詳細地回憶起當時的具體情形,總之發言非常踴躍。在我的印象中,似乎沒有出現特别有創意的問題(當然在這種即興發言中,很難出現這種好問題),不過大多數的問題都有相當的水準。其實不用聽他們問的内容,隻需要看到那一張張神情專注而略顯緊張的年輕的臉,就能夠讓人産生一種熟悉而親切的感覺……毋庸諱言的是,其實有不少問題純屬浪費時間,因為類似的問題Stroustrup早已經回答過許多次了,在網上稍微查找一下就能找到答案。這種情況應該可以從一個側面說明,中國程式員作為一個整體,與國外的交流還是太少了,仍然缺乏放眼世界的胸襟和眼光。

  “Stroustrup真可憐,被人一遍又一遍地問這些同樣的問題,”負責陪同Stroustrup的一位朋友忍不住嘀咕說,很容易想象,這種場面他已經見過好多回了。盡管如此,Stroustrup仍然不厭其煩地解答着每一個問題,認真得讓人想起近代曆史上的傳教士,這份耐心真是讓我佩服無己。很顯然,今天他興緻很高,特别是遇到了good question的時候,發揮的時間遠遠超過了預定的期限。幾個小時的熱烈讨論,讓Stroustrup已經略顯疲态,後來不得不背靠着牆壁說話(不知為何,他就是不願意規規矩矩地坐着,整個自由答問期間都是采用站立的姿勢,甚至常常用一隻腳踩在椅子上)。但是當主持者向他示意時間已到,可以結束時,他卻搖手反對,表示要繼續讨論下去。現場發出了一片善意的笑聲……

  晚飯由北大的一位副教授做東,作陪的有華章的幾位編輯,C-View的孟岩和王昕,科泰的陳榕。陳榕在微軟工作過多年,英語很好,和Stroustrup聊了很長時間,談的是業界的一些事情,基本上沒有涉及技術問題。

  曲終人散,我們走出北大的校門,Stroustrup将在第二天飛往上海。臨上車之前,他很嚴肅地和我們中的每一個人握手道别,并表示感謝。不知中國之行帶給他的是什麼?但我知道,他帶給我們有很多,包括以後建立的聯系。在北京的夜色中,這個年過五十、頭發已經稍微有些花白的丹麥人轉身離去,留下一個沉默的背影。

  

  再見,Stroustrup。

繼續閱讀