【51CTO独家特稿】Tiboe今日发布了2010年最后一期编程语言排行榜,在本期榜单中前五名依然是Java、C、C++、PHP和C#。Tiobe官网给出本期主题是“一直上升的C#和一直下降的Visual Basic”。同时,Tiobe还透露了2010年年度编程语言的一些消息,今年,C#语言年度增幅6.687%,但依然不足以赢得年度语言,最有可能的是Objective-C和Python。
从本期开始,51CTO将挑选编程榜中的“经典”语言进行回顾。它们基本都经历了长达半个世纪的计算机技术变迁,如今依然发挥着重要作用;这些语言在刚创立时都以超前的技术思想和理念震惊业界,如今,这些思想和理念像基因一样深深融入每一种高级语言,并被我们广泛应用。
我们试图触摸这些经典语言化石,让您了解在编程语言发展史上的一座座丰碑。在当时所处的年代,他们解放了计算机从业人员的生产力,也奠定了现代高级计算机语言的雏形。值得我们细细回味。
Lisp,由编程语言到编程思想
Lisp诞生于上世纪60年代,由图灵奖得主约翰·麦卡锡创造;全名LISt Processor,可以理解为链表处理语言。在今年历期的编程语言排行榜中,Lisp都有上佳表现,从五月份的榜单开始进入前20名(这个排名一部分来自Lisp本身和它的方言Scheme和Clojure)。
简单来说,Lisp是一门关于列表操作的编程语言,在Lisp中,无论是数据还是程序流程代码都由列表组成;而每个列表都由一些原子和列表组成;数字就是原子。下面是一段Lisp简单的代码示例:
- > (first '(lions tigers bears))
- LIONS
- > (rest '(lions tigers bears))
- (TIGERS BEARS)
在编程语言史上,Lisp代表了一种重要的编程思想,在与Lisp同时代同影响力的编程语言还有Fortran,这两门语言从两个不同的方向直接影响着现代高级编程语言进化。Lisp的基础是数学和逻辑,而Fortran代表的是与硬件架构的依附与融合。Lisp在创建之初就定义了现代语言广为流行的几种编程思想,其中2种至今仍然是Lisp所独有的。它们是:
1、条件结构,即if-then-else
2、函数也是一种数据类型。在Lisp语言中,函数与整数或字符串一样,也属于数据类型的一种。
3、递归,Lisp第一次在编程语言中提出递归的概念并实现。
4、变量的动态类型。在Lisp语言中,所有变量实际上都是指针。
5、垃圾回收机制。这个无需解释了吧。
6、程序由表达式(expression)组成。Lisp程序是一些表达式区块的集合,每个表达式都返回一个值。
7、符号(symbol)类型。符号实际上是一种指针,指向储存在哈希表中的字符串。
8、代码使用符号和常量组成的树形表示法
9、无论什么时候,整个语言都是可用的。Lisp并不真正区分读取期、编译期和运行期。你可以在读取期编译或运行代码;也可以在编译期读取或运行代码。
这些思想被广泛应到到现代编程语言的设计中。如果你熟悉的语言足够多,可以看出这样的趋向,Java、Perl、Python、Ruby,语言越是进化越在思想上向Lisp靠拢。
经过半个多世纪的发展,Lisp依然表现出旺盛的生命力,这与其两门方言的流行和普及有关,它们是Scheme和Clojure。Scheme具有很好的移植性和嵌入性,由于其解释语言的特性,不同的平台的都有相应的解释器;Scheme另一个特点就是解释器非常小巧,可以作为一门脚本语言内嵌于很多工具之中,例如GNU。Lisp的另一门方言是当今在JVM平台大红大紫的Clojure,带着Lisp的语言特性,具备良好动态函数式编程的Clojure可以编译为字节码在JVM上运行。
编程语言不仅仅是一种技术,它更是一种思维习惯。不同的语言用不同的方式影响我们的大脑思维,这并不是因为这种语言可以让我们这样思考问题,而是它在强迫你这样思考。如今,Lisp更多作为一种编程思想存在,而基于其特性和思维的方言在各自的领域大为流行和发展。可以说,当今的Lisp已经不只是一种编程语言,更是一种重要的编程思想和思维方式。网上有人撰文称:程序员要学的最后一门语言就是Lisp。
下面是本期编程语言排行榜的其他排名数据和趋势走向。我们重点关注C#和Scala两名语言。#p#
前10名编程语言趋势走向
在最近10年里,C#语言一直保持着上扬趋势,已成为微软平台的主力编程语言。详细请参考之前的编程语言排行榜:微软锋利的刀C# 。
其他编程语言及趋势
下面是本期榜单第21-50的编程语言排名,Go语言小幅上升,但仍没进入前20名的榜单。
Position | Programming Language | Ratings |
---|---|---|
21 | Go | 0.587% |
22 | NXT-G | 0.583% |
23 | PL/SQL | 0.566% |
24 | PowerShell | 0.552% |
25 | ABAP | 0.547% |
26 | R | 0.544% |
27 | Lua | 0.503% |
28 | Object Pascal | 0.496% |
29 | Scheme | 0.493% |
30 | Awk | 0.460% |
31 | Fortran | 0.435% |
32 | C shell | 0.398% |
33 | D | 0.397% |
34 | COBOL | 0.391% |
35 | Tcl | 0.365% |
36 | Logo | 0.361% |
37 | ActionScript | 0.349% |
38 | CL (OS/400) | 0.339% |
39 | APL | 0.338% |
40 | Scratch | 0.332% |
41 | JavaFX Script | 0.307% |
42 | Haskell | 0.301% |
43 | PL/I | 0.291% |
44 | Prolog | 0.283% |
45 | Visual Basic .NET | 0.259% |
46 | Korn shell | 0.247% |
47 | Forth | 0.247% |
48 | Q | 0.244% |
49 | Erlang | 0.242% |
50 | IDL | 0.233% |
下面是第50到100的编程语言排名
本期榜单,我们在50-100名的区间里看到了Scala,上期Scala排名第50位,本期再度下滑。
(Visual) FoxPro, ABC, Algol, Alice, Bash, bc, Beta, Bourne shell, C++/CLI, CFML, cg, Clean, cT, Curl, Dylan, Eiffel, Euphoria, F#, Factor, Groovy, Icon, Io, J, JScript.NET, LabVIEW, LabWindows/CVI, MAD, MAX/MSP, ML, Modula-2, MUMPS, Natural, Oberon, Objective Caml, Occam, Oz, Postscript, PowerBuilder, REALbasic, Rebol, S, Scala, SIGNAL, Smalltalk, SPSS, Standard ML, Verilog, VHDL, XBase, XSLT
编程语言类别
下面给出了编程语言类别的一年变化趋势。
Category | Ratings Nov 2010 | Delta Nov 2009 |
---|---|---|
Object-Oriented Languages | 56.7% | +2.4% |
Procedural Languages | 38.0% | -3.5% |
Functional Languages | 3.6% | +0.7% |
Logical Languages | 1.7% | +0.4% |
动态和静态语言趋势走向
Category | Ratings Nov 2010 | Delta Nov 2009 |
---|---|---|
Statically Typed Languages | 63.1% | +4.1% |
Dynamically Typed Languages | 36.9% | -4.1% |
【2010年榜单回顾】
- 11月编程语言排行榜:手机里的代码
- 10月编程语言排行榜:Java的混乱之治
- 9月编程语言排行榜:Perl 不走寻常路
- 8月编程语言排行榜:微软锋利的刀C#
- 7月编程语言排行榜:这里有支足球队
- 6月编程语言排行榜:框架之翼
- 5月编程语言排行榜:动态语言的前世今生
- 4月编程语言排行榜:Top20里的“陌生人”
- 3月编程语言排行榜:Fortran归来
- 2月编程语言排行榜:Objective-C的咏叹调