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