从榜单中我们不难看出,在11月的语言使用率指数上,Java占有18.373%,C语言17.315%。Tiboe编程语言排行榜的前两名差距从未如此之小,作为2008年度编程语言的C仅以1%的差距落后Java;而上一次C和Java如此接近还在2005年。这一方面反映了Java的下滑速度增快(详细请参考7月编程语言排行榜:Java,正在老去的王者);一方面也可以看出,C这门具有近30年历史的编程语言历久弥新,一些优秀特性至今仍被广泛应用。本期排行榜,就让我们一起解析C语言的耐力基因,看看是那些因素成就一门经典编程语言。
血统纯正
C语言源自对B语言的改进与完善。1970,UNIX的发明者丹尼斯·里奇(Dennis Ritchie)和肯·汤普逊(KenThompson)为自己的项目设计开发了B语言;后经贝尔实验室对B语言的完善和改进,于1978年正式发布C语言。显赫的背景使C语言一诞生便具有纯正优良的科学血统:丹尼斯·里奇在编程史上地位无人能及,贝尔实验室因其对项目测试的苛刻要求使C语言经过严格而缜密的测试。
而这一切,为C语言日后在底层控制和性能方面的优势打下坚实的基础,使之成为芯片级开发(嵌入式)和Linux平台开发的首先语言。如今,C语言在通信、网络协议、破解、3D引擎、操作系统、驱动、单片机、手机、PDA、多媒体处理、实时控制等领域,正在用一行行代码证明它从应用级开发到系统级开发强大和高效。
代码之美
一门编程语言能够得到广泛的使用和长久的发展,除去语言特性和应用场景,其易用性和可维护性也是重要原因;良好的代码风格和内在逻辑将是程序员和项目经理选型时考虑的重要因素。作为一门面向过程的编程语言,C代码的逻辑性和简洁性无人能及。简单易学是C语言流行的主要原因。现在,很多计算机专业的学生都是用C进行编程入门;工作在一线的程序员,很少没有写过C程序。借助于C语言被广泛使用的特点,使C++在设计和推广之初也不得不考虑C的语法和特性,以便于吸引更多的C程序员学习和掌握。类似的语言还有榜单第三名的PHP。
如果你写了几年OOP程序,可以试着回想一下C的代码,代码简洁、数据结构丰富,对系统底层的控制无人能及。难道你不想在一堆对象和实例中解脱?当我们已经开始习惯用面向对象这种更高级方式思考和解决问题;大家对C强大的底层控制能力失去兴趣,因为那些复杂的代码已经可以交给编译器去实现,底层的操作已经完全可以交给类库和操作系统API去进行。
但这并不能否定C的经典。从本期榜单我们可以看出,C的经典还将延续,其良好的底层控制能和性能方面的优势,易用好学的语法特点将成为其长盛不衰的耐力基因;我想,这也是任何一门语言可以长久发展的必要因素。
下面是本期编程语言排行榜的其他语言排名及各项指数。
前50名编程语言排名
Position | Programming Language | Ratings |
---|---|---|
21 | ActionScript | 0.519% |
22 | COBOL | 0.430% |
23 | Transact-SQL | 0.412% |
24 | FoxPro/xBase | 0.379% |
25 | Fortran | 0.376% |
26 | Logo | 0.361% |
27 | Scratch | 0.346% |
28 | Alice | 0.329% |
29 | Ada | 0.305% |
30 | S-lang | 0.292% |
31 | RPG (OS/400) | 0.285% |
32 | Erlang | 0.261% |
33 | PowerShell | 0.259% |
34 | Scala | 0.244% |
35 | Awk | 0.243% |
36 | Prolog | 0.234% |
37 | NXT-G | 0.234% |
38 | Tcl/Tk | 0.221% |
39 | Focus | 0.209% |
40 | LabWindows/CVI | 0.193% |
41 | Haskell | 0.183% |
42 | PL/I | 0.177% |
43 | JavaFX Script | 0.176% |
44 | MAX/MSP | 0.161% |
45 | LabVIEW | 0.157% |
46 | Falcon | 0.156% |
47 | Groovy | 0.152% |
48 | Modula-3 | 0.146% |
49 | Forth | 0.144% |
50 | Smalltalk | 0.135% |
51-100名编程语言排名
4th Dimension/4D, ABC, AD, Algol, APL, Applescript, Beta, Boo,Bourne shell, C shell, Caml/F#, cg, CL (OS/400), Clean, Clojure, Cobra,cT, Curl, Euphoria, Factor, Fan, Icon, IDL, Inform, Informix-4GL, Io,J, Lingo, MAD, Mathematica, ML, Modula-2, MOO, MUMPS, Natural, Occam,Oz, PowerBuilder, Progress, Q, R, REALbasic, Revolution, SIGNAL, SPSS,SuperCollider, VBScript, Verilog, VHDL, XSLT
编程语言类型走势
Category | Ratings Nov 2009 | Delta Nov 2008 |
---|---|---|
Object-Oriented Languages | 54.4% | -3.2% |
Procedural Languages | 41.6% | +2.8% |
Functional Languages | 2.8% | +0.2% |
Logical Languages | 1.3% | +0.1% |
Category | Ratings Nov 2009 | Delta Nov 2008 |
---|---|---|
Statically Typed Languages | 59.2% | -0.2% |
Dynamically Typed Languages | 40.8% | +0.2% |