C++的背影 ——C++之父Bjarne Stroustrup印象(作者:左轻侯)
這篇文章是2002年寫的,雖然至今已將9年,我還是轉了過來,因為它確實能引發我們思考。一些問題并沒有因時間而得到解決。
原文如下:
熱愛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++程序設計語言》中文版上的簽名和一張合影。
回到家里,整個夜晚我都在房間走來走去。同租的室友問我:“你今天好象很激動啊?”
“當然,”我回答說,“因為我見到了這個領域的巔峰?!?br />
Stroustrup的行程是先到北京安頓,然后飛往西安,按照西安-北京-杭州-上海這個順序進行正式訪問。在等待Stroustrup回北京的時候,我在csdn上看到了一個貼子:《Bjarne Stroustrup在西安的講座很令人失望》。點進去看,倒不是對講座的內容失望,而是批判舉辦活動中的一些現象,這也正是我最擔心的。其實我知道舉辦方作出了很大努力,有些技術上的問題情有可原,對于這次事件本身來說,算不得什么大不了的事情。但是觸動我的是,文中說到Stroustrup演講完以后,聽眾們提問的情況。貼子的原文如下:
“……那位主持人在宣布開始提問后,就走了出去,之后混亂的場面就開始了,我坐在地板上聽了幾個問題,大多是問C++、C#、Java哪門語言更好之類的問題,這些人可能并不了解Bjarne Stroustrup,他本人早都說過不會對語言的優劣進行評述,可這些人還是不停的問,甚至還有人問Bjarne Stroustrup,在計算機和自己的女朋友當中他更喜歡哪一個?是不是更喜歡計算機?這種問題,我不想作什么評論,好好的機會,就這樣......唉!!我可以明顯的看到Bjarne Stroustrup的臉上有不悅的表情。在看到前面的人越聚越多,并開始拼命的想搶到話筒的時候,我決定還是早點離開為妙,我從地上站起身來,拍拍身上的塵土,大踏步的離開了。”
我以前并沒有和Stroustrup打過交道,也不知道他對中國的印象如何。我曾猜想過,Stroustrup是如何看待中國的?是不是把我們當作一個遙遠的蠻荒之地來看待,就象我們看待非洲某個小國一樣?如果真是這樣,那也一點都不奇怪,畢竟中國在國際上的形象是一個IT市場,而不是一個IT領跑者。當然隨便進行這種猜測是不禮貌的,但是那也要我們能夠贏得人家的尊敬才行。當得知有見到Stroustrup的機會時,我和朋友曾經互相勉勵:“不要丟中國程序員的臉啊?!?br /> 一年多以前,我曾對朋友說過:“這幾年中國程序員的水平是長進了很多,以前是不知道自己水平有多差,現在是知道自己水平有多差了?!盜T技術的核心在國外,我們開放國門的時候也并不長,水平比不上人家,是沒有辦法的事情。知道自己水平差以后,無非是兩點,一是要承認現實,二是要想辦法追趕。
進入計算機這個行業以來,我已經見過了無數自以為或被人以為是高手的妄人,種種氣焰毋庸詳說,盡管在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.”他指指對面,又指指外面,說(當然是用英文):“他們,還有很多人,他們都給了我很好的待遇?!薄跋M袊芙o您留下一個好印象。”“現在就已經是這樣了?!钡溉绱恕?br /> 吃完飯后,Stroustrup去賓館接受一家媒體的采訪。我和幾個朋友繼續聊天。雖然他們和我一樣,因為口語水平的限制,沒有能和Stroustrup暢所欲言,但是興奮之情都溢于言表。有一位還嚷嚷著要去報考Stroustrup的研究生,雖然后者說他接受Texas大學的聘用以后,已經收到了數以千計的application。
在白石橋的人行天橋上,望著黑暗的天空下來來往往的車流,我對一個朋友說,我為Stroustrup感到不平。象比爾·蓋茨、拉里·埃利森這種人訪華,都會享受國賓級的待遇,媒體上也會鋪天蓋地地宣傳。Stroustrup無論從成就還是從影響力上來說,都和他們是一個層次的,為什么他的中國之行會這樣樸素、低調、默默無聞?對方略作思考后回答,因為蓋茨和埃利森都身為大商業公司的首腦,可以直接影響中國的市場和政府。而Stroustrup雖然發明了C++和實際掌握著C++語言的標準,但他對業界的影響并不那么直接,他本人也不是有錢人。我說:“這個我也知道,但我還是為他感到不平?!?br />
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
總結
以上是生活随笔為你收集整理的C++的背影 ——C++之父Bjarne Stroustrup印象(作者:左轻侯)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 123十进制转十六
- 下一篇: C++11新特性——std::bind参