很多人对 Visual Basic 最大的一个抱怨就是它对运行时库的依赖。包含了用于 VB 语言构造的一些辅助函数的这个类库(译者注:这个类库即 Microsoft.VisualBasic.dll,VB 语言的很多基础功能都需要调用到这个类库),是作为.NET 平台的一个基本功能共同发布的。对大多数用户而言这不会有什么问题,但对于非标准平台问题就大了。
首当其冲为这一问题所困扰的平台是 Mono。因为这一依赖,在 Mono C#编译器推出多年以后,VB 编译器还无法实现。
另外一个因为需要这个运行时而受害的平台是.NET Compact Framework 和 XBox 360。这一问题的根源是 VB 运行时里使用了某些.NET Compact Framework 和 XBox 360 里没有的 IL 指令。
为了易于支持上述受害的以及其他可能用到 VB 运行时的平台,Visual Basic 9 针对如何支持运行时增加了良好的灵活性。在将来它会给开发者提供一种选择,让你可以根本不引用 VB 运行时。显然,这意味着那些关联的语言属性将不会在编译期出现。另外一个是被 Paul Vick 称为“运行时敏捷 ”(Runtime Agility)的选择。也就是说,到那时平台开发人员可以实现自己的VB 运行时版本。
这些新的选择会得到编译器的全部支持。所以如果你真的替换了原有的运行时,决定不支持某个特定的VB 语言属性时,你会得到一个明确的错误信息提示,而不是编译器直接崩溃。
这一功能会随Orcas Beta 2 版本发布。
查看英文原文: VB Breaks Its Runtime Chains
评论