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 用户仍然需要得到尊重,否则这个平台就会失去信用。
现在,
Visual Basic for Windows Phone 7 的 CTP 版已经发布,紧张的气氛有所缓和。 微软是强调这是一个“早期”预览版,并且远未达到产品级别的质量。虽然 Silverlight 模板已经提供,但 XNA 仍未得到支持。这是一个多年的痛处,即使现在也没有办法在 Xbox 360 上使用 Visual Basic。我们以为当 VB 9 支持生成无需 VB 运行库(XBox 不支持这些操作码)的应用程序时,这个问题会得到解决,但事实上并没有解决。
虽然目前没有涵盖在语言协同发展的承诺里,F#却慢慢开始支持 Windows Phone 7 了。 大约一个月前发布的
F#的八月份 CTP 版包含了一个 WP7 版本的 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 标准化了,因此可由第三方提供,如果硬件支持的话。)
评论