2011年12月编程语言排行榜:C++11它就像一个新语言

原创
开发 前端
2011年12月5日Tiobe发布了2011年12月的编程语言排行榜。新一期排行榜Objective-C持续给力跃居第五位,而上一期关注的谷歌Dart语言也上升到第68名,但PHP由第四位跌到第6名。

2011年12月5日Tiobe发布了2011年12月的编程语言排行榜。新一期排行榜Objective-C持续给力跃居第五位,而上一期关注的谷歌Dart语言也上升到第68名,但PHP由第四位跌到第6名。从2001年Tiobe编程语言排行榜开始发布至今,C++几乎一直占据着第三名。虽然Perl, Visual Basic 和PHP曾经也排到第3名,但和C++相比,他们就显得弱爆了,因为他们最多只能保持几个月而已。然而相比C++,微软的编程语言C#却更被看好,甚至有人认为C#势必会取代C++,C++是垃圾语言。因为微软的大力推广,使用C#的人越来越多,而老将C++却正在被人遗忘。不甘寂寞,2011年C++再次亮剑,13年来***个重大修订版,C++11横空出世!

下面是前20名的编程语言排行

 

掀起C++ 11的神秘面纱

C++标准在1998年获得通过后,有两位委员会委员预言,下一代C++标准将“肯定”包括内置的垃圾回收器(GC),但可能不会支持多线程,因为定义一个可移植的线程模型涉及到的技术太复杂了,13年后,新的C++标准C++11也接近完成,你猜怎么着?让那两位委员没想到的是,本次更新还是没有包括GC,但却包括了一个先进的线程库。C++之父Bjame Stroustrup说C++11就像一个新语言,的确,C++11核心已经发生了巨大的变化,它现在支持Lambda表达式,对象类型自动推断,统一的初始化语法,委托构造函数,deleted和defaulted函数声明nullptr,以及最重要的右值引用。

C++11中值得关注的几大变化

Lambda表达式

自动类型推断和decltype

统一初始化语法

Deleted和Defaulted函数

nullptr

委托构造函数

右值引用

C++11标准库

C++于2003年以库技术报告1(TR1)的形式经历了重大改版,TR1包括新的容器类(unordered_set,unordered_map,unordered_multiset和unordered_multimap)和多个支撑正则表达式、元组和函数对象封装器等的新库。随着C++11标准获得通过,TR1和自它***发布以来新增的库被正式纳入标准的C++标准,下面是C++11标准库的一些特性:

线程库

站在程序员的角度来看,C++11最重要的新功能毫无疑问是并行操作,C++11拥有一个代表执行线程的线程类,在并行环境中用于同步,async()函数模板启动并行任务,为线程独特的数据声明thread_local存储类型。如果你想找C++11线程库的快速教程,请阅读Anthony William的“C++0x中更简单的多线程”。

新的智能指针类

C++98只定义了一个智能指针类auto_ptr,它现在已经被废弃了,C++11引入了新的智能指针类shared_ptr和最近添加的unique_ptr,两者都兼容其它标准库组件,因此你可以在标准容器内安全保存这些智能指针,并使用标准算法操作它们。

新的算法

C++11标准库定义了新的算法模仿all_of(),any_of()和none_of()操作,下面列出适用于ispositive()到(first, first+n)范围,且使用all_of(), any_of() and none_of() 检查范围的属性的谓词:

  1. #include <algorithm>   
  2. //C++11 code    
  3. //are all of the elements positive?  
  4. all_of(first, first+n, ispositive()); //false  
  5. //is there at least one positive element?   
  6. any_of(first, first+n, ispositive());//true    
  7. // are none of the elements positive?    
  8. none_of(first, first+n, ispositive()); //false 

一种新型copy_n算法也可用了,使用copy_n()函数,复制一个包含5个元素的数组到另一个数组的代码如下:

  1. #include  
  2. int source[5]={0,12,34,50,80};  
  3. int target[5];  
  4. //copy 5 elements from source to target  
  5. copy_n(source,5,target);  
  6.   

算法iota()创建了一个值顺序递增的范围,好像分配一个初始值给*first,然后使用前缀++使值递增,在下面的代码中,iota()分配连续值{10,11,12,13,14}给数组arr,并将{‘a’,’b’,’c’}分配给char数组c。

  1. include <numeric> 
  2. int a[5]={0};  
  3. char c[3]={0};  
  4. iota(a, a+5, 10); //changes a to {10,11,12,13,14}  
  5. iota(c, c+3, 'a'); //{'a','b','c'} 

C++11仍然缺乏一些有用的库,如XML API,套接字,GUI,反射以及前面提到的一个合适的自动垃圾回收器,但C++11的确也带来了许多新特性,让C++变得更加安全,高效,易学易用。

如果C++11的变化对你来说太大的话,也不要惊慌,多花些时间逐渐消化这一切,当你完全吸收了C++11的变化后,你可能就会同意Stroustrup的说法:C++11感觉就像一个新语言,一个更好的新语言。

#p#

下面是本期编程语言排行榜的其他排名数据和趋势走向。

前10名编程语言走势图

 

20到50名语言排行

下面是第50到100的编程语言排名

(Visual) FoxPro, ABC, ActionScript, Algol, Alice, Bash, bc, BETA, BlitzMax, Boo, Bourne shell, CFML, cg, CL (OS/400), Clean, Clojure, cT, Dart, Dylan, Eiffel, Euphoria, Factor, Icon, IDL, Io, J, JavaFX Script, JScript.NET, Korn shell, Lingo, MAD, MUMPS, NATURAL, Oberon, Occam, OpenCL, OpenEdge ABL, Oz, PowerShell, REXX, S, Scala, SPSS, Standard ML, SuperCollider, VBScript, Verilog, X10, xBase, Z shell

下面给出了编程语言类别的一年变化趋势

【2011年榜单回顾】

  1. 2011年11月编程语言排行榜:Google新利器Dart
  2. 10月编程语言排行榜:不成大器的D语言
  3. 9月编程语言排行榜:专为机器人玩具设计的语言NXT-G
  4. 8月编程语言排行榜:以总统为名的语言新贵Lua
  5. 2011年7月编程语言排行榜:COBOL五角大楼出品
  6. 2011年6月编程语言排行榜:为孩子创造的语言Scratch
  7. 2011年5月编程语言排行榜:用MATLAB构建宇宙
  8. 2011年4月编程语言排行榜:告别Smalltalk
  9. 2011年3月编程语言排行榜:用Ada向人类首位程序员致敬
  10. 2011年2月编程语言排行榜:冰河时代的Fortran
  11. 2011年1月编程语言排行榜:Python称霸2010


 

责任编辑:陈贻新 来源: 51CTO
相关推荐

2011-11-08 09:17:28

编程语言排行榜

2011-04-05 00:19:11

编程语言SmalltalkJava

2009-11-11 10:35:59

2011-01-09 14:47:23

编程语言排行榜

2023-06-09 15:39:40

编程语言Python

2012-12-03 11:23:28

编程语言排行榜

2021-09-23 10:50:42

编程语言Python排行

2019-07-23 14:14:59

编程语言JavaPython

2020-02-14 09:19:12

编程语言JavaPython

2021-07-07 05:42:24

编程语言开发

2012-04-09 01:53:04

编程语言排行榜

2011-06-07 09:08:12

Scratch编程语言排行榜

2013-11-11 11:00:39

编程语言排行榜

2014-11-11 17:23:32

编程语言排行榜

2011-02-11 23:21:00

Fortran编程语言排行榜

2012-11-06 11:09:13

编程语言排行榜

2016-12-05 09:57:35

编程语言排行榜C语言评级

2010-12-10 14:59:23

Lisp编程语言排行榜

2013-07-30 10:00:36

RedMonk编程语言排行榜

2015-07-07 10:52:46

RedMonk编程语言
点赞
收藏

51CTO技术栈公众号