天極網(wǎng):做為C++大師,你認(rèn)為一個(gè)優(yōu)秀的程序員應(yīng)該具備什么素質(zhì)? Lippman:不僅是C++,對所有的語言而言,我認(rèn)為一個(gè)好的程序員應(yīng)該具備獨(dú)立性,而且要不懼困難,你必須心甘情愿的面對失敗。所謂的獨(dú)立性就是因?yàn)橛袝r(shí)你要能獨(dú)處,你必須相信你能處理你明白的事情。我認(rèn)為一個(gè)好的程序員要具備創(chuàng)造性,而管理人員要確保程序員有獨(dú)立的空間,成為他們自己。 天極網(wǎng):中國的程序員被一些人認(rèn)為是吃青春飯的,程序員好像轉(zhuǎn)向管理職位才有職業(yè)發(fā)展空間,你怎么看? Lippman:我所認(rèn)識的一些Unix創(chuàng)立者被提升為部門主管,但他們拒絕了提升,回到了程序員的職位上,因?yàn)樗麄冋J(rèn)為這是自己能做得最好的地方。總之,最后辭掉了部門主管的職位,回去做研究去了。 在美國,我們認(rèn)為一個(gè)好的程序員并不意味著他能成為一個(gè)好的管理人員。如果僅僅是為了金錢的原因而強(qiáng)迫程序員們?nèi)氖鹿芾砉ぷ鳎@與公司的最佳利益是相違背的。因此我們發(fā)明了一個(gè)所謂的"多層升遷路徑",隨著技術(shù)經(jīng)驗(yàn)的增長,微軟分別為程序員設(shè)置了程序員、高級程序員以及MPS等等不同級別的技術(shù)職位。微軟能認(rèn)識到你的能力,如果你愿意成為管理人員,當(dāng)然是可以的,但你不必做你不開心的事情,只用盡量保持你編程的創(chuàng)造性。 在上世紀(jì)八十年代,美國的公司都被一個(gè)相同的問題所困擾,起因就是迫使年齡大的編程人員不再從事編程工作。我猜想在中國,隨著程序員年齡的增長,這種問題也會發(fā)生! 天極網(wǎng):你如何看待C++語言的未來和C++與C##的關(guān)系? Lippman:如果你想做web service,asp等等,c++將不會很適用,因?yàn)檫@個(gè)語言不靈活,它太繁復(fù)了,它不是為了網(wǎng)絡(luò)服務(wù)(Web service)而設(shè)計(jì)的。 C##就是為了網(wǎng)絡(luò)需求而設(shè)計(jì)的,.net的理念就是并不是一種語言能解決所有的問題。它不像Java,迫使你只能用一種語言。如果你在開發(fā)的時(shí)候發(fā)現(xiàn)另一個(gè)工具更好,那么你就可以選擇另一個(gè)工具。 人們總喜歡讓事物對立起來。如果有了微軟的產(chǎn)品,你就一定要有SUN或Linux,因?yàn)槿藗兿矚g看他們爭斗,即使實(shí)際上并不會引發(fā)任何爭斗。c++就像一把沒有把手的刮胡刀,它不可能對所有的事物都適用,就像Visual Basic也不可能對所有人都適用一樣。有很多人都使用c++,也有很多人使用Visual Basic,我們還需要其他的語言。c++很難,我們必須擁有難的語言,但同時(shí),簡單的工作也需要簡單的語言來解決。實(shí)際上,沒有哪種語言能流行10年。對于c++的未來來說,我想它還是會表現(xiàn)的很好。 記得1991年Java出現(xiàn)的時(shí)候,人們預(yù)言c++將會消失,可這并沒有發(fā)生,而是SmallTalk消失了。當(dāng)Linux出現(xiàn)的時(shí)候,人們又說微軟有麻煩了,可實(shí)際上是Sun有了麻煩。C##并不會威脅到C++,在微軟我們在一棟大樓里工作。我相信C++現(xiàn)在表現(xiàn)得很好,在微軟起著重要的作用。我們?yōu)檎麄€(gè)社區(qū)做出了很多貢獻(xiàn)。 天極網(wǎng):你怎么看待面向?qū)ο蠹夹g(shù)的發(fā)展前景? Lippman:從開始來看,每一種匯編語言的產(chǎn)生都是為了在計(jì)算機(jī)環(huán)境中解決特定問題的。你使用這個(gè)語言解決問題,而解決方案將使你面對更復(fù)雜的問題,而這個(gè)語言可能就解決不了了,這時(shí)我們就需要另一種語言了。 面向?qū)ο蟮木幊叹褪墙鉀Q數(shù)據(jù)抽象這類問題而產(chǎn)生的,而面向?qū)ο笸瑯用媾R網(wǎng)絡(luò)環(huán)境下的一些新問題,這就是為什么我們需要一個(gè)更具彈性的平臺。.NET是一個(gè)動態(tài),獨(dú)立性的語言平臺,這也是為什么我希望在.NET上使用C++。我認(rèn)為.NET很有潛力、是軟件進(jìn)步的方向。 天極網(wǎng):在.NET環(huán)境下,你認(rèn)為程序設(shè)計(jì)有何變化? Lippman:我想每一個(gè)人都同意這一點(diǎn),那就是軟件是脆弱的。其實(shí)我們在軟件上不算成功。開發(fā)軟件所需要的時(shí)間太長了,并不是說我們的編程人員不合格,是因?yàn)檫@個(gè)工作不符合人類的自然本性,因?yàn)槟惚仨毾裼?jì)算機(jī)那樣進(jìn)行線性的思索。 我們目前常用的方法就是將問題分割成更小的部分,然后保證它們連貫。.NET很有潛力,它是一個(gè)動態(tài)的模型,配套有很多的組件與很好的軟件,能自適應(yīng)的辨識狀況、改變或生成代碼。程序員是不會改變的,改變的只是工具,我們的職責(zé)就是要給程序員配備適用的工具。但目前我們做的還不夠。C++、C sharp這些語言都只能算過渡性的語言。我們的程序員現(xiàn)在只能用它們,但并不代表將來應(yīng)該用它們。 天極網(wǎng):為了避免30歲時(shí)被炒掉,你對程序員有什么建議嗎? Lippman:我想如果你不喜歡編程,那么編程的生活將是十分恐怖的!而且如果你僅僅是出于對金錢的考慮而選擇程序員這一職業(yè),而并不是真心喜愛這個(gè)工作,那么我奉勸你還是早點(diǎn)抽身的好。 但是,如果你喜歡創(chuàng)造,那么你可以考慮做一名程序員。今天的世界離不開電腦,幾乎沒有什么事情不是由電腦來運(yùn)作的。而且你可以想想編程是一件多么奇妙的事情啊。我認(rèn)為,電腦技術(shù)是人類歷史上最具創(chuàng)造力的技術(shù),你必須能感受到它的奇妙。很多人也認(rèn)為電腦技術(shù)很奇妙,試圖弄清楚究竟是怎么一回事,可是非常困難,因?yàn)樗麄兊乃季S不具備邏輯性。 如果你不喜歡編程,那么不必強(qiáng)迫自己做一名程序員。當(dāng)然我們需要好的管理人員,但是我覺得一名好的程序員比一名管理人員更有價(jià)值,因?yàn)槲覀冇刑嗟膬?yōu)秀管理人才,但優(yōu)秀的程序員卻并不多。(宋保強(qiáng)) |