<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發(fā)語言培訓專區(qū)C++語言開發(fā) → C++替代者風采不再


      共有5811人關(guān)注過本帖樹形打印

    主題:C++替代者風采不再

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    C++替代者風采不再  發(fā)帖心情 Post By:2010-12-10 13:20:55

    Tiobe近日公布了2009年5月的編程語言排行榜,本期榜單前十名沒有變化,Java、C、C++依然以絕對優(yōu)勢占據(jù)前三甲的位置;Visual Basic在4月出現(xiàn)了1.16%的下滑,但依舊以8.631%的占有率守住前五名的關(guān)口。本期前十名的語言分別是:Java、C、C++、PHP、Visual Basic、Python、C#、JavaScript、Perl、Ruby。

    圖片點擊可在新窗口打開查看
    2009年5月TIOBE編程語言排行榜前20名榜單

    本期排行榜我們將把視線轉(zhuǎn)移到榜單的前20名,關(guān)注D語言的大幅下滑。2007年1月推出正式版的D語言以C++替代者的形象出現(xiàn)在程序員的視野,成長迅速,在08年下半年到09年4月間的編程語言排行榜中一直保持著第十二名的位置,08年底還表現(xiàn)出沖擊前十的趨勢;而在本期排行榜中,D語言急速下滑,跌至第十七位。本文將結(jié)合本期榜單,與您一起回顧D語言的迅速崛起與沒落。
    D語言
    D語言是由 Digital Mars公司的Walter Bright所開發(fā)的面向?qū)ο蟆⒅噶钍健⒍喾缎拖到y(tǒng)程式設計語言。D語言起源自C++,并受到C++很大的影響,不過D語言并不是 C++ 的變種。D語言對 C++ 的部分特性重新設計,并受到其它編程語言觀念的影響,如Java、C#以及Eiffel。D語言從2004年開始開發(fā),2007年1月2日釋出 1.0 穩(wěn)定版本。實驗性版本2.0 釋出于2007年1月17日。

    圖片點擊可在新窗口打開查看
    D語言歷年趨勢

    D語言特性
    更多D語言特性介紹請參看本文第三頁D語言創(chuàng)始人Walter Bright錄制的視頻課程。
    D語言的設計來自實際的C++ 用法的經(jīng)驗教訓,而不是從理論的角度。盡管D 用到很多 C/C++ 觀念,D同時也廢除了某部分,因此D語言并不完全向后相容C/C++ 源代碼。D加入了 C++ 的功能,也實作了契約式設計(design by contract)、單元測試、真正的模組性、自動化內(nèi)存管理(垃圾回收)、第一類陣列(first class array)、關(guān)聯(lián)陣列、動態(tài)陣列、陣列切片、嵌套函式(巢狀函式)、內(nèi)部類別、閉包的限制形式、匿名函式、編譯時期函式執(zhí)行、惰性計算以及革新的模板語法。D 保有 C++ 的性能以進行低階程式設計,并加入完整的內(nèi)聯(lián)組譯器支援。C++ 的多重繼承改以 Java 單繼承與接口混合的風格取代。D 的宣告、語句和表達式語法幾乎和 C++ 一樣。
    內(nèi)聯(lián)組譯器(inline assembler)象征著 D 和 Java、C# 等應用編程語言的不同。內(nèi)聯(lián)組譯器讓程式員輸入機器特定的組合語言碼,如同標準 D 代碼—通常由系統(tǒng)程式員使用的技術(shù),以存取處理器的低階功能,直接以硬件下的界面執(zhí)行程式,如操作系統(tǒng)以及驅(qū)動程式。
    D語言內(nèi)建文檔支持,不過目前為止,只有 Digital Mars 實作版本提供文件產(chǎn)生器。
    程式設計范型
    D語言支援三種主要的程式設計范型—指令式、面向?qū)ο笠约霸淌皆O計。
    指令式
    指令式程式設計幾乎和C語言一樣。函式、資料、語句、宣告以及表達式的運作就如同 C 一般,且可直接存取 C 執(zhí)行時期程式庫。
    面向?qū)ο?/u>
    在D語言里面的面向?qū)ο蟪淌皆O計,是以單繼承分層結(jié)構(gòu),配合所有類別衍伸自類別物件為基礎(chǔ)。多重繼承可使用界面(界面很像 C++ 的抽象類別)。
    元程式設計
    以模板組合、編譯時期函式執(zhí)行、多元組以及字串混合來支援元程式設計。
    內(nèi)存管理
    內(nèi)存通常以垃圾回收管理,不過當這些物件超出作用域時,可立即結(jié)束指定的物件。還是可以使用重載運算子 new 和 delete,以及簡單的直接呼叫 C 的 malloc 和 free 以進行顯示的內(nèi)存管理。垃圾回收可禁用個別的物件或事件,以健全整個程式,如果在內(nèi)存管理上有更多的控制,則更為理想。當垃圾回收在程式中有所不足時,手冊還提供許多如何實作不同的高度最佳化內(nèi)存管理方案的范例。
    與其它系統(tǒng)的相互作用
    支援 C 的應用程式二進制接口(ABI),以及 C 的基本和衍伸型態(tài),就能直接存取現(xiàn)有的 C 代碼以及程式庫。C 的標準函式庫也是 D 標準的一部分。除非你使用非常清楚的命名空間,它可以稍微散亂的存取,因為它散布遍及于 D 模組—不過純粹的 D 標準函式庫也通常夠用,除非要與 C 代碼接合。
    并未完整支援 C++ 的 ABI,盡管 D 可以存取寫給 C ABI 的 C++ 代碼,且可存取 C++ COM(元件物件模型)代碼。D 語法分析器了解外部(C++)呼叫約定,以連結(jié) C++ 物件,不過它只實作在目前的實驗性 D 2.0。
    D語言的崛起與沒落
    從D語言的眾多特性中我們可以很容易看出它的愿景和野心。事實上,D語言經(jīng)過這兩年的發(fā)展的確在某些應用中取代了C++甚至Java。
    有很多人經(jīng)常拿C++、C#和Java來進行比較。在使用感覺上,可能后兩種語言會使程序員更舒服一些,但在效率上C++會更勝一籌。這在有時會形成兩難的選擇。在D語言誕生之前是不可能在效率和易用性兼得的。但如果看一下D語言的介紹之后,你心中可能會砰然一動。 D語言正是結(jié)合了C#、Java和C++以及PHP、Python等動態(tài)語言的特性于一身。尤其是它提供的垃圾收集器并不同于Java和C#的垃圾回收。它的垃圾回收器并不依賴于虛擬機,而是作為可執(zhí)行程序單獨來運行的。這樣它的效率非常高。這也意味著這個類似C++語法的計算機語言再也不用釋放內(nèi)存了,只要按需來分配內(nèi)存即可。
    面向?qū)ο蟆⒗厥铡討B(tài)性、跨平臺,這些讓人心動的誘人特性促使D語言迅速崛起,但這背后你總會有些懷疑,真的有如此完美的語言嗎?
    沒有“銀彈” 。D語言經(jīng)常限于“修正并改進的 C++”。這會導致過分強調(diào)功能,這是因為為D語言加入新功能只是因為他們認為有用(很像當年的C++標準更新和現(xiàn)在的Java 7)。舉個例子,關(guān)聯(lián)陣列可簡單的以標準函式庫實現(xiàn),而效率問題成了編譯器和程序員共同的困惑。
    此外,D語言的標準函式庫稱作Phobos;這個庫被很多程序員認為過分簡單。tango編寫另一個標準函式庫試圖修正這一部分,不過 phobos和 tango 目前由于不同的API接口(導致垃圾回收困難)而互不相容。存在兩種事實上的標準函式庫可能導致更大的問題,部分軟件使用phobos,而其它軟件使用tango。
    我們可以簡單的認為Java的崛起是它對某些問題的“解決”;而D語言的失敗則是他對C++某些問題的“修正";目前D語言正在不斷改進,正有越來越多的程序員開始接觸這門新興語言,讓我們期待D語言的發(fā)展。
    其他編程語言
    以下是排名21到50的編程語言列表。
    Position Programming Language Ratings
    21 COBOL 0.474%
    22 Lisp/Scheme 0.465%
    23 ActionScript 0.441%
    24 FoxPro/xBase 0.383%
    25 Fortran 0.361%
    26 Ada 0.351%
    27 Scala 0.247%
    28 LabVIEW 0.238%
    29 PowerShell 0.232%
    30 Prolog 0.224%
    31 Transact-SQL 0.191%
    32 Erlang 0.190%
    33 Scratch 0.186%
    34 Haskell 0.172%
    35 Alice 0.162%
    36 Awk 0.157%
    37 Focus 0.149%
    38 ML 0.141%
    39 Objective-C 0.134%
    40 NXT-G 0.132%
    41 Groovy 0.132%
    42 Smalltalk 0.125%
    43 Tcl/Tk 0.119%
    44 Forth 0.118%
    45 Bourne shell 0.115%
    46 CL (OS/400) 0.115%
    47 Euphoria 0.114%
    48 J 0.112%
    49 Caml/F# 0.112%
    50 VHDL 0.106%

    下面是排名51-100的語言:
    ABC, AD, Alpha, APL, Applescript, Beta, Boo, C shell, cg, Clean, Clojure, Cobra, cT, Curl, Dylan, Eiffel, Factor, Falcon, Icon, IDL, Inform, Io, Lingo, MAD, Magic, Maple, Mathematica, MAX/MSP, MOO, MUMPS, Natural, Occam, Oz, PILOT, PL/I, Postscript, PowerBuilder, Progress, Q, R, Revolution, REXX, S-lang, SIGNAL, SPSS, Squirrel, SuperCollider, VBScript, Verilog, XSLT
    編程語言類別
    Category Ratings May 2009 Delta May 2008
    Object-Oriented Languages 55.3% -0.2%
    Procedural Languages 40.8% -0.6%
    Functional Languages 2.7% +0.6%
    Logical Languages 1.2% +0.2%

    Category Ratings May 2009 Delta May 2008
    Statically Typed Languages 58.3% +0.2%
    Dynamically Typed Languages 41.7% -0.2%

    圖片點擊可在新窗口打開查看
    靜態(tài)類型和動態(tài)類型的語言走勢


    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    C++替代者風采不再








    簽名
    主站蜘蛛池模板: 99久久99久久免费精品小说| 亚洲综合第一区| 91精品国产91久久久久久青草| 成人性生交大片免费看午夜a| 亚洲国产精品毛片AV不卡在线 | 日日婷婷夜日日天干| 亚洲熟妇少妇任你躁在线观看 | 综合图区亚洲欧美另类小说| 国产精品极品美女自在线观看| 中国人xxxxx69免费视频 | 黄色毛片在线看| 在线播放日本爽快片| 丰满人妻一区二区三区免费视频 | 欧美乱强伦xxxxx高潮| 免费能直接在线观看黄的视频免费欧洲毛片**老妇女| 韩国三级日本三级香港三级黄| 国产麻豆成av人片在线观看| 中文字幕专区高清在线观看| 日本免费高清一本视频| 亚洲成av人片在线观看无码| 激情五月婷婷久久| 和僧侣的交行之夜樱花| 蜜臀av无码精品人妻色欲| 国产精品免费久久久久电影网| xxxxx性bbbbb欧美| 小莹的性荡生活37章| 久久国产精品一国产精品金尊| 最新无码a∨在线观看| 亚洲欧美高清在线| 波多野结衣最新电影| 又黄又爽无遮挡免费视频| 久久久久女人精品毛片| 樱花www视频| 亚洲精品人成无码中文毛片| 男人的j插入女人的p| 国产一区二区三区小向美奈子| 韩国三级大全久久网站| 国产精品亚洲欧美日韩久久| a级毛片视频免费观看| 女大学生的沙龙| 久久成人无码国产免费播放 |