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