【51CTO獨家特稿】TIOBE今天(6月7日)發佈了最新一期的編程語言排行榜,在本期榜單中,曾奪得2009年年度編程語言的Google Go跌出前20名;TIOBE評論稱,最初Google Go能得到如此成績(Google Go推出三個月就得到了1.25%的增加),多數是出於人們的好奇心:一門由Google推出的編程語言。 php
6月編程語言排行榜前20名榜單程序員
Google Go的確有其技術上的閃光點。Go自身支持併發編程,所以知足了對多處理器充分利用語言的需求;衆多頂級程序員的參與其設計和代碼改進也使得人們對它充滿信心。但關鍵是,Go尚未在衆多的編程語言中找到合適它的位置。web
在這期編程榜中,Java從新回到榜首的位置,第二名至第五名分別是:C、C++、PHP、Visual Basic。本期編程榜咱們關注的主題是開發框架(Framework)。shell
《設計模式》中對框架的定義是:框架就是一組相互協做的類,對於特定的一類軟件,框架構成了一種可重用的設計。使用開發框架能夠減小重複開發工做量、縮短開發時間,下降開發成本。同時,框架的引入和使用還可使程序設計更加合理和穩定,利於二次開發和維護。框架的使用在Web開發中應用尤其普遍。對於一個特定的項目,選擇合適的語言平臺及框架會使你如虎添翼。編程
Ruby——因框架而流行設計模式
Ruby是一門因開發框架而走紅的語言。沒錯,是Rails框架才使Ruby變得如此熱門。最初Ruby只是其創始人Matz對理想編程語言的一個實踐,1993年開始編寫,1995年12月才發佈第一個版本。通過漫長的發展,自2000年後才被日文之外的開發者瞭解。ruby
Ruby是一門純面向對象的語言,開發效率很是高。減小編程時候的沒必要要的瑣碎時間,令編寫程序的人高興,是Matz設計Ruby語言的一個首要的考慮。架構
在Ruby on Rails以前,Rails的創始人DHH曾嘗試過使用PHP進行框架設計,但他最終選擇了Ruby。靈活高效的Ruby語言搭配良好框架設計思想,DHH對Rails的解釋是「最近的一條路」。從Rails這個名字咱們能夠看出,DHH但願軟件開發能夠沿着一個正確的軌跡不斷向前,告別複雜的左轉右轉和討厭的紅燈;他也是按照這樣的想法架構整個Rails。目前,Ruby on Rails已經進階主流Web開發技術,使用其開發的各類網站不可勝數,詳細能夠參考51CTO以前的報道《TOP 50 用Ruby on Rails開發的網站》。關於Ruby on Rails創始人DHH的更多介紹請參考51CTO的創始人小傳《Ruby on Rails創始人DHH:架構是將複雜的問題簡單化》
併發
PHP——最流行最氾濫框架
上文咱們曾提到,DHH曾嘗試過使用PHP進行最初的框架設計,但他最後放棄了PHP。這裏面涉及到的不是隻編碼效率和DSL能力,更多的是編程語言底層機制和運行效率。
PHP每次HTTP請求都要初始化資源,這個過程的開銷很是大。儘管PHP解析器的運行速度快速且沒有缺陷,但一旦使用框架,那麼每次請求時初始化整個框架使性能的降低很是厲害,當使用一個很複雜的PHP框架的結果就是總體性能嚴重降低;同時,PHP語言自己的問題形成了PHP添加跨請求的高級特性至關困難,這是PHP自己一個很大的限制,可是反過來講,正是這種限制使得PHP始終保持在一個比較簡單的Web語言上面,而正是這一點纔是PHP得以成爲互聯網流行Web編程語言的緣由。
但做爲最流行的Web編程語言,數量衆多的PHP程序員沒法拒絕框架的誘惑,這也催生了PHP開發框架的泛濫。在51CTO對PHPCMS創始人鍾勝輝的採訪中他談到:PHP的框架跟ROR的狀況有所不一樣,多而混亂;他同時提到:從長遠來看,一個優秀的框架能夠延長一個項目的壽命,下降維護和二次開發的成本。
目前主流的PHP開發框架主要有:Zend Framework、CakePHP、CodeIgniter、Symfony等,國內也涌現出ThinkPHP、FleaPHP等優秀PHP框架。對於PHP開發者而言,如何在衆多框架中挑選一個適合本身項目的成了一個難題。關於PHP框架的介紹和選擇,能夠參考51CTO以前的報道《國外十大最流行PHP框架排名》和《幾款主流PHP框架的優缺點評比》。
在Web開發領域,關於PHP和Ruby語言的爭論一直存在,詳細請參考51CTO的策劃專題:大師論戰Web開發:Ruby和PHP誰將稱王?
還有不少
不僅是Ruby和PHP,在編程語言排行榜的衆多語言中,幾乎全部主流語言都有多種本身的框架,好比Python的Django、JavaScript的jQuery、C++的MFC以及著名的Java開發框架Spring、Hibernate、Struts等。事實是,開發框架的使用已成爲當前軟件開發的主流應用形態。
同一門語言的不一樣框架每每都能實現相同的功能,根據自身項目和框架的特色進行選擇尤其重要。在JavaScript方面,Dojo面向對象功能強大,提供豐富的庫及UI控件;jQuery則以簡潔、快速著稱,對DOM對象和事件處理尤其擅長;prototype則顯得更爲輕量,善於處理Ajax的交互過程。
有時,基於同一種語言,不一樣的框架也具備不一樣的應用場景,好比對Java而言,Hibernate專一於數據層的持久化,Struts則精於業務邏輯的處理。
框架的誕生和演進不只拓展了編程語言的應用場景和範圍,還大幅提升了基於語言平臺的項目開發和維護效率。框架使語言如虎添翼,善用框架,可使你的項目錦上添花。
前十名編程語言走勢圖
其餘語言及排名
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% |
編程語言類型走勢:
【編輯推薦】