Windows Phone 7破壞了.NET語言的協同發展?
Windows Phone 7于上周正式發布了,微軟正在為Windows Phone 7的成功發布而興奮,但是在一片喜氣洋洋的背后同樣也有著隱憂。
2009年微軟的Lucas Bolognese公開承諾協同發展C#和Visual Basic。雖然這兩種語言都能自由地添加各自的特性,但如果一個新功能在另一個語言里沒有就不能在這個語言里添加。在.NET 4里,函數式編程特性被添加到Visual Basic,動態特性則被添加到C#,這在很大程度上兌現了這個承諾。然而,一個揮之不去的問題和新的矛盾卻為這個承諾蒙上陰影。
當前爭論的核心是VB不支持Windows Phone 7。幾個月來,我們一直在注視這個事件的發展,期待微軟就VB是否或者何時支持他們的新平臺做出堅定的承諾。隨著Windows市場的免費/共享軟件的飽和,Windows Phone成為獨立軟件供應商在不離開.NET生態系統為大眾市場提供應用程序的重要平臺。因此不難理解VB粉絲的竭力反抗。
為了不再失去更多的市場份額,他們把所有資源用于構建這個平臺,于是不難理解微軟決定只專注于他們最重要的語言。雖然CLR是專門為C#和VB(以及Java,這點比較奇怪)設計的,但事實上C#才是用于核心功能的語言,因此需要優先考慮。盡管這個承諾雷聲大雨點小,Visual Basic用戶仍然需要得到尊重,否則這個平臺就會失去信用。
51CTO曾在“開發者眼中Windows Phone 7的進步與退步”中提到Visual Basic for Windows Phone 7的CTP版已經發布,緊張的氣氛有所緩和。 微軟是強調這是一個“早期”預覽版,并且遠未達到產品級別的質量。雖然Silverlight模板已經提供,但XNA仍未得到支持。這是一個多年的痛處,即使現在也沒有辦法在Xbox 360上使用Visual Basic。我們以為當VB 9支持生成無需VB運行庫(XBox不支持這些操作碼)的應用程序時,這個問題會得到解決,但事實上并沒有解決。
雖然目前沒有涵蓋在語言協同發展的承諾里,F#卻慢慢開始支持Windows Phone 7了。 大約一個月前發布的F#的八月份CTP版包含了一個Windows Phone 7版本的F#運行庫,FSharp.Core.dll。 而所需的F# Silverlight應用程序的項目模板也通過Windows Gallery發布了。和VB一樣,F# XNA應用程序的模板也沒有提供。
我們在論壇里看到,另一個被要求的最流行語言不是IronPython,雖然很多人都想要它。也不是實際上已被放棄的JScript.NET或者IronRuby語言。而我們看到人們要求的是那個奇怪的混合體,C++/CLI。顯然,很多開發者希望把遺留的C++應用程序移植到Windows Phone上,并且把C++/CLI看作最佳選擇。雖然用戶界面肯定要重寫了,但他們深信剩下的代碼可以重用。(應當指出的是,C++/CLI已經通過ECMA-372標準化了,因此可由第三方提供,如果硬件支持的話。)
原文地址:http://www.infoq.com/news/2010/09/Co-Evolution-Doubts
原文名稱:Windows Phone 7 has put the .NET Language Coevolution Promise in Doubt
原文作者:Jonathan Allen
【編輯推薦】
- Windows Phone 7版Adobe Acrobat 10將發布
- 開發者眼中Windows Phone 7的進步與退步
- 微軟推Windows Phone 7 Silverlight程序員成贏家
- Windows Phone 7今日面世 微軟“絕地反擊”