6月編程語言排行榜:框架之翼
原創(chuàng)【51CTO獨家特稿】TIOBE今天(6月7日)發(fā)布了最新一期的編程語言排行榜,在本期榜單中,曾奪得2009年年度編程語言的Google Go跌出前20名;TIOBE評論稱,最初Google Go能獲得如此成績(Google Go推出三個月就獲得了1.25%的增長),多數是出于人們的好奇心:一門由Google推出的編程語言。
Google Go的確有其技術上的閃光點。Go自身支持并發(fā)編程,因此滿足了對多處理器充分利用語言的需求;眾多頂級程序員的參與其設計和代碼改進也使得人們對它充滿信心。但關鍵是,Go還沒有在眾多的編程語言中找到合適它的位置。
在這期編程榜中,Java重新回到榜首的位置,第二名至第五名分別是:C、C++、PHP、Visual Basic。本期編程榜我們關注的主題是開發(fā)框架(Framework)。
《設計模式》中對框架的定義是:框架就是一組相互協作的類,對于特定的一類軟件,框架構成了一種可重用的設計。使用開發(fā)框架可以減少重復開發(fā)工作量、縮短開發(fā)時間,降低開發(fā)成本。同時,框架的引入和使用還可以使程序設計更加合理和穩(wěn)定,利于二次開發(fā)和維護??蚣艿氖褂迷赪eb開發(fā)中應用尤為廣泛。對于一個特定的項目,選擇合適的語言平臺及框架會使你如虎添翼。
Ruby——因框架而流行
Ruby是一門因開發(fā)框架而走紅的語言。沒錯,是Rails框架才使Ruby變得如此熱門。最初Ruby只是其創(chuàng)始人Matz對理想編程語言的一個實踐,1993年開始編寫,1995年12月才發(fā)布第一個版本。經過漫長的發(fā)展,自2000年后才被日文以外的開發(fā)者了解。
Ruby是一門純面向對象的語言,開發(fā)效率非常高。減少編程時候的不必要的瑣碎時間,令編寫程序的人高興,是Matz設計Ruby語言的一個首要的考慮。
在Ruby on Rails之前,Rails的創(chuàng)始人DHH曾嘗試過使用PHP進行框架設計,但他最終選擇了Ruby。靈活高效的Ruby語言搭配良好框架設計思想,DHH對Rails的解釋是“最近的一條路”。從Rails這個名字我們可以看出,DHH希望軟件開發(fā)可以沿著一個正確的軌跡不斷向前,告別復雜的左轉右轉和討厭的紅燈;他也是按照這樣的想法架構整個Rails。目前,Ruby on Rails已經進階主流Web開發(fā)技術,使用其開發(fā)的各種網站不計其數,詳細可以參考51CTO之前的報道《TOP 50 用Ruby on Rails開發(fā)的網站》。關于Ruby on Rails創(chuàng)始人DHH的更多介紹請參考51CTO的創(chuàng)始人小傳《Ruby on Rails創(chuàng)始人DHH:架構是將復雜的問題簡單化》 #p#
PHP——最流行最泛濫
上文我們曾提到,DHH曾嘗試過使用PHP進行最初的框架設計,但他最后放棄了PHP。這里面涉及到的不是只編碼效率和DSL能力,更多的是編程語言底層機制和運行效率。
PHP每次HTTP請求都要初始化資源,這個過程的開銷非常大。盡管PHP解析器的運行速度快速且沒有缺陷,但一旦使用框架,那么每次請求時初始化整個框架使性能的下降非常厲害,當使用一個很復雜的PHP框架的結果就是整體性能嚴重下降;同時,PHP語言本身的問題造成了PHP添加跨請求的高級特性相當困難,這是PHP本身一個很大的限制,但是反過來說,正是這種限制使得PHP始終保持在一個比較簡單的Web語言上面,而正是這一點才是PHP得以成為互聯網流行Web編程語言的原因。
但作為最流行的Web編程語言,數量眾多的PHP程序員無法拒絕框架的誘惑,這也催生了PHP開發(fā)框架的泛濫。在51CTO對PHPCMS創(chuàng)始人鐘勝輝的采訪中他談到:PHP的框架跟ROR的情況有所不同,多而混亂;他同時提到:從長遠來看,一個優(yōu)秀的框架可以延長一個項目的壽命,降低維護和二次開發(fā)的成本。
目前主流的PHP開發(fā)框架主要有:Zend Framework、CakePHP、CodeIgniter、Symfony等,國內也涌現出ThinkPHP、FleaPHP等優(yōu)秀PHP框架。對于PHP開發(fā)者而言,如何在眾多框架中挑選一個適合自己項目的成了一個難題。關于PHP框架的介紹和選擇,可以參考51CTO之前的報道《國外十大最流行PHP框架排名》和《幾款主流PHP框架的優(yōu)缺點評比》。
在Web開發(fā)領域,關于PHP和Ruby語言的爭論一直存在,詳細請參考51CTO的策劃專題:大師論戰(zhàn)Web開發(fā):Ruby和PHP誰將稱王?
還有很多
不只是Ruby和PHP,在編程語言排行榜的眾多語言中,幾乎所有主流語言都有多種自己的框架,比如Python的Django、JavaScript的jQuery、C++的MFC以及著名的Java開發(fā)框架Spring、Hibernate、Struts等。事實是,開發(fā)框架的使用已成為當前軟件開發(fā)的主流應用形態(tài)。
同一門語言的不同框架往往都能實現相同的功能,根據自身項目和框架的特點進行選擇尤為重要。在JavaScript方面,Dojo面向對象功能強大,提供豐富的庫及UI控件;jQuery則以簡潔、快速著稱,對DOM對象和事件處理尤為擅長;prototype則顯得更為輕量,善于處理Ajax的交互過程。
有時,基于同一種語言,不同的框架也具有不同的應用場景,比如對Java而言,Hibernate專注于數據層的持久化,Struts則精于業(yè)務邏輯的處理。#p#
框架的誕生和演進不僅拓展了編程語言的應用場景和范圍,還大幅提高了基于語言平臺的項目開發(fā)和維護效率??蚣苁拐Z言如虎添翼,善用框架,可以使你的項目錦上添花。
前十名編程語言走勢圖
其他語言及排名
Position
Programming Language
Ratings
21
Go
0.519%
22
ActionScript
0.501%
23
Transact-SQL
0.486%
24
RPG (OS/400)
0.443%
25
Bourne shell
0.426%
26
Ada
0.416%
27
D
0.398%
28
JavaFX Script
0.393%
29
FoxPro/xBase
0.388%
30
COBOL
0.380%
31
Fortran
0.376%
32
Haskell
0.365%
33
S-lang
0.347%
34
Alice
0.340%
35
LabVIEW
0.333%
36
Logo
0.330%
37
Scratch
0.329%
38
Tcl/Tk
0.321%
39
J
0.305%
40
NXT-G
0.301%
41
Forth
0.294%
42
Prolog
0.254%
43
Scala
0.253%
44
Groovy
0.251%
45
Caml/F#
0.248%
46
CL (OS/400)
0.240%
47
Erlang
0.234%
48
Q
0.224%
49
Smalltalk
0.222%
50
ML
0.213%
下面是第50到100的編程語言排名
ABC, Algol, Alpha, APL, Applescript, Awk, Beta, C shell, cg, Clean, cT, Curl, Dylan, Eiffel, Euphoria, Factor, Falcon, Focus, Heron, Icon, IDL, Informix-4GL, Io, LabWindows/CVI, Lingo, MAD, Maple, Mathematica, MAX/MSP, Modula-2, MS-DOS batch, MUMPS, Natural, Occam, OpenCL, Oz, PL/I, Postscript, PowerBuilder, Progress, R, REALbasic, Revolution, REXX, SIGNAL, SPSS, VBScript, Verilog, VHDL, XSLT
編程語言類別
下面給出了編程語言類別的一年變化趨勢,面向對象編程(Object-Oriented Languages)依然占到編程語言類型的半壁江山。
Category
Ratings Jun 2010
Delta Jun 2009
Object-Oriented Languages
55.5%
+0.3%
Procedural Languages
39.9%
-1.0%
Functional Languages
3.2%
+0.2%
Logical Languages
1.5%
+0.5%
Category
Ratings Jun 2010
Delta Jun 2009
Statically Typed Languages
62.8%
+3.5%
Dynamically Typed Languages
37.2%
-3.5%
編程語言類型走勢:
【編輯推薦】
- 5月編程語言排行榜:動態(tài)語言的前世今生
- 4月編程語言排行榜:Top20里的“陌生人”
- 3月編程語言排行榜:Fortran歸來
- 2月編程語言排行榜:Objective-C的詠嘆調
- 1月編程榜發(fā)布:Google Go意外奪得年度編程語言






























