C++語言的創立者,斯坦.利普曼(Stan?Lippman)?9月17日參加了在北京召開的微軟技術大會Tech.Ed2004并做了"The?C++?Binding,?Integrating?a?Static?and?dynamic?"的主題演講。利普曼和天極網記者暢談了對“中國程序員的30歲現象”的看法,對C++、NET、面向對象等新技術發表了自己的看法。
天極網:做為C++大師,你認為一個優秀的程序員應該具備什么素質?
Lippman:不僅是C++,對所有的語言而言,我認為一個好的程序員應該具備獨立性,而且要不懼困難,你必須心甘情愿的面對失敗。所謂的獨立性就是因為有時你要能獨處,你必須相信你能處理你明白的事情。我認為一個好的程序員要具備創造性,而管理人員要確保程序員有獨立的空間,成為他們自己。
天極網:中國的程序員被一些人認為是吃青春飯的,程序員好像轉向管理職位才有職業發展空間,你怎么看?
Lippman:我所認識的一些Unix創立者被提升為部門主管,但他們拒絕了提升,回到了程序員的職位上,因為他們認為這是自己能做得最好的地方。總之,最后辭掉了部門主管的職位,回去做研究去了。
在美國,我們認為一個好的程序員并不意味著他能成為一個好的管理人員。如果僅僅是為了金錢的原因而強迫程序員們去從事管理工作,這與公司的最佳利益是相違背的。因此我們發明了一個所謂的"多層升遷路徑",隨著技術經驗的增長,微軟分別為程序員設置了程序員、高級程序員以及MPS等等不同級別的技術職位。微軟能認識到你的能力,如果你愿意成為管理人員,當然是可以的,但你不必做你不開心的事情,只用盡量保持你編程的創造性。
在上世紀八十年代,美國的公司都被一個相同的問題所困擾,起因就是迫使年齡大的編程人員不再從事編程工作。我猜想在中國,隨著程序員年齡的增長,這種問題也會發生!?
天極網:你如何看待C++語言的未來和C++與C##的關系?
Lippman:如果你想做web?service,asp等等,c++將不會很適用,因為這個語言不靈活,它太繁復了,它不是為了網絡服務(Web?service)而設計的。
C##就是為了網絡需求而設計的,.net的理念就是并不是一種語言能解決所有的問題。它不像Java,迫使你只能用一種語言。如果你在開發的時候發現另一個工具更好,那么你就可以選擇另一個工具。
人們總喜歡讓事物對立起來。如果有了微軟的產品,你就一定要有SUN或Linux,因為人們喜歡看他們爭斗,即使實際上并不會引發任何爭斗。c++就像一把沒有把手的刮胡刀,它不可能對所有的事物都適用,就像Visual?Basic也不可能對所有人都適用一樣。有很多人都使用c++,也有很多人使用Visual?Basic,我們還需要其他的語言。c++很難,我們必須擁有難的語言,但同時,簡單的工作也需要簡單的語言來解決。實際上,沒有哪種語言能流行10年。對于c++的未來來說,我想它還是會表現的很好。
記得1991年Java出現的時候,人們預言c++將會消失,可這并沒有發生,而是SmallTalk消失了。當Linux出現的時候,人們又說微軟有麻煩了,可實際上是Sun有了麻煩。C##并不會威脅到C++,在微軟我們在一棟大樓里工作。我相信C++現在表現得很好,在微軟起著重要的作用。我們為整個社區做出了很多貢獻。
天極網:你怎么看待面向對象技術的發展前景?
Lippman:從開始來看,每一種匯編語言的產生都是為了在計算機環境中解決特定問題的。你使用這個語言解決問題,而解決方案將使你面對更復雜的問題,而這個語言可能就解決不了了,這時我們就需要另一種語言了。
面向對象的編程就是解決數據抽象這類問題而產生的,而面向對象同樣面臨網絡環境下的一些新問題,這就是為什么我們需要一個更具彈性的平臺。.NET是一個動態,獨立性的語言平臺,這也是為什么我希望在.NET上使用C++。我認為.NET很有潛力、是軟件進步的方向。?
天極網:在.NET環境下,你認為程序設計有何變化?
Lippman:我想每一個人都同意這一點,那就是軟件是脆弱的。其實我們在軟件上不算成功。開發軟件所需要的時間太長了,并不是說我們的編程人員不合格,是因為這個工作不符合人類的自然本性,因為你必須像計算機那樣進行線性的思索。
我們目前常用的方法就是將問題分割成更小的部分,然后保證它們連貫。.NET很有潛力,它是一個動態的模型,配套有很多的組件與很好的軟件,能自適應的辨識狀況、改變或生成代碼。程序員是不會改變的,改變的只是工具,我們的職責就是要給程序員配備適用的工具。但目前我們做的還不夠。C++、C?sharp這些語言都只能算過渡性的語言。我們的程序員現在只能用它們,但并不代表將來應該用它們。?
天極網:為了避免30歲時被炒掉,你對程序員有什么建議嗎?
Lippman:我想如果你不喜歡編程,那么編程的生活將是十分恐怖的!而且如果你僅僅是出于對金錢的考慮而選擇程序員這一職業,而并不是真心喜愛這個工作,那么我奉勸你還是早點抽身的好。
但是,如果你喜歡創造,那么你可以考慮做一名程序員。今天的世界離不開電腦,幾乎沒有什么事情不是由電腦來運作的。而且你可以想想編程是一件多么奇妙的事情啊。我認為,電腦技術是人類歷史上最具創造力的技術,你必須能感受到它的奇妙。很多人也認為電腦技術很奇妙,試圖弄清楚究竟是怎么一回事,可是非常困難,因為他們的思維不具備邏輯性。
如果你不喜歡編程,那么不必強迫自己做一名程序員。當然我們需要好的管理人員,但是我覺得一名好的程序員比一名管理人員更有價值,因為我們有太多的優秀管理人才,但優秀的程序員卻并不多。(完)
凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
、轉載請注明來處和原文作者。非常感謝。