5月编程语言排行榜:C++替代者风采不再

原创
开发
Tiobe近日公布了2009年5月的编程语言排行榜,本期榜单前十名没有变化,Java、C、C++依然以绝对优势占据前三甲的位置;本期排行榜我们将把视线转移到榜单的前20名,关注D语言的大幅下滑,一起回顾D语言的迅速崛起与没落。

【51CTO独家特稿】Tiobe近日公布了2009年5月的编程语言排行榜,本期榜单前十名没有变化,Java、C、C++依然以绝对优势占据前三甲的位置;Visual Basic在4月出现了1.16%的下滑,但依旧以8.631%的占有率守住前五名的关口。本期前十名的语言分别是:Java、C、C++、PHP、Visual Basic、Python、C#、JavaScript、Perl、Ruby。


2009年5月TIOBE编程语言排行榜前20名榜单

 本期排行榜我们将把视线转移到榜单的前20名,关注D语言的大幅下滑。2007年1月推出正式版的D语言以C++替代者的形象出现在程序员的视野,成长迅速,在08年下半年到09年4月间的编程语言排行榜中一直保持着第十二名的位置,08年底还表现出冲击前十的趋势;而在本期排行榜中,D语言急速下滑,跌至第十七位。本文将结合本期榜单,与您一起回顾D语言的迅速崛起与没落。

D语言

D语言是由 Digital Mars公司的Walter Bright所开发的面向对象、指令式、多范型系统程式设计语言。D语言起源自C++,并受到C++很大的影响,不过D语言并不是 C++ 的变种。D语言对 C++ 的部分特性重新设计,并受到其它编程语言观念的影响,如Java、C#以及Eiffel。D语言从2004年开始开发,2007年1月2日释出 1.0 稳定版本。实验性版本2.0 释出于2007年1月17日。


D语言历年趋势

 D语言特性

更多D语言特性介绍请参看本文第三页D语言创始人Walter Bright录制的视频课程。

D语言的设计来自实际的C++ 用法的经验教训,而不是从理论的角度。尽管D 用到很多 C/C++ 观念,D同时也废除了某部分,因此D语言并不完全向后相容C/C++ 源代码。D加入了 C++ 的功能,也实作了契约式设计(design by contract)、单元测试、真正的模组性、自动化内存管理(垃圾回收)、***类阵列(first class array)、关联阵列、动态阵列、阵列切片、嵌套函式(巢状函式)、内部类别、闭包的限制形式、匿名函式、编译时期函式执行、惰性计算以及革新的模板语法。D 保有 C++ 的性能以进行低阶程式设计,并加入完整的内联组译器支援。C++ 的多重继承改以 Java 单继承与接口混合的风格取代。D 的宣告、语句和表达式语法几乎和 C++ 一样。

内联组译器(inline assembler)象征著 D 和 Java、C# 等应用编程语言的不同。内联组译器让程式员输入机器特定的组合语言码,如同标准 D 代码—通常由系统程式员使用的技术,以存取处理器的低阶功能,直接以硬件下的界面执行程式,如操作系统以及驱动程式。

D语言内建文档支持,不过目前为止,只有 Digital Mars 实作版本提供文件产生器。

程式设计范型

D语言支援三种主要的程式设计范型—指令式、面向对象以及元程式设计。

指令式

指令式程式设计几乎和C语言一样。函式、资料、语句、宣告以及表达式的运作就如同 C 一般,且可直接存取 C 执行时期程式库。

面向对象

在D语言里面的面向对象程式设计,是以单继承分层结构,配合所有类别衍伸自类别物件为基础。多重继承可使用界面(界面很像 C++ 的抽象类别)。

元程式设计

以模板组合、编译时期函式执行、多元组以及字串混合来支援元程式设计。

内存管理

内存通常以垃圾回收管理,不过当这些物件超出作用域时,可立即结束指定的物件。还是可以使用重载运算子 new 和 delete,以及简单的直接呼叫 C 的 malloc 和 free 以进行显示的内存管理。垃圾回收可禁用个别的物件或事件,以健全整个程式,如果在内存管理上有更多的控制,则更为理想。当垃圾回收在程式中有所不足时,手册还提供许多如何实作不同的高度***化内存管理方案的范例。

与其它系统的相互作用

支援 C 的应用程式二进制接口(ABI),以及 C 的基本和衍伸型态,就能直接存取现有的 C 代码以及程式库。C 的标准函式库也是 D 标准的一部分。除非你使用非常清楚的命名空间,它可以稍微散乱的存取,因为它散布遍及于 D 模组—不过纯粹的 D 标准函式库也通常够用,除非要与 C 代码接合。

并未完整支援 C++ 的 ABI,尽管 D 可以存取写给 C ABI 的 C++ 代码,且可存取 C++ COM(元件物件模型)代码。D 语法分析器了解外部(C++)呼叫约定,以连结 C++ 物件,不过它只实作在目前的实验性 D 2.0。

D语言的崛起与没落

从D语言的众多特性中我们可以很容易看出它的愿景和野心。事实上,D语言经过这两年的发展的确在某些应用中取代了C++甚至Java。

有很多人经常拿C++、C#和Java来进行比较。在使用感觉上,可能后两种语言会使程序员更舒服一些,但在效率上C++会更胜一筹。这在有时会形成两难的选择。在D语言诞生之前是不可能在效率和易用性兼得的。但如果看一下D语言的介绍之后,你心中可能会砰然一动。 D语言正是结合了C#、Java和C++以及PHP、Python等动态语言的特性于一身。尤其是它提供的垃圾收集器并不同于Java和C#的垃圾回收。它的垃圾回收器并不依赖于虚拟机,而是作为可执行程序单独来运行的。这样它的效率非常高。这也意味着这个类似C++语法的计算机语言再也不用释放内存了,只要按需来分配内存即可。

面向对象、垃圾回收、动态性、跨平台,这些让人心动的诱人特性促使D语言迅速崛起,但这背后你总会有些怀疑,真的有如此***的语言吗?

没有“银弹” 。D语言经常限于“修正并改进的 C++”。这会导致过分强调功能,这是因为为D语言加入新功能只是因为他们认为有用(很像当年的C++标准更新和现在的Java 7)。举个例子,关联阵列可简单的以标准函式库实现,而效率问题成了编译器和程序员共同的困惑。

此外,D语言的标准函式库称作Phobos;这个库被很多程序员认为过分简单。tango编写另一个标准函式库试图修正这一部分,不过 phobos和 tango 目前由于不同的API接口(导致垃圾回收困难)而互不相容。存在两种事实上的标准函式库可能导致更大的问题,部分软件使用phobos,而其它软件使用tango。

我们可以简单的认为Java的崛起是它对某些问题的“解决”;而D语言的失败则是他对C++某些问题的“修正";目前D语言正在不断改进,正有越来越多的程序员开始接触这门新兴语言,让我们期待D语言的发展。#p#

其他编程语言

以下是排名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%


静态类型和动态类型的语言走势

#p#

D语言视频课程

【历期榜单回顾】

  1. 09年4月编程语言排行榜:脚本语言占据半壁江山
  2. 09年3月编程语言排行榜:Visual Basic与PHP的暗战
  3. 09年2月编程语言排行榜:商业编程语言的王者之争
  4. 09年1月编程语言排行榜:C语言当选08年年度编程语言
  5. 12月TIOBE编程语言排行榜 C或C++有望夺得年度语言
  6. 11月TIOBE编程语言排行榜 可视化编程语言日渐流行
  7. 10月TIOBE编程语言排行榜发布 PowerShell跌落谷底
  8. 9月TIOBE编程语言排行榜发布 Delphi东山再起
  9. 8月TIOBE编程语言排行榜 Python上升显著
  10. 7月开发语言排行榜出炉 PowerShell有望成为年度黑马
责任编辑:佚名 来源: 51CTO.com
相关推荐

2015-07-13 10:52:15

TIOBE编程语言排行榜

2020-03-07 22:01:58

编程语言JavaPython

2017-09-08 10:58:49

JavaCC++

2015-07-13 10:43:42

C++编程语言排行

2020-03-14 16:51:21

编程语言JavaDelphi

2010-05-17 09:04:50

动态语言

2020-05-07 10:02:46

编程语言JavaC语言

2009-11-11 10:35:59

2023-06-09 15:39:40

编程语言Python

2021-09-23 10:50:42

编程语言Python排行

2020-08-13 11:55:33

编程语言JavaPython

2019-07-23 14:14:59

编程语言JavaPython

2020-02-14 09:19:12

编程语言JavaPython

2021-07-07 05:42:24

编程语言开发

2012-08-07 10:10:23

编程语言排行榜

2012-04-09 01:53:04

编程语言排行榜

2013-07-30 10:00:36

RedMonk编程语言排行榜

2015-07-07 10:52:46

RedMonk编程语言

2009-10-05 09:46:12

编程语言排行榜Ruby

2010-06-07 15:57:02

编程语言排行榜框架
点赞
收藏

51CTO技术栈公众号