7月編程語言排行榜:Java,正在老去的王者
原創(chuàng)【51CTO獨(dú)家特稿】Tiobe近日發(fā)布了最新一期的編程語言排行榜,在前十名的榜單中,除C#上升一位與上期排名第六的Python交換位置外,其他排名無明顯變化。本期榜單,我們關(guān)注Java的持續(xù)下滑。
51CTO編輯推薦:Java面臨終結(jié) 取代者將是Scala?
王者之路
1990年代,隨著計算機(jī)硬件技術(shù)的發(fā)展和成本的下降,電腦開始在企業(yè)中迅速普及,每個公司都開始自己的信息化之路以節(jié)約成本提升效率;隨后,個人電腦開始在家庭用戶群體得到普及?!暗谌卫顺薄钡念A(yù)言波瀾壯闊的展開并迅速蔓延;互聯(lián)網(wǎng)的發(fā)展將這次信息化革命推向高潮。1995年,市場占有率高達(dá)95%Netspace瀏覽器開始使用一種Java Applet技術(shù)為人們提供炫目而安全的使用體驗(yàn)(當(dāng)時發(fā)布的版本叫HotJava瀏覽器,Netspace與Sun聯(lián)合推出)。這吸引了大批編寫CGI程序的開發(fā)者關(guān)注;漸漸的,Java的各種優(yōu)點(diǎn)被人們挖掘,字節(jié)碼、垃圾回收、更強(qiáng)的面向?qū)ο?,這種基于虛擬機(jī)的語言開始在程序員中迅速傳播并被實(shí)踐到各種類型的項目中。
經(jīng)過幾年的演化和改進(jìn),到2000年,Java已經(jīng)成功超越當(dāng)時的主流語言C和C++;2002年,Java一躍成為采用率最高的編程語言?!耙淮尉帉懙教庍\(yùn)行”的口號使更多企業(yè)級項目的程序員得到解脫,龐大復(fù)雜的項目需求開始告別混亂的結(jié)構(gòu)和錯誤的指針,就像80年代C++的出現(xiàn)一樣,Java使程序員的生產(chǎn)力又一次得到了大幅提升。
一般地,我們可以從開發(fā)工具的豐富和廠商的支持來評判一門語言是否流行。Java的開發(fā)工具形成了激烈的市場競爭,Borland推出了JBuilder,微軟匆忙啟動了Visual J++,IBM開始投資Visual Age for Java(Eclipse前身),Sun則推出了自己的NetBeans IDE。
這時,Java無疑成為了編程語言的王者,他以自己干凈的語法和強(qiáng)大的功能統(tǒng)治著企業(yè)級項目的開發(fā);Sun公司開始被程序員以一家軟件廠商看待并崇拜。
在變化中老去
沒有“銀彈”,沒有哪種語言可以完美適應(yīng)日新月異的IT界,至少Java的進(jìn)化的速度在最近幾年已經(jīng)遠(yuǎn)遠(yuǎn)無法追趕日趨復(fù)雜項目需求和苛刻的交付日期。人們開始嘗試各種開源項目以緩解Java在某些方面的不足,以Hibernate和Spring為代表的框架快速發(fā)展和普及;另一方面,Sun和JCP的各種標(biāo)準(zhǔn)不斷遭到人們的質(zhì)疑,JSF和JPA等官方框架被大多數(shù)開發(fā)者拋在一邊。而這背后,是Sun和JCP對新需求的麻木和對社區(qū)的漠視,這直接導(dǎo)致Java的更新落后于變化,Java正在新變化新需求中變得緩慢和老態(tài)。
Java最近一次讓你興奮的功能更新是什么?是1.4到Java 5.0的版本更新還是新加入的泛型語法?這些都是5年前的事了。面對社區(qū)中的眾多需求,JCP早已無法及時考量和應(yīng)對,Java的腳步在日趨蹣跚;更多的開發(fā)者在考慮項目是否應(yīng)該使用Java或者其他什么語言,總之,要他們解決的問題Java解決起來很麻煩;不滿的情緒開始在社區(qū)中蔓延。
DSL和敏捷
遠(yuǎn)在日本的松本行弘就是這其實(shí)之一,尋找適合自己的編程語言的夢想促使他開發(fā)了Ruby,一種比Perl更強(qiáng)大,比Python更面向?qū)ο蟮恼Z言;這時,關(guān)于程序開發(fā)效率的討論從各個軟件公司的項目小組蔓延到社區(qū),以Tom DeMacro為首的一群人人開始倡導(dǎo)敏捷開發(fā)以提高效率;作為對敏捷宣言的實(shí)踐,DSL(特定領(lǐng)域語言)開始被人們重拾并重視起來?;陟`活的語法,Ruby無疑成為DSL和敏捷的不二選擇。
不久,DHH(DAVID HEINEMEIER HANSSON)推出了基于Ruby編寫框架。隨著Web2.0引領(lǐng)的又一次互聯(lián)網(wǎng)高潮,基于Ruby on Rails的敏捷項目一個又一個的迅速建立并投入使用,人們驚奇的發(fā)現(xiàn)通過簡單的DSL改造,Ruby幾乎可以適應(yīng)任何Web項目。這時,Java陣營也開始躁動不安,Sun甚至雇傭了兩名JRuby團(tuán)隊的核心成員開發(fā)自己的Ruby解釋器以期擁有Ruby的動態(tài)和敏捷。JRuby是一個純Java實(shí)現(xiàn)的Ruby解釋器。通過JRuby,你可以在JVM上直接運(yùn)行Ruby程序,調(diào)用Java的API。
源于Java,超越Java
類似JRuby這種基于JVM的語言還有很多,比如Scala。Java泛型的創(chuàng)造者M(jìn)artin Odersky對為Java創(chuàng)造泛型時遇到的約束性記憶猶新,創(chuàng)建一個超越Java的新語言的念頭由此產(chǎn)生,并最終促成了Scala編程語言。Scala是一種針對JVM將函數(shù)和面向?qū)ο蠹夹g(shù)組合在一起的編程語言,高度的可伸縮性和對Java API的無縫兼容使Scala成為Java程序員解決某些問題的另一種選擇。
同樣基于JVM的語言還有Groovy、Jython等,他們雖然擁有不同的名字,不同的語法和特性,但相同的一點(diǎn)時他們都是基于JVM的語言,并對Java API非常友好。在日趨老態(tài)臃腫的Java之外,他們,為解決不同的問題域和應(yīng)用場景而生;在Java社區(qū)的龐大背影下,這些基于JVM的語言為需求而生,為問題而生,敏捷且充滿活力。
#p#
其他編程語言
以下是排名21到50的編程語言列表,請注意排名32位的Scala和排名47位的Groovy。
Position | Programming Language | Ratings |
---|---|---|
21 | Objective-C | 0.509% |
22 | ActionScript | 0.425% |
23 | Fortran | 0.400% |
24 | COBOL | 0.399% |
25 | Logo | 0.394% |
26 | Ada | 0.394% |
27 | FoxPro/xBase | 0.338% |
28 | PowerShell | 0.327% |
29 | Scratch | 0.274% |
30 | Transact-SQL | 0.271% |
31 | Prolog | 0.243% |
32 | Scala | 0.228% |
33 | Erlang | 0.203% |
34 | Haskell | 0.198% |
35 | ML | 0.196% |
36 | LabVIEW | 0.191% |
37 | Focus | 0.155% |
38 | Awk | 0.153% |
39 | Smalltalk | 0.150% |
40 | Forth | 0.145% |
41 | Alice | 0.142% |
42 | J | 0.133% |
43 | Tcl/Tk | 0.129% |
44 | JavaFX Script | 0.129% |
45 | Caml/F# | 0.118% |
46 | NXT-G | 0.118% |
47 | Groovy | 0.114% |
48 | APL | 0.111% |
49 | Bourne shell | 0.109% |
50 | CL (OS/400) | 0.107% |
下面是排名51-100的語言:
ABC, AD, Algol, Alpha, Applescript, Beta, Boo, C shell, cg, Clean, Cobra, cT, Curl, Dylan, Eiffel, Euphoria, Factor, Fan, Icon, IDL, Inform, Io, Lingo, MAD, Magic, Maple, Mathematica, MAX/MSP, MOO, MUMPS, Natural, Oberon, Occam, Oz, PL/I, Postscript, PowerBuilder, Progress, Q, R, Revolution, REXX, S-lang, SIGNAL, SPSS, SuperCollider, VBScript, Verilog, VHDL, XSLT
編程語言類別走勢
Category | Ratings July 2009 | Delta July 2008 |
---|---|---|
Object-Oriented Languages | 54.2% | -1.7% |
Procedural Languages | 41.8% | +0.7% |
Functional Languages | 2.8% | +0.7% |
Logical Languages | 1.1% | +0.2% |
Category | Ratings July 2009 | Delta July 2008 |
---|---|---|
Statically Typed Languages | 60.2% | +1.8% |
Dynamically Typed Languages | 39.8% | -1.8% |
【歷期榜單回顧】
- 09年6月編程語言排行榜::JavaScript轉(zhuǎn)正在即
- 09年5月編程語言排行榜::C++替代者風(fēng)采不再
- 09年4月編程語言排行榜:腳本語言占據(jù)半壁江山
- 09年3月編程語言排行榜:Visual Basic與PHP的暗戰(zhàn)
- 09年2月編程語言排行榜:商業(yè)編程語言的王者之爭
- 09年1月編程語言排行榜:C語言當(dāng)選08年年度編程語言
- 12月TIOBE編程語言排行榜 C或C++有望奪得年度語言
- 11月TIOBE編程語言排行榜 可視化編程語言日漸流行
- 10月TIOBE編程語言排行榜發(fā)布 PowerShell跌落谷底
- 9月TIOBE編程語言排行榜發(fā)布 Delphi東山再起
- 8月TIOBE編程語言排行榜 Python上升顯著
- 7月開發(fā)語言排行榜出爐 PowerShell有望成為年度黑馬