8月編程語言排行榜:微軟鋒利的刀C#
原創(chuàng)【51CTO獨家特稿】2010年8月TIOBE發(fā)布了新一期的編程語言排行榜,51CTO看到前5名的位置還沒有變化,關(guān)鍵是第6名的C#與之后的Python互相調(diào)換了位置。這似乎對于.NET平臺來說是一個好兆頭,畢竟C#是.NET平臺的一面旗幟。下面我們先看一下本期的排行榜榜單。
C#的降生
最初C#并不叫C#,它有個更酷的名字,叫做COOL。微軟從1998年12月開始了COOL項目,直到1999年7月,COOL被正式更名為C#。在英文中#被讀作Sharp,意味“鋒利”。看來微軟是希望能把C#鍛造成一把無比鋒利的刀。
微軟在經(jīng)歷了與Sun關(guān)于Visual J++的大規(guī)??谒毯螅坏貌簧釛壴械腣isual J++項目,轉(zhuǎn)而提出了CLR也就是公共語言運行時的概念。2000年6月26日微軟在奧蘭多舉行的“職業(yè)開發(fā)人員技術(shù)大會”(PDC 2000)上,發(fā)表新的語言C#。C#語言取代了Visual J++,語言本身深受Java、C和C++ 的影響。在講述了微軟C#的誕生過程后,我們不得不提到一位天才——Anders Hejlsberg(安德斯-海森博格) 。
天才的海森博格VS精明的蓋茨
Anders Hejlsberg(安德斯-海森博格)作為Delphi和C#之父,從Turbo Pascal、SideKick再到Delphi,Borland是Anders輝煌的起點,他在這里成為人們敬仰的軟件大師,并一手鑄就了Borland傳奇。但是1996年一個普通的下午,幾個小時前,他剛與比爾-蓋茨結(jié)束了一次愉快的午餐,同為軟件界的精英,他們相談甚歡,蓋茨給他開出三百萬以上的年薪和數(shù)萬股的微軟股票。這是一個誘人的條件,但更重要的是,蓋茨許諾他可以有充分的時間和資源投身自己感興趣的技術(shù)方向。
1996年,Anders最終正式加盟微軟,成為Visual J++和WFC(Windows基礎(chǔ)類庫)的架構(gòu)師?,F(xiàn)在Anders Hejlsberg是微軟的Technical Fellow,擔任C#編程語言的首席架構(gòu)師,也參與了.NET Framework、VB.NET和F#等語言的設(shè)計與開發(fā),有關(guān)Anders Hejlsberg的更多報道,歡迎訪問《Delphi與C#之父:技術(shù)理想架構(gòu)開發(fā)傳奇》。
很難說到底是海森伯格的天才征服了蓋茨,還是精明的蓋茨成功籠絡(luò)到海森伯格。但是不可否認的是,正是海森伯格的加入,是的微軟擁有了C#這一柄十分鋒利的刀。讓微軟得以在開發(fā)領(lǐng)域占據(jù)屬于自己的一片份額,取得與Java分庭抗禮的資格,盡管C#在很多地方借鑒了Java的思想。
利刃的威力
微軟C#語言定義主要是從C和C++繼承而來的,而且語言中的許多元素也反映了這一點。C#在設(shè)計者從C++繼承的可選選項方面比Java要廣泛一些(比如說struts),它還增加了自己新的特點(比方說源代碼版本定義)。但它還太不成熟,不可能擠垮Java。C#還需要進化成一種開發(fā)者能夠接受和采用的語言。
C#更像Java一些,雖然微軟在這個問題上保持沉默。這也是意料中的事情,我覺得,因為Java近來很成功而使用Java的公司都報告說它們在生產(chǎn)效率上比C++獲得了提高。
Java所帶來的巨大影響和大家對它的廣泛接受已經(jīng)由工作于這種語言和平臺之上的程序員數(shù)量明顯的說明了(估計世界范圍內(nèi)共有兩百五十萬程序員使用Java).由這種語言寫成的應(yīng)用程序的數(shù)量是令人驚訝的并已經(jīng)滲透了每一個級別的計算,包括無線計算和移動電話(比如日本發(fā)明的Java電話)。
C#能夠在用戶領(lǐng)域獲得這樣的禮遇嗎?我們必須等待并觀望,就像已經(jīng)由SSI公司的CEO和主席Kalpathi S. Suresh指出來的那樣,"我發(fā)現(xiàn)所有這些都是漸進的.如果C#不存在,我們總能回到Java或C和C++.這些都不完全是新技術(shù);它們在更大的意義上來說只是大公司制造的市場噱頭。我們必須給他們時間安頓下來看看這些是不是真的對IT工業(yè)有什么影響。"
C#從一開始就是純粹的OOPL(面向?qū)ο蟪绦蜷_發(fā)語言)。C#中的一切都是對象:基本的值類型,如int和double,都從Object類繼承而來。51CTO-.NET頻道向您推薦《C#實用基礎(chǔ)教程》以便于您更好的了解C#。
所有的圖形用戶界面(Graphical User Interface,GUI)構(gòu)件--窗口、按鈕、文本輸入欄、滾動欄、列表和菜單等--都是對象。所有函數(shù)都附加到對象上,這些函數(shù)稱為方法。C/C++中有脫離對象的方法,而C#中沒有。甚至是C#程序的入口點(現(xiàn)在稱為Main方法)都不再獨立存在,而是被綁定到類中。
因此,C#特別適合于編寫面向?qū)ο蟮膽?yīng)用程序,然而僅僅使用這種面向?qū)ο蟮恼Z言并不能保證所產(chǎn)生的應(yīng)用程序真正做到面向?qū)ο螅〕酥?,您必須理解兩個基本目標:(a)如何從根本上設(shè)計應(yīng)用程序以最有效地使用對象;(b)如何正確地使用C#語言。對于更加具體的技術(shù)細節(jié),請參考上面的C#基礎(chǔ)教程。
#p#
前10名編程語言趨勢走向
其他語言及排名
編程語言類別
Category | Ratings Aug 2010 | Delta Aug 2009 |
---|---|---|
Object-Oriented Languages | 54.9% | +0.6% |
Procedural Languages | 40.5% | -1.0% |
Functional Languages | 3.1% | +0.2% |
Logical Languages | 1.5% | +0.2% |
Category | Ratings Aug 2010 | Delta Aug 2009 |
---|---|---|
Statically Typed Languages | 62.2% | +2.5% |
Dynamically Typed Languages | 37.8% | -2.5% |
【編輯推薦】
- 7月編程語言排行榜:這里有支足球隊
- 6月編程語言排行榜:框架之翼
- 5月編程語言排行榜:動態(tài)語言的前世今生
- 4月編程語言排行榜:Top20里的“陌生人”
- 3月編程語言排行榜:Fortran歸來
- 2月編程語言排行榜:Objective-C的詠嘆調(diào)
- 1月編程榜發(fā)布:Google Go意外奪得年度編程語言