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