• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            思勤無(wú)邪

            上學(xué)時(shí),因我年齡最小,個(gè)頭也最小,上課時(shí),就像大猩猩堆里的猴一般。如今,這猴偶爾也把最近的一些情況寫在這里。

               :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              132 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

            公告

                 吾日常三省吾身,曰思、曰勤、曰無(wú)邪。

            積分與排名

            • 積分 - 183658
            • 排名 - 141

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

                整理資料時(shí),發(fā)現(xiàn)了《什么是高級(jí)C++》這個(gè)ppt。這是一個(gè)C++發(fā)展方向的介紹,個(gè)人覺得很不錯(cuò),把內(nèi)容貼了出來(lái),同是也可以點(diǎn)擊下載

            什么是高級(jí)C++?

            ——軟件工業(yè)化時(shí)代的C++價(jià)值觀
            孟巖
            《程序員》雜志社


            開門見山

            主要論點(diǎn):
                1. C++本質(zhì)上是一種重“創(chuàng)新”而輕“生產(chǎn)”的語(yǔ)言,到目前為止仍然是主流語(yǔ)言中最適合技術(shù)創(chuàng)新的一個(gè);
                2. 1995年之前,整個(gè)軟件產(chǎn)業(yè)處于“創(chuàng)新為王”的階段,C++是最適合這個(gè)階段的語(yǔ)言,這是C++紅極一時(shí)的大背景和根本原因。
                3. 1995年發(fā)生了一系列影響深遠(yuǎn)的事件,軟件產(chǎn)業(yè)整體上轉(zhuǎn)向工業(yè)化,為了支持工業(yè)化,創(chuàng)新的重點(diǎn)由技術(shù)創(chuàng)新轉(zhuǎn)向體系創(chuàng)新。然而C++沒有能夠迅速適應(yīng)這一變化。
                4. 今天,C++應(yīng)當(dāng)準(zhǔn)確定位,彌補(bǔ)不足,有針對(duì)性地發(fā)展,它將仍然是最重要的幾種工業(yè)級(jí)語(yǔ)言之一。


            從一本書說(shuō)起
            James Coplien,Advanced C++ Programming Styles and Idioms, Addison Wesley, 1991
            —— 市面上唯一一本名副其實(shí)的“高級(jí)”C++書(Scott Meyers)
             ●面向?qū)ο筇匦缘倪\(yùn)用和把握
             ●面向?qū)ο蟮某绦蝻L(fēng)格
             ●動(dòng)態(tài)特征的運(yùn)用和超越
             ●符號(hào)語(yǔ)言模擬
             ●設(shè)計(jì)模式

                這本書代表了當(dāng)時(shí)專家們對(duì)于“高級(jí)C++”的理解,換句話說(shuō)代表了當(dāng)時(shí)C++社群的一個(gè)審美價(jià)值取向。我們看到了什么?技術(shù)、技巧、風(fēng)格、模式,但沒有與工程相關(guān)的東西。更有意思的事情是,這本書的中文版12年后被剽竊出版,此時(shí)書中對(duì)于C++面向?qū)ο竽芰Πl(fā)揮到了我當(dāng)時(shí)沒有想到的程度。這說(shuō)明即使在template被廣泛應(yīng)用之前,C++語(yǔ)言的技巧性就達(dá)到了如此的高度。然而耐人尋味的是,書中最高深的技巧從來(lái)就沒有在C++實(shí)踐中流行過(guò)。

            另一本書...
            Scott Meyers, Effective C++ ,1991年第1版,1998年第二版,2005年第三版。
             ●來(lái)自教學(xué)經(jīng)驗(yàn)
             ●最初想開發(fā)一個(gè)代碼掃描工具
             ●包含實(shí)際工程建議
             ●歷史上最重要的C++著作之一

                這本書出版的同時(shí),還有一本在C++歷史上影響更大的書問世——Scott Meyers的Effective C++。這本書并沒有過(guò)多地探索語(yǔ)言技巧,而是探討實(shí)踐中應(yīng)當(dāng)遵循的規(guī)則,或者換句話說(shuō),探討怎樣在應(yīng)用這種語(yǔ)言的同時(shí)保持軟件的質(zhì)量,提高開發(fā)效率。這本書的內(nèi)容被整個(gè)C++社群熟知并吸收,至今仍在翻新,影響著更多的人。

            還是在1991年...
             ●“按照1991年3月C++程序員增長(zhǎng)的速度計(jì)算,到1996年5月,全世界每一個(gè)人都將成為C++程序員。此后我們將不得不教外星人學(xué)習(xí)C++。”
             ●問題:當(dāng)時(shí)人們?yōu)槭裁慈绱睡偪竦貙W(xué)習(xí)一種新語(yǔ)言?
                答案很有趣:大部分人是盲從。但他們所追隨的人并非等閑之輩,幾乎所有在AT&T Bell Labs、Sun、Borland、IBM、Microsoft的C語(yǔ)言大師都轉(zhuǎn)向C++(Brain Kernighan,Jon Bentley,Peter van der Linden)。而這些人轉(zhuǎn)向C++,不是因?yàn)樗麄冎繣ffective C++,而是因?yàn)樗麄冎繟dvanced C++。什么意思呢?就是說(shuō)人們轉(zhuǎn)向C++,是因?yàn)镃++充滿了令人興奮的新技巧和未知的創(chuàng)新空間。


            1991年...
             ●5000行C代碼可以寫一個(gè)完整的應(yīng)用程序,獲得數(shù)萬(wàn)$的回報(bào);
             ●一個(gè)TSR式的Help程序可以以shareware的方式通過(guò)磁盤發(fā)行,開發(fā)者銀行戶頭里會(huì)收到大量匯款;
             ●John Carmark和Michael Abrash正在各自擅長(zhǎng)的方向上不斷創(chuàng)新。Doom發(fā)行后,id獲得收入一度超過(guò)微軟銷售額。

            C++歷史選擇中“創(chuàng)新”壓倒“生產(chǎn)”
            “相信程序員”;
            Be an enable language;
            Zero overhead;
            STL投票的通過(guò);
            偏特化的引入
            多繼承
            Generic/Generated/Meta
            IOStream庫(kù)的設(shè)計(jì)
            Loki/Boost

            counted_ptr被否決
            可選GC方案被否決
            加入類似delegate的對(duì)象方法指針提議未引起關(guān)注;
            virtual關(guān)鍵字
            exception機(jī)制
            缺乏Thread, Network, Regex, DB...等標(biāo)準(zhǔn)庫(kù)
            沒有ABI規(guī)范
            孱弱的RTTI

                并不是事后諸葛亮式的譴責(zé),這就是C++的歷史選擇,無(wú)所謂對(duì)錯(cuò)。

                C++重創(chuàng)新輕生產(chǎn),重技巧輕規(guī)范,語(yǔ)言上的創(chuàng)新試驗(yàn)直到1996年ANSI C++標(biāo)準(zhǔn)草案落地才結(jié)束。直到2001年Modern C++ Design出版,人們還不斷地發(fā)現(xiàn)新的語(yǔ)言運(yùn)用技巧。我們每個(gè)人都經(jīng)歷過(guò)這個(gè)階段,在實(shí)踐中發(fā)現(xiàn)一個(gè)問題,想方設(shè)法用盡各種語(yǔ)言技巧來(lái)克服它,成則欣喜,敗不氣餒。我們都曾經(jīng)相信,C++中一切問題都可以優(yōu)雅地解決,只有想不到,沒有做不到。問題是,從Advanced C++到Modern C++ Design,許許多多令人第一眼看上去無(wú)比驚喜的技術(shù),最后在實(shí)踐中被大范圍推廣運(yùn)用的少之又少。C++大師們說(shuō)這是教育問題,真的是這樣嗎?

            C++社群的價(jià)值觀
             ●用優(yōu)雅的技巧解決復(fù)雜問題
             ●自己動(dòng)手,豐衣足食
             ●決不讓運(yùn)行時(shí)效率蒙受半點(diǎn)損失
             ●妙者為王
                “管理一群C++程序員就像放牧一群驕傲的貓。”——B. Moo
                “C++程序員是高速公路上穿著短皮茄克,帶著墨鏡,抽著雪茄,揮舞著鐵鏈的英勇無(wú)畏的摩托騎士。” ——VC產(chǎn)品經(jīng)理

            1995年:轉(zhuǎn)折點(diǎn)
             ●Windows 95問世:GUI時(shí)代、保護(hù)模式操作系統(tǒng)時(shí)代、多線程時(shí)代的到來(lái),是推動(dòng)軟硬件規(guī)模迅速膨脹;
             ●Netscape Navigator vs. Internet Explorer: Web的興起將人類一下子拖入互聯(lián)網(wǎng)時(shí)代, 個(gè)人與企業(yè)應(yīng)用軟件網(wǎng)絡(luò)化;
             ●Java誕生:提供了網(wǎng)絡(luò)時(shí)代、跨平臺(tái)時(shí)代優(yōu)于C++的企業(yè)應(yīng)用軟件開發(fā)語(yǔ)言;
             ●COM時(shí)代到來(lái)
             ●Delphi誕生:創(chuàng)新與工程原則平衡的典范;


            1995年:C++全盛時(shí)代
             ●C++標(biāo)準(zhǔn)草案接近完成,語(yǔ)言基本穩(wěn)定;
             ●C++工具大戰(zhàn)結(jié)束:來(lái)自商業(yè)競(jìng)爭(zhēng)的動(dòng)力消失,MFC獲勝;
             ●很多主流軟件廠商轉(zhuǎn)向C++,C++開始在大范圍內(nèi)被用于大規(guī)模軟件開發(fā);
             ●一切跡象表明,軟件產(chǎn)業(yè)的重點(diǎn)將有創(chuàng)新轉(zhuǎn)向生產(chǎn)。但是:C++社群在指導(dǎo)思想上并沒有發(fā)生相應(yīng)的變化。

             
            我們的歷史失誤
             ●C++社群從來(lái)沒有聯(lián)合起來(lái)支持任何一個(gè)跨平臺(tái)的二進(jìn)制組件標(biāo)準(zhǔn)(如COM/SOM/CCM)和基礎(chǔ)庫(kù)(如Apache APR、ACE OS Wrapper);
             ●C++社群從來(lái)沒有聯(lián)合起來(lái)支持任何一個(gè)跨平臺(tái)的C++虛擬機(jī)、解釋器、內(nèi)存檢測(cè)工具和錯(cuò)誤錄像工具,也從來(lái)沒有促成過(guò)一個(gè)安全的庫(kù);
             ●Boost出現(xiàn)于1999-2000年,而在此之前的跨平臺(tái)C++庫(kù)都沒有獲得廣泛的支持;
             ●鐘情于用C++語(yǔ)法(無(wú)論多么復(fù)雜和稀奇古怪)完成所有的任務(wù),卻丟掉了老祖宗C語(yǔ)言的看家法寶——Little Language;
             ●對(duì)于風(fēng)格爭(zhēng)論不休,對(duì)于明顯的技術(shù)進(jìn)步拒不接受,對(duì)于很多后來(lái)被證明并不實(shí)用的技巧趨之若鶩。

                沒有跨平臺(tái)的基礎(chǔ)庫(kù),就沒有跨平臺(tái)的動(dòng)態(tài)模塊加載機(jī)制;
                John Spencer夭折的書《The Art of C Programming》,GoF的Interpreter模式;Little Language實(shí)際上具有反映計(jì)算機(jī)本質(zhì)的一些東西,現(xiàn)在卻成了很少為C++程序員所采用和熟悉的工具。

             

            2005年,C++的現(xiàn)實(shí)處境
             ●在系統(tǒng)編程領(lǐng)域仍然強(qiáng)勢(shì);
             ●套裝軟件主流開發(fā)語(yǔ)言之一;
             ●嵌入式開發(fā)領(lǐng)域進(jìn)展較快;
             ●游戲引擎開發(fā)主力;
             ●科學(xué)計(jì)算方面略有一席之地
             ●遺留項(xiàng)目的維護(hù);
             ●在企業(yè)應(yīng)用開發(fā)領(lǐng)域快速收縮;
             ●Web開發(fā)中的影子語(yǔ)言;
             ●從高校主流教學(xué)中退潮;
             ●整體水平仍然不高,很多企業(yè)急于擺脫;
             ●最致命的:真正了解和熟練掌握C++的人太少;

            案例:1. 國(guó)外一家公司花高薪聘人,要么能維護(hù)目前百萬(wàn)行規(guī)模的代碼,要么把它轉(zhuǎn)成Java;
                      2. IBM Workplace,項(xiàng)目一開始C++/Java并重,之后C++比重越來(lái)越小;
                      3. 微軟與中國(guó)電信合作一個(gè)項(xiàng)目,客戶端軟件本來(lái)要用C++寫,后來(lái)趕到產(chǎn)品化周期太長(zhǎng),改用C#,后發(fā)先至。 


            問題何在
             ●當(dāng)前的軟件產(chǎn)業(yè)發(fā)展的主要矛盾——各行各業(yè)對(duì)軟件生產(chǎn)標(biāo)準(zhǔn)化、規(guī)模化、高質(zhì)量要求與慢節(jié)奏、低效率、低質(zhì)量的軟件開發(fā)之間的矛盾。
             ●解決這個(gè)矛盾的關(guān)鍵:組件化體系,成熟的軟件生產(chǎn)工具和環(huán)境,不斷的創(chuàng)新精神。
             ●C++在外部環(huán)境已經(jīng)發(fā)生根本變化的近十年時(shí)間里,沒有抓住這個(gè)主要矛盾。


            重新評(píng)估我們的C++價(jià)值取向
                重新評(píng)估“高級(jí)C++”的現(xiàn)實(shí)含義:
                    - 簡(jiǎn)潔有效優(yōu)于驚世駭俗;
                    - 開放靈活優(yōu)于保守固執(zhí);
                    - 幫助他人優(yōu)于凸現(xiàn)自己;
                    - 領(lǐng)域創(chuàng)新優(yōu)于賣弄技巧;

             
            六個(gè)建議
             ●學(xué)會(huì)與現(xiàn)實(shí)和諧共處;
             ●盡快面向不同領(lǐng)域建立跨平臺(tái)構(gòu)件標(biāo)準(zhǔn);
             ●支持各領(lǐng)域已經(jīng)形成的基礎(chǔ)庫(kù)不斷完善;
             ●支持相關(guān)工具廠商,迅速完善工具鏈;
             ●支持動(dòng)態(tài)語(yǔ)言的發(fā)展;
             ●面向產(chǎn)業(yè)挑戰(zhàn)創(chuàng)新發(fā)展;

             

            與現(xiàn)實(shí)和諧共處
             ●承認(rèn)C++只適合這個(gè)世界的一部分工作,快樂地與其他語(yǔ)言共同協(xié)作;
             ●告別妄自尊大和保守傲慢;
             ●尊重其他社群的專業(yè)能力和成績(jī);
             ●坦率承認(rèn)C++在很多場(chǎng)合并非理想選擇;
             ●在C++擅長(zhǎng)的領(lǐng)域保持銳意。


            跨平臺(tái)構(gòu)件標(biāo)準(zhǔn)
             ●C++邁向未來(lái)的關(guān)鍵技術(shù)步驟;
             ●盡可能支持現(xiàn)有的成熟方案;
             ●在不同尺度的平臺(tái)上可能需要不同的標(biāo)準(zhǔn);

             

            支持成熟的基礎(chǔ)庫(kù)
             ●基本組件:STL和Boost(部分)
             ●網(wǎng)絡(luò)和系統(tǒng)編程:ACE
             ●分布式計(jì)算:ICE
             ●GUI:Qt
             ●Windows:MFC/ATL/WTL
             ●科學(xué)計(jì)算:MTL

             

            完善工具鏈
             ●C++用的GC;
             ●Code Review工具;
             ●內(nèi)存錯(cuò)誤排查工具;
             ●測(cè)試工具;
             ●MDA工具;
             ●文檔工具;
             ●持續(xù)集成工具;
             ●運(yùn)行錄像工具。


            支持動(dòng)態(tài)語(yǔ)言
             ●動(dòng)態(tài)語(yǔ)言是軟件技術(shù)發(fā)展的一個(gè)重要方向,幾年后會(huì)成為主流。
             ●目前幾個(gè)流行動(dòng)態(tài)語(yǔ)言天生與C/C++具有親緣關(guān)系;
             ●加強(qiáng)對(duì)動(dòng)態(tài)語(yǔ)言的友好性,是C++未來(lái)發(fā)展的一項(xiàng)重要任務(wù);
             ●從這個(gè)角度來(lái)看待C++/CLI,我們應(yīng)該持積極態(tài)度;
             ●Little Language問題;


            迎接產(chǎn)業(yè)新挑戰(zhàn)
             ●多核CPU帶來(lái)根本性挑戰(zhàn),C++有責(zé)任挺身而出,為其他語(yǔ)言鋪平前進(jìn)道路;
             ●安全性問題,C/C++實(shí)際上是給整個(gè)產(chǎn)業(yè)拖了后腿,對(duì)此我們應(yīng)當(dāng)充分關(guān)注,積極改進(jìn);
             ●將STL思想精華發(fā)揚(yáng)光大。

            posted on 2007-04-22 19:50 思勤無(wú)邪 閱讀(1878) 評(píng)論(3)  編輯 收藏 引用 所屬分類: C++

            Feedback

            # re: 什么是高級(jí)C++?[未登錄] 2007-07-23 13:21
            很好  回復(fù)  更多評(píng)論
              

            # re: 什么是高級(jí)C++? 2007-10-22 21:17 阿鐵
            哈哈,你居然比我早轉(zhuǎn).
            這個(gè)PPT寫得很實(shí)在.
            歡迎交流:自動(dòng)化C++開發(fā)社區(qū):http://www.autodev.net  回復(fù)  更多評(píng)論
              

            # re: 什么是高級(jí)C++? 2007-10-22 21:19 阿鐵
            可是C++/CLI設(shè)計(jì)得并不優(yōu)美啊.
            而且?guī)в蠱S的影子~不爽!居然還好意思奢望納入標(biāo)準(zhǔn)!
            (B.Lippman啊.....大牛們啊,救救我們吧.......)
            其實(shí)我們中國(guó)的C++程序員該聯(lián)合起來(lái)做些事情了(正如ppt里所說(shuō))  回復(fù)  更多評(píng)論
              

            久久久噜噜噜久久中文字幕色伊伊| 久久精品国产亚洲av麻豆蜜芽| 国产精品成人久久久久三级午夜电影 | 久久av无码专区亚洲av桃花岛| 久久久久亚洲AV无码麻豆| 成人精品一区二区久久久| 久久亚洲AV成人无码| 久久精品免费观看| 波多野结衣久久| 国产精品久久亚洲不卡动漫| 人妻无码精品久久亚瑟影视| 久久人人妻人人爽人人爽| 亚洲国产精品无码久久青草| 精品久久久久久久| 99久久精品免费看国产一区二区三区 | 亚洲精品无码久久久久AV麻豆| 无码人妻久久一区二区三区免费| 一级做a爱片久久毛片| 亚洲综合精品香蕉久久网| 久久综合久久性久99毛片| 亚洲精品高清国产一久久| 色综合久久无码五十路人妻 | 久久精品国产免费| 欧洲精品久久久av无码电影| 国产免费久久精品99re丫y| 久久精品国产亚洲一区二区三区| 国产精品美女久久久久久2018| 国产精品99久久久久久宅男小说| 热久久国产欧美一区二区精品 | 久久精品国产亚洲av麻豆色欲| 国产精品中文久久久久久久| 四虎国产精品免费久久| 久久精品国产精品亚洲艾草网美妙| 色综合久久久久| 91久久精品国产成人久久| 狠狠色丁香婷婷综合久久来| 久久国产免费观看精品3| 看久久久久久a级毛片| 久久久久亚洲av无码专区| 日本人妻丰满熟妇久久久久久| 综合人妻久久一区二区精品|