Tiobe近日公布了2009年8月的編程語言排行榜,51CTO注意到本期榜單中有Objective-CHE第一次進(jìn)入前二十名并取代之前的Lua,而Java、C、C++依然以絕對(duì)優(yōu)勢(shì)占據(jù)前三甲的位置。本期我們將重點(diǎn)關(guān)注微軟的.NET平臺(tái),以及新近推出的F#、Small Basic語言。
![]() C# 4.0借Visual Studio 2010 Beta1發(fā)力 很多人將C#認(rèn)為是微軟對(duì)Java的反擊,我們從C#語言的繼承體系,以及一些特性中可以看出,C#語言綜合了C、C++和Java的優(yōu)點(diǎn)。C# 看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運(yùn)行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個(gè)特點(diǎn),與COM(組件對(duì)象模型)是直接集成的,而且它是微軟公司.NET平臺(tái)的主力。51CTO注意到盡管微軟發(fā)布過J++,但還是不如C#對(duì)Java的威脅大。 ![]() 在Visual Studio 2010 Beta1發(fā)布后,C#關(guān)注度像是被注入強(qiáng)心劑一樣持續(xù)上升。更多的特性支持, 是廣大開發(fā)人員支持C#的動(dòng)力。比如51CTO曾報(bào)道過的Visual Studio 2010中使用C# 4.0的動(dòng)態(tài)類型,這一動(dòng)態(tài)類型的新特性包括:1、支持動(dòng)態(tài)查找;2、同時(shí)支持命名參數(shù)和可選參數(shù);3、增強(qiáng)的COM互操作特性;4、支持方差。從這里面 可以看到很多Javascript、Python這些動(dòng)態(tài)語言的影子。雖然C#越來越偏離靜態(tài)語言的道路,但從另一個(gè)角度來說,這些特性也都是為了提高程 序員的生產(chǎn)力。 大起大落的VB Visual Basic從誕生之日起就注定成為一門合適的入門語言,簡(jiǎn)單易學(xué)使Visual Basic成為很多程序員的第一門語言。微軟也很樂意將更多的新東西帶入Visual Basic,最新的Visual Basic 2010新特性包括:數(shù)組初始值設(shè)定項(xiàng)、集合初始值設(shè)定項(xiàng)、內(nèi)聯(lián)Lambda表達(dá)式、自動(dòng)實(shí)現(xiàn)屬性、泛化、No-PIA部署、與Python的集成、并行 計(jì)算擴(kuò)展等。不過目前來看,Visual Basic正處在一個(gè)十字路口,需要更多的新技術(shù)來支持它繼續(xù)前行。 盡管微軟Visual Studio 2010將加強(qiáng)對(duì)C++的支持,但是一向作為Visual Studio缺省語言的Visual Basic,還是會(huì)作為微軟的主力語言得到推崇。相信隨著Visual Studio 2010正式版的到來,更方便的Visual Basic會(huì)更好的提高程序員的工作效率。 微軟F#語言漸入佳境 F#是微軟發(fā)布的一款函數(shù)編程語言。功能編程語言將計(jì)算看作是數(shù)學(xué)函數(shù)的賦值,數(shù)學(xué)特性使得它對(duì)需要大量使用數(shù)學(xué)符號(hào)的領(lǐng)域的專業(yè)人士頗有吸引 力。微軟更允許F#運(yùn)行在CLR之上,51CTO認(rèn)為這也標(biāo)志著微軟將F#列為Visual Studio 2010上的“一等公民”。 作為今后.NET平臺(tái)的支柱,微軟希望F#能被用來構(gòu)建應(yīng)用程序的核心,并且在呈現(xiàn)層與C#、Visual Basic合力打造完美的應(yīng)用程序。從這里可以看出微軟全方位做大.NET平臺(tái)的決心。盡管F#在本期的榜單中排名并不顯眼,相信明年Visual Studio 2010正式版發(fā)布后,榜單前排一定有F#的位子。 其他微軟語言介紹 M語言,這種新編程語言是微軟新Oslo發(fā)展和面向服務(wù)策略的一部分,在保持文本(textual)和特定領(lǐng)域(domaiN-specific)的同時(shí),還整合了來自XAML的特性。 Spec#是C#的一個(gè)擴(kuò)展,支持許多契約(contract)屬性,如非Null類型系統(tǒng),前置和后置條件,循環(huán)常量(loop invariant)和對(duì)象常量等。這個(gè)擴(kuò)展將終結(jié)Null引用異常。 Nemerle是一種多范型語言(面向?qū)ο蠛秃瘮?shù)式),完全支持編譯器宏(后來更多的是Lisp的變種,而不是C++),以及許多其他的東西。Nemerla與Visual Studio 2010里發(fā)布的F#不同,后者是純函數(shù)式語言。 Small Basic,一款針對(duì)兒童的免費(fèi)編程語言。不像Scratch和Alice,這款工具屬于“無編碼”環(huán)境,本質(zhì)上講是一個(gè)簡(jiǎn)略版本的BASIC語言。 Axum語言曾經(jīng)叫做Maestro,它的目標(biāo)是提供一個(gè).NET環(huán)境下的并行編程模型,支持隔離、actor和消息傳遞。此語言借鑒了很多Erlang語言的元素,不過擁有類似C#的語法。 從Visual Basic到C#,我們不止看到微軟編程語言的發(fā)展路徑,也看到整個(gè)IT項(xiàng)目需求及技術(shù)的起伏發(fā)展,在51CTO.com與Windows教父 Jeffrey Richter一次關(guān)于程序語言發(fā)展的對(duì)話中,他提到編程語言最初的目的是為了讓人可以控制機(jī)器,從機(jī)器語言、匯編語言直到現(xiàn)在的高級(jí)語言和運(yùn)行在虛擬機(jī) 上具有更多面向?qū)ο蠛蛣?dòng)態(tài)特性的語言,編程語言最初的目的一直沒有改變,只是我們現(xiàn)在可以利用高級(jí)語言(比如C#)更加方便、輕松的開發(fā)我們的應(yīng)用來控制 機(jī)器。他認(rèn)為,未來的編程語言將會(huì)讓開發(fā)人員更輕松的控制機(jī)器,高度的自動(dòng)化和智能化將是未來編程語言發(fā)展的方向。 |
|