2011年3月编程语言排行榜:用Ada向人类首位程序员致敬
Ada语言在上世纪80年代还非常火热,曾经攀升到编程语言排行榜的第二位,即使在2011年,也能排在20强的位置。这无疑证明了Ada的生命力,尽管它并没有Java或者C语言的光芒。
推荐专题:51CTO编程语言排行榜专题
先说Ada下的Hallo World
with Ada.Text_IO; procedure Hello is begin Ada.Text_IO.Put_Line("Hello, world!"); end Hello;
Ada语言:军方的宠儿
现代计算机技术之父查尔斯·巴贝奇Charles Babage
与其他流行的程序设计语言不同,Ada语言不仅体现了许多现代软件的开发原理,而且将这些原理付诸实现。因此,Ada语言的使用可大大改善软件系统的清晰性、可靠性、有效性、可维护性。Ada是现有的语言中无与伦比的一种大型通用程序设计语言,它是现代计算机语言的成功代表,集中反映了程序语言研究的成果。Ada的出现,标志着软件工程成功地进入了国家和国际的规模。在一定意义上说,Ada还刺破了“冯·偌依曼思维模式” (Von Newman Mind-set) 的桎梏,连同Ada的支持环境(APSE)一起,形成了新一派的所谓Ada文化。它是迄今为止最复杂、最完备的软件工具。Ada语言是美国国防部指定的唯一的一种可用于军用系统开发的语言,我国军方也将Ada作为军内开发标准(GJB 1383《程序设计语言Ada》)。
Ada特征谈:严谨得难以阅读
一门好的编程语言肯定是一门严谨的语言,但它不一定是最方便的语言。Ada就是一个典型的例子。
Ada语言最早是针对嵌入式和实时系统设计的,并且在今天依然在这方面使用广泛。Ada95版,是由INTERMETRICS公司的塔克。塔夫特于92到95年间设计的,当时主要是希望改进对于 系统,数字,财务软件编程的支持。
Ada架构图
Ada语言的重要特征就是其键入式风格,模块化设计,编译检查,平行处理,异常处理及泛型编程。Ada在95年加入了对面向对象设计的支持,包括动态分配等。
Ada的编译检查主要是针对没有分配的内存读写的保护,堆栈溢出错误,单个错误空闲,队列读写错误以及其他可以避免的小问题。这些检查可以在为增加效率的情况下被取消,但是在编译的时候他们却能带来很高的效率。同样它也包括对程序的严正的设置。因为这些原因,它被广泛应用于一些非常重要的系统中,例如航空电子学,武器及航天飞行器的操作系统中。
同样它支持很多的编译时间检查,这些检查被用来避免一些错误的发生。这种错误往往是在其他语言中在运行以前都不能被察觉到的,需要在源码中加入特殊的检查设置才能被发现。
Ada的动态内存管理非常安全和高规格,它类似于Java语言却不同于C语言的。这种特殊功能并不需要特殊的运行设置。尽管这种语言的语意结构允许对于不能读写的目标进行自动的碎片搜集,但是大多数运行都不支持它。Ada却支持有限形式基于区域的存储管理。无效的读写常在运行时候被检查出来(除非这种检测被人为关闭)并且有时候在编译时候就被发现。
Ada语言的定义同国际标准化组织(ISO)的标准有很大不同,因为他是一个自由内容形式的。这种做法的后果是被广大程序员只能从它的标准化文档(普遍认为是Ada的参考使用手册(ARM))寻找细节性的技术问题,但是普遍情况是一本标准教科书却可以在其他不同语言上使用。
Ada语言由严格的巴斯特范式定义,但是不适合一般人阅读.它是第一种同时拥有IEC/ISO/美国军用标准认证的语言.其编译器经过严格的审查,以确保同样的代码在任一编译器上产生同样的可执行效果.并且保证并行性在代码级可以在无操作系统下同样运行。
Ada官方网站链接:http://www.adahome.com/
前10名编程语言趋势走向
20到50名语言排行
Position | Programming Language | Ratings |
---|---|---|
21 | RPG (OS/400) | 0.570% |
22 | Visual Basic .NET | 0.563% |
23 | Transact-SQL | 0.550% |
24 | R | 0.489% |
25 | Groovy | 0.457% |
26 | SAS | 0.452% |
27 | MATLAB | 0.452% |
28 | ABAP | 0.425% |
29 | Scratch | 0.412% |
30 | PL/SQL | 0.408% |
31 | Haskell | 0.407% |
32 | Logo | 0.402% |
33 | D | 0.399% |
34 | Object Pascal | 0.361% |
35 | Fortran | 0.350% |
36 | Alice | 0.338% |
37 | Forth | 0.335% |
38 | COBOL | 0.326% |
39 | Erlang | 0.301% |
40 | Bash | 0.291% |
41 | ML | 0.289% |
42 | MAD | 0.274% |
43 | APL | 0.272% |
44 | Scala | 0.257% |
45 | F# | 0.247% |
46 | ActionScript | 0.236% |
47 | Smalltalk | 0.233% |
48 | C shell | 0.230% |
49 | CL (OS/400) | 0.226% |
50 | Prolog | 0.225% |