不知不覺,C++迎來了自己20歲的生日。20年來,C++從一個(gè)實(shí)驗(yàn)室語言成長(zhǎng)為軟件產(chǎn)業(yè)一流主導(dǎo)語言,在實(shí)際應(yīng)用中取得了巨大的成功,同時(shí)也催生了大量為技術(shù)人員耳熟能詳?shù)慕?jīng)典技術(shù)著作,比如Bjarne Stroustrup的《TC++PL》和《D&E》,Stan Lippman的《C++ Primer》,Scott Meyers的《Effective C++》,GoF的《Design Patterns》,Andy Koenig的《Ruminations on C++》,Herb Sutter的《Exceptional C++》,Andrei Alexandrescu的《Modern C++ Design》,Addison Wesley的“C++ in Depth”系列等。C++領(lǐng)域的一些經(jīng)典圖書不但對(duì)于C++語言的發(fā)展起到了巨大的推動(dòng)作用,而且對(duì)于其他相關(guān)技術(shù)領(lǐng)域也起到了指導(dǎo)和促進(jìn)作用。例如Scott Meyers的“Effective系列”,開辟了技術(shù)圖書寫作的新風(fēng)格,而“Design Patterns”的影響,更是遠(yuǎn)遠(yuǎn)超出C++的范疇。這些經(jīng)典的好書,已經(jīng)成為C++輝煌歷史的一部分而被人們銘記。 20年后的今天,軟件產(chǎn)業(yè)的規(guī)模和環(huán)境已經(jīng)發(fā)生了深刻的變化。如今企業(yè)級(jí)應(yīng)用整合與開發(fā)的任務(wù)主要由Java、C#、Visual Basic以及各種新型動(dòng)態(tài)語言來承擔(dān),而C++的應(yīng)用場(chǎng)合也有所收縮,不再是像1990年代中期那樣從上到下包打天下,而是呈現(xiàn)出鮮明的應(yīng)用領(lǐng)域特色。相應(yīng)的,近期的C++技術(shù)圖書也更加注重在特色領(lǐng)域的發(fā)揮。下面我們分別從幾個(gè)角度來了解近期C++圖書的熱點(diǎn),并且展望未來一年中C++技術(shù)圖書中值得注意的選題。 經(jīng)典著作全面翻新 這一兩年,一大批經(jīng)典技術(shù)圖書都經(jīng)歷了一次更新?lián)Q代,C++經(jīng)典圖書自然也不例外。第一個(gè)要說的就是Scott Meyers的《Effective C++》。這本書在1991年推出第一版,1998年推出第二版,在C++技術(shù)的傳播與教育方面居功至偉。包括我在內(nèi)的很多C++開發(fā)者都是通過閱讀這本書而尋得升堂入室的門徑。今年,《Effective C++》推出了第三版。這一版決不是第二版的簡(jiǎn)單修訂,而是根據(jù)八年來C++所發(fā)生的巨大變化而進(jìn)行的一次全面改寫,幾乎是一本全新的書。其內(nèi)容涵蓋了舊版的精髓,也體現(xiàn)了諸如Boost庫、TR1標(biāo)準(zhǔn)等C++領(lǐng)域最新成果。如果說這本書的內(nèi)容發(fā)生了重大的變化,那么可以說不變的是這本書的地位——它仍然是每個(gè)嚴(yán)肅的C++開發(fā)者都應(yīng)當(dāng)反復(fù)閱讀領(lǐng)悟的重要作品。 另一本翻新的著作是Stan Lippman的《C++ Primer》第四版。這本書的歷史地位無需贅言,迄今為止仍然是對(duì)C++介紹最全面的一本著作。第四版進(jìn)行了大幅度的刪修,篇幅減少近300頁,而內(nèi)容也大幅修改,以反映C++近年來的變化。對(duì)于希望系統(tǒng)學(xué)習(xí)C++的新手,或者希望擁有一本手冊(cè)以備查的老手來說,這本書的地位是不可取代的。 有傳言說GoF打算翻新“Design Patterns”。該書第一版于1995年初版,此后十年,設(shè)計(jì)模式領(lǐng)域的理論探討和實(shí)踐基本上仍然圍繞這本書中的觀點(diǎn)和內(nèi)容進(jìn)行,少有突破。已經(jīng)有不少開發(fā)者對(duì)于這種情況表示了不滿,認(rèn)為初版中的一些觀點(diǎn)已經(jīng)過時(shí),甚至對(duì)現(xiàn)在的一些技術(shù)應(yīng)用構(gòu)成思想上的羈絆。但是此書實(shí)在聲名太盛,真正的突破恐怕只能由GoF自己完成,因此本書新版如果推出,必將是技術(shù)界內(nèi)的一樁大事。不過傳言亦稱,GoF對(duì)于新版“Design Patterns”是否繼續(xù)使用C++作為示范語言存在分歧。不管怎樣,相信廣大讀者會(huì)對(duì)這本書抱有高度的關(guān)注。 新銳佳作劍走偏鋒 近年來,一批C++技術(shù)新銳崛起,給我們帶來了一批令人耳目一新的C++好書。在技術(shù)上,這批圖書偏重于C++模板風(fēng)格的巧妙運(yùn)用,富于智趣而對(duì)實(shí)踐的關(guān)注略顯不足。這類圖書以2001年Andrei Alexandrescu的《Modern C++ Design》為開端,之后又有《Boost Graphic Library》,《C++ Template Metap- rogramming》等。這些書一度以其新穎的思想和奇妙的技巧吸引了大家的目光,但由于缺乏實(shí)踐的支撐,逐漸褪去光環(huán)。這兩年,這類題材逐漸縮減。即使像Andrei Alexandrescu那樣的模板技術(shù)奇才,最近與Herb Sutter合作的《C++ Coding Standard》也并沒有過多地炫耀模板技巧,而是中規(guī)中矩地對(duì)C++編碼的經(jīng)驗(yàn)做了貼近實(shí)踐的總結(jié)。這本書與Steve McConnell的經(jīng)典著作《Code Complete II》相配合,應(yīng)成為每一位C++開發(fā)者必讀的基本著作,將幫助讀者奠定堅(jiān)實(shí)的編碼和微觀設(shè)計(jì)技術(shù)基礎(chǔ)。 Boost是C++社群盡人皆知的“準(zhǔn)標(biāo)準(zhǔn)庫”,其中大量的組件已經(jīng)基本成熟并可供應(yīng)用。最近Bjorn Karlsson撰寫的《Beyond C++ Standard Library: An Introduction to Boost》是市面上第一本全面介紹Boost的著作。對(duì)于那些勇于吃螃蟹的C++先鋒開發(fā)者來說,這本書無疑是值得一讀的。不過在C++社群,對(duì)Boost庫還存在爭(zhēng)議。大部分C++實(shí)踐者比較保守,這本書對(duì)他們的吸引力恐怕將打折扣。 Stephen Dewhurst是近年來比較活躍的新銳作家,他的兩本書《C++ Gotchas》和《C++ Common Knowledge》,單獨(dú)來看都是值得一讀的好書,可惜現(xiàn)在不是1995年,而是2005年,Scott Meyers、Herb Sutter煌煌巨著已然危急九五,Dewhurst只好自嘆施手略慢。不過我們希望他能夠再接再厲,找到創(chuàng)新點(diǎn),突破前人。 相比之下,中文版即將問世的《Imperfect C++》就比較有新意,很值得一讀,以至于Bjarne Stroustrup都相當(dāng)贊賞。這位C++之父表示,如果不是因?yàn)樵摃,他一定?huì)將其納入著名的“C++ in Depth”系列。這在事實(shí)上肯定了本書的高質(zhì)量。我個(gè)人認(rèn)為,這本書是一年來出版的最值得精讀的C++著作,其中對(duì)于不少實(shí)踐中經(jīng)常遇到的難題進(jìn)行了深入的分析,給出了實(shí)實(shí)在在的解決方案。作者M(jìn)att Wilson憑借此書以及其系列模板程序庫崛起為C++社群中引人注目的新星,實(shí)在可喜可賀。 關(guān)鍵領(lǐng)域期待佳作 未來C++將主要在系統(tǒng)級(jí)復(fù)雜應(yīng)用程序、高性能、實(shí)時(shí)中間件及嵌入式領(lǐng)域施展,同時(shí),隨著多核CPU的的普及和網(wǎng)絡(luò)安全重要性的空前提升,在并發(fā)程序設(shè)計(jì)和安全程序設(shè)計(jì)方面,C++也將獲得新的應(yīng)用空間。因此,在這些具體領(lǐng)域的C++著作更值得關(guān)注。 1996年,John Lakos出版了《Large Scale C++》一書,該書與 “C++ In Depth”系列中的《Applied C++》一樣,是C++著作中極少數(shù)實(shí)戰(zhàn)派佳作,其中字字句句都來自于作者豐富的實(shí)際項(xiàng)目經(jīng)驗(yàn),對(duì)于一線的C++開發(fā)者來說是特別值得咀嚼體味的好書?上н@本書在國內(nèi)一直沒有得到應(yīng)有的重視,這可能跟本書中譯本出版時(shí)間過晚,且翻譯質(zhì)量不佳有關(guān)。好消息是,John Lakos即將在2006年推出其新作《Scalable C++》。我本人將此書視為未來一年中C++領(lǐng)域最令人期待的作品。這一方面是出于我對(duì)于作者的高度信任,另一方面是由于該書題材的極端重要性。該書副標(biāo)題為“基于組件的軟件開發(fā)”,而“組件化”這一主題,是C++十幾年來的一塊心病。在未來,無論C++應(yīng)用在何種場(chǎng)合,“組件化”是必不可少的基本要求。而COM技術(shù)雖然在組件化方面比較成熟,但是不具有可移植性,而且對(duì)于無須跨語言的C++開發(fā)項(xiàng)目來說過于復(fù)雜。因此,C++社群需要自己探討經(jīng)濟(jì)適用的組件化實(shí)用方案。John Lakos本人從事大型復(fù)雜應(yīng)用軟件開發(fā)多年,在這方面的經(jīng)驗(yàn)無人能敵,由他來對(duì)這個(gè)主題進(jìn)行深入剖析,并且給出實(shí)際解決方案,毫無疑問是再合適不過的了。雖然這本書還在寫作過程中,但是我們有理由對(duì)其抱有充分信心。在此我也呼吁本書中文版未來的出版者認(rèn)真對(duì)待此書的翻譯制作,不要重蹈《Large Scale C++》的覆轍。 說到COM,自從.NET推出,COM的書幾乎一夜之間絕了種,幾乎無人再勇于炒這碗冷飯。但這次出版界的茶實(shí)在涼得快了些,事實(shí)上直到今天,COM開發(fā)仍然是Windows平臺(tái)上應(yīng)用開發(fā)的一個(gè)重要方向。特別是在前兩年微軟Windows核心向.NET全面轉(zhuǎn)型的左傾冒險(xiǎn)主義的嘗試以失敗告終后,在可見的未來,Windows操作系統(tǒng)將繼續(xù)構(gòu)建在C/C++和COM的基礎(chǔ)之上——這就確保了COM在Windows平臺(tái)上的重要地位將至少延續(xù)到2011年之后。因此,COM、ATL和WTL開發(fā)技術(shù)在未來幾年都還是頗具意義的出版題材。特別是近年來ATL/WTL的發(fā)展之快,相比之下,技術(shù)出版在這方面出現(xiàn)了一個(gè)空白點(diǎn)。此外,開源的Mozilla項(xiàng)目提供了一個(gè)可移植到所有主流平臺(tái)的COM實(shí)現(xiàn),這對(duì)于C++開發(fā)者來說是很具有吸引力的,卻一直沒有出版資源的關(guān)注,令人遺憾。 C++近年來的一個(gè)應(yīng)用熱點(diǎn)是復(fù)雜網(wǎng)絡(luò)應(yīng)用的開發(fā),ACE在這方面已經(jīng)成為越來越流行的選擇,而ICE作為目前可用的最先進(jìn)的高性能中間件產(chǎn)品,崛起的勢(shì)頭很猛。這兩方面目前都有一些好書,特別是最近出版的《ACE Programmer’s Guide》,對(duì)于ACE編程入門很有好處。而ICE 1.3版的手冊(cè)早已由馬維達(dá)先生譯成中文,可在網(wǎng)上自由獲得。不過坦率地說,這方面的圖書還遠(yuǎn)遠(yuǎn)不夠,ACE原作者Doug Schmidt所著的兩卷本《C++ Network Programming》可讀性和實(shí)用性不足,而ICE手冊(cè)深度和廣度都顯不夠,我們期望這方面能有更好的著作出現(xiàn)。 隨著多核CPU的普及,并發(fā)程序設(shè)計(jì)將成為C++技術(shù)上的一個(gè)新熱點(diǎn)。這方面目前的好書幾乎沒有,不知道這個(gè)巨大的空白將由何方神圣來填補(bǔ)。 同樣,網(wǎng)絡(luò)安全重要性的空前提升對(duì)C++開發(fā)提出了很多新的具體要求,很多C++老手面臨一個(gè)“再教育”的問題。這方面Microsoft Press的《Writing Safe Code》,O’Reilly的《Secure Programming Cookbook for C and C++》,以及最近Pearson出版的《Secure Coding in C and C++》都是不錯(cuò)的參考。不過我發(fā)現(xiàn)目前C++開發(fā)者并未普遍重視這個(gè)問題。也許管理層還需要更加“血淋淋的教訓(xùn)”來刺激一下,才會(huì)有革新的動(dòng)力。 在嵌入式方面,由于應(yīng)用復(fù)雜度的逐漸提升和Symbian OS/Windows CE等面向消費(fèi)的高級(jí)嵌入式操作系統(tǒng)的廣泛應(yīng)用,給C++提供了一個(gè)廣闊的發(fā)揮空間。可惜在這方面,真正堪稱經(jīng)典的好書還是鳳毛麟角,看來還需要時(shí)間和經(jīng)驗(yàn)的積淀。不過有一本書特別值得一提,北航出版社去年引進(jìn)的《嵌入式系統(tǒng)的微模塊化設(shè)計(jì)》被國際嵌入式開發(fā)領(lǐng)域公推為數(shù)年來年度最重要的嵌入式軟件開發(fā)技術(shù)著作,其中含有一些意義深遠(yuǎn)的創(chuàng)新思想,非嵌入式開發(fā)者也有必要了解此書的大致思想。 總結(jié) 程序設(shè)計(jì)語言數(shù)以千計(jì),能夠廣為流傳的不過幾十種,而能夠風(fēng)光20年的更是屈指可數(shù)。Fortran已經(jīng)問世50年,仍然是科學(xué)計(jì)算首選,C語言輝煌30年,至今老當(dāng)益壯。C++順利地度過了自己的20歲生日,相信屬于它的日子還很長(zhǎng)很長(zhǎng)。作為C++開發(fā)者,我們也希望看到優(yōu)秀的C++技術(shù)圖書不斷涌現(xiàn)。歷史證明,C++領(lǐng)域內(nèi)的技術(shù)創(chuàng)新,不但對(duì)于C++開發(fā)具有重大意義,而且對(duì)于整個(gè)軟件開發(fā)技術(shù)都具有重大意義。我們有理由相信,在下一個(gè)十年里,以高水平C++技術(shù)專家和作家為代表的C++技術(shù)社群能夠繼續(xù)為軟件技術(shù)做出突出的貢獻(xiàn)。 相關(guān)文章:Java2十大經(jīng)典中文圖書推薦 |
正在閱讀:慶祝20歲生日: C++圖書熱點(diǎn)觀察慶祝20歲生日: C++圖書熱點(diǎn)觀察
2005-12-26 10:30
出處:
作者:《程序員》雜志
責(zé)任編輯:xietaoming
相關(guān)文章
百度領(lǐng)投“凱叔講故事” C輪融資 布局兒童內(nèi)容教育!
iPhone也可以享受18W快充 紫米蘋果C2L編織線降價(jià)
鋼琴鍵盤為什么C開始 C調(diào)是哪一個(gè)
云頂之弈單核熊王C陣容分享 單核熊王C玩法技巧
C盤清理助手怎么使用 C盤清理助手的使用方法
新iPhone有望再迎大變化:要用Type-C接口了?
“拍拍”再度易主:愛回收接手 原總經(jīng)理將另謀出路!
碧藍(lán)航線鐵血音符誓言C2:第二樂章極度的渴望陣容
全面戰(zhàn)爭(zhēng)三國呂布怎么招募 呂布招募流程方法分享
全面戰(zhàn)爭(zhēng)三國白龍軍屬性介紹 白龍軍特性介紹
302 Found
Powered by Tengine