VB.NET路在何方?
很多人想知道微軟為何重視C#而輕視VB.NET,為何VB.NET開發(fā)者和C#開發(fā)者同工不同酬,VB.NET開發(fā)者的未來在哪里。.NET管理語言組的項(xiàng)目經(jīng)理Lisa Feigenbaum在播客上向VB.NET社區(qū)保證——VB的未來依舊是光明燦爛的。
Lisa解釋了為何大家對VB.NET和C#有不同的理解:首先這是由微軟的策略所決定的。微軟可不僅僅想在CLR上面運(yùn)行兩套語法完全不同的語言,公司希望這兩種語言能夠各司其職,因此在.NET的世界中,這兩種語言的發(fā)展路線是截然不同的。微軟發(fā)布的大多數(shù)文檔都包含了豐富的C#示例,與此相反,VB.NET的示例數(shù)量就大打折扣了,因此大家都覺得VB.NET并不受寵,有些窮途末路了。
根據(jù)Lisa所述,一開始微軟想在這兩種語言中分別加入不同的特性以便讓他們各取所長,但VB.NET用戶一次又一次地要求微軟向VB.NET中加入C#特性,同時C#用戶也想在C#中加入VB.NET特性,這么做的直接后果就是微軟決定同步發(fā)展這兩種語言。同時VB.NET開發(fā)者的數(shù)量要比C#開發(fā)者多一些,因此微軟并不會扼殺VB.NET,這也不是公司的意愿。當(dāng)18個月前VB.NET與C#設(shè)計(jì)團(tuán)隊(duì)合并在一起以共同推進(jìn)語言的發(fā)展時,微軟的這項(xiàng)承諾也終于付諸實(shí)踐了。
C#的***架構(gòu)師Anders Hejlsberg檢視了這兩個語言的發(fā)展歷程得出這樣一個結(jié)論:兩種語言都在不斷發(fā)展。每當(dāng)Anders決定兩種語言要實(shí)現(xiàn)的某個新特性后,VB.NET與C#開發(fā)團(tuán)隊(duì)就分別鉆進(jìn)了各自的房間討論如何根據(jù)相應(yīng)語言的語法和整體設(shè)計(jì)原則來實(shí)現(xiàn)這個新特性。這么做會導(dǎo)致兩種后果:其一,兩種語言增加同樣的特性集,其二,每種語言都保持自己的個性而不管另一種語言到底是怎么做的。這就確保了VB.NET并不會被C#所蠶食。這兩種語言的同化性越來越明顯了。到目前為止,C#能做而VB.NET不能做的東西就剩下XNA游戲了,因?yàn)閂B.NET沒有對應(yīng)的項(xiàng)目模板。然而微軟希望填平語言間的鴻溝,因此這兩種語言最終將走向大同世界。
我們將在下個版本的Visual Studio中看到兩個語言設(shè)計(jì)小組合并后的努力成果。VS最初是用C和C++開發(fā)的,但VS 2010的編輯器和編譯器將包含更多的托管代碼,力度也是史上***的,這意味著將使用更多的C#和VB.NET代碼。VS和Office并不會一夜間都變成托管代碼,因?yàn)檫€有不少遺留代碼尚存,但新寫的大部分都是托管代碼。
一些調(diào)查機(jī)構(gòu)表示VB.NET與C#開發(fā)者同工不同酬,前者薪酬要比后者少10-15%,我們認(rèn)為這是由于大家對VB.NET的認(rèn)識偏差造成的,這種觀念已經(jīng)根深蒂固了,因此還需加以時日才能讓大家看到這兩種語言其實(shí)是一樣的,他們都是微軟的親生骨肉。
【編輯推薦】