7月編程語言排行榜:這里有支足球隊(duì)
原創(chuàng)【51CTO獨(dú)家特稿】看到本期編程榜的標(biāo)題你也許會(huì)覺得奇怪,編程語言和足球,他們之間會(huì)有什么聯(lián)系嗎?
世界杯讓每個(gè)球迷都過足了癮。球星與球隊(duì),對手與戰(zhàn)術(shù),勝利與失敗,這都是足球的魅力。在本期編程語言排行榜的選題規(guī)劃中,我們想將各種編程語言組成一支最佳陣容,把應(yīng)用場景當(dāng)成假想敵,會(huì)是怎樣一種情形。于是,有了這期編程語言與足球混搭的編程榜。
(注:這是我們沒有嘗試過的形式,如果您有什么建議、意見可以留言或加入我們的用戶群“開發(fā)頻道de后院”群號(hào):50677317 進(jìn)行討論;當(dāng)然,我們也歡迎您提出您自己心目中的最佳陣容。)
這期編程榜,我們將應(yīng)用場景鎖定在Web應(yīng)用開發(fā)領(lǐng)域。這里涉及大量的前端展示和交互、復(fù)雜的業(yè)務(wù)處理邏輯以及高效、穩(wěn)定可靠的后端Web服務(wù)要求。這是絕大多數(shù)Web項(xiàng)目的需求描述,如果將其作為對手,我們會(huì)排出以下陣型。
前鋒:HTML、Javascript;(替補(bǔ):Flash、Silverlight)
中場:Java、C#、PHP、Ruby;(替補(bǔ):Python、VB)
后防:C、C++、F#、Perl;(替補(bǔ):Scala、Erlang)
門將:匯編語言
怎么樣,這絕對是一只全明星的最佳陣容。你也許會(huì)費(fèi)解,為何會(huì)如此安排?且聽我慢慢道來。
鋒線 = 前端
Web應(yīng)用的前端需求大家都很清楚,我們需要展示內(nèi)容,完成與用戶的交互。這看起來簡單,但在Web前端技術(shù)份那個(gè)沒,留給我們排兵布陣的空間一直不是很大。
HTML+JS,這是絕大多數(shù)網(wǎng)站的首選;當(dāng)然,我們也可以選擇Flash或者Silverlight等RIA技術(shù),但HTML簡單直接,效率毋庸置疑;JavaScript也已發(fā)展的足夠強(qiáng)大,幾乎可以勝任所有的交互和消息傳遞工作;另外,JavaScript還有jQuery、ExtJS等優(yōu)秀框架,盤帶和過人技術(shù)一流。#p#
中場 = 業(yè)務(wù)層
中場是一個(gè)球隊(duì)進(jìn)攻的發(fā)動(dòng)機(jī),在Web開發(fā)中也是整個(gè)項(xiàng)目的應(yīng)用核心。相比鋒線,中場可以選擇的空間更大些。Java、C#、PHP、Ruby,每一個(gè)都是當(dāng)今最為流行的編程語言;也有Python、VB等替補(bǔ)也相當(dāng)強(qiáng)悍。
Java的強(qiáng)大不言而喻。在Web開發(fā)領(lǐng)域,Java擁有Struts、Spring、EJB等經(jīng)典戰(zhàn)術(shù)組合,可以完成絕大多數(shù)核心業(yè)務(wù)的需求;值得一提的是Java在前端的表現(xiàn)也堪稱專業(yè),,JSF、MyFaces等框架可以很好的銜接鋒線與中場。唯一的不足之處是Java自身有點(diǎn)缺乏活力(詳細(xì)請參考51CTO之前的報(bào)道:Java,正在老去的王者),Sun被Oracle收購后,關(guān)于Java社區(qū)和JCP的詬病越來越多,Java 7遲遲未到;過多的框架選擇也使Java有時(shí)有些混亂。但無論怎樣,Java仍然是中場核心,絕對的王者。
依靠微軟和.NET框架的強(qiáng)大支持,如今的C#足以與Java并齊形成中場的雙核心。在Web方面,使用C#進(jìn)行ASP.NET開發(fā),結(jié)合Visual Studio,C#可以高效、簡單、易用的完成各種業(yè)務(wù)邏輯的開發(fā)。但C#并不完美,作為微軟這個(gè)俱樂部的球員,C#有點(diǎn)獨(dú),你懂的。
看過中場核心,我們在看看兩條邊路。PHP,當(dāng)今最流行的Web開發(fā)語言。強(qiáng)大的人氣和過硬的技術(shù),有其穿插跑動(dòng)、套邊傳中,幾乎一個(gè)人就可以盤活整個(gè)進(jìn)攻。一般的Web需求都可以通過PHP獲得很好的解決。另外,作為LAMP黃金組合的成員,PHP的另一個(gè)優(yōu)點(diǎn)的是身價(jià)不高,開發(fā)效率很高。
在PHP這個(gè)位置上我們還有一個(gè)選擇是Visual Basic,作為ASP.NET的另一種實(shí)現(xiàn)語言,VB也足夠優(yōu)秀,可惜,我們有任勞任怨的PHP了。關(guān)于PHP和VB之爭請參考51CTO之前的報(bào)道《Visual Basic與PHP的暗戰(zhàn)》。
說說我們的另一個(gè)邊鋒Ruby。這是近年興起的一門語言。它簡潔、靈活,編碼輕松愉快;更為可貴的是Ruby有一套堪稱殺手應(yīng)用的Rails框架,可以在整個(gè)項(xiàng)目中流程的梳理進(jìn)攻,提高節(jié)奏。關(guān)于Ruby的更多報(bào)道請參考去年十月的編程語言排行榜《Ruby穩(wěn)步提升》。
后防 = 數(shù)據(jù)層+Web服務(wù)層
我們很難以足球的陣型來用語言嚴(yán)格定義后防線,但所有Web應(yīng)用的后端服務(wù)、數(shù)據(jù)相應(yīng)、性能和穩(wěn)定性要求都集中在這一層。事實(shí)是,Java有Hibernate等相對完美的解決方案可以完成數(shù)據(jù)的持久性要求;所以更多時(shí)候,我們考慮后防作為Web Service的一面,性能、穩(wěn)定和安全性是其基本要求。
從這個(gè)角度講,我們這個(gè)陣容里的后防核心是誰呢?無疑是C語言。作為2008年的年度編程語言,已有30多年歷史的C絲毫不顯老態(tài),仍然在多數(shù)項(xiàng)目和系統(tǒng)中發(fā)揮這最為重要的作用。如今多數(shù)對性能和穩(wěn)定性要求苛刻的Web應(yīng)用中仍然使用C作為底層核心。關(guān)于C語言請參考去年11月的編程語言排行榜《C語言的耐力基因》。
與C相似,C++也是歷史悠久但仍舊強(qiáng)悍的一員;與C不同的是,C++面向?qū)ο蟮奶匦允蛊洫?dú)步于復(fù)雜應(yīng)用場景需求之間;連Java、C#等大牛都是師承自C++。目前,C++依然是系統(tǒng)底層、服務(wù)層、游戲開發(fā)等面向高效的系統(tǒng)級(jí)應(yīng)用開發(fā)的強(qiáng)者。
隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展,當(dāng)前的Web應(yīng)用正面臨高并發(fā)高負(fù)載的強(qiáng)大壓力。在并行計(jì)算方面,函數(shù)式編程語言是目前多核心多線程最好的解決方案。在這個(gè)位置上,F(xiàn)#雖然年輕,但也發(fā)展比較完備的語言,可以首發(fā)。當(dāng)然,強(qiáng)于并發(fā)的還有歷史悠久的Erlang和后起之秀Scala,也值得考慮。
最后我們再看看Perl,這門腳本語言簡潔明快,能勝任系統(tǒng)級(jí)、數(shù)據(jù)交互和應(yīng)用層等多各位置。特別是大型Web應(yīng)用,涉及到與Unix和Linux系統(tǒng)管理交互時(shí),Perl是我們的首選。
門將這個(gè)位置一直比較頭疼。在真實(shí)的Web應(yīng)用中,上一個(gè)硬件防火墻是最為恰當(dāng)?shù)倪x擇。但硬要在編程語言里挑一個(gè),我會(huì)選擇匯編語言。因?yàn)樗梢灾苯油讓佑布M(jìn)行交互,直接訪問存儲(chǔ)器和I/O端口且不受編譯器的限制。
如果C、C++等都無法滿足你的需求,那就考慮一下匯編語言,雖然容易產(chǎn)生bug、不宜維護(hù)和編碼,開發(fā)效率極低,但匯編是最直接最高效的保障,能很好的把握一個(gè)應(yīng)用程序的底線和根基。
下面是7月編程語言排行榜的詳細(xì)排名和趨勢情況請點(diǎn)擊下一頁
#p#
7月編程語言排行榜已經(jīng)新鮮出爐,Java依然占據(jù)頭把交椅,而C#擠掉(Visual)Basic占據(jù)了第五的位置,JavaScriptZ則擠進(jìn)前10。
7月編程榜
其他語言及排名
下面是第50到100的編程語言排名
ABC, Algol, APL, Applescript, Awk, Beta, cg, Clean, Curl, Dylan, Eiffel, Euphoria, Factor, Focus, Heron, Icon, IDL, Informix-4GL, Io, J, J#, LabWindows/CVI, Lingo, MAD, Maple, Mathematica, MAX/MSP, Modula-2, Modula-3, MS-DOS batch, MUMPS, Natural, Occam, Oz, PL/I, Postscript, PowerBuilder, Progress, Q, R, REALbasic, Revolution, REXX, SIGNAL, Smarty, Spark, SPSS, VBScript, VHDL, XSLT
編程語言類別
下面給出了編程語言類別的一年變化趨勢,面向?qū)ο缶幊蹋∣bject-Oriented Languages)依然占到編程語言類型的半壁江山。
【編輯推薦】
- 6月編程語言排行榜:框架之翼
- 5月編程語言排行榜:動(dòng)態(tài)語言的前世今生
- 4月編程語言排行榜:Top20里的“陌生人”
- 3月編程語言排行榜:Fortran歸來
- 2月編程語言排行榜:Objective-C的詠嘆調(diào)
- 1月編程榜發(fā)布:Google Go意外奪得年度編程語言