当.NET 刚刚发布时,Visual Basic 与 C#在社区中的基础是平起平坐的。但经过了多年的发展之后,微软正在逐渐地走向淘汰 VB 的方向。在 2008 年左右,VB 的未来首次遭受了质疑,而当时的结果是微软承诺了 C#与 VB 的同步发展。
但随着 Windows Phone 7 的推出,人们也开始怀疑这个承诺的有效性,因为它直到2010 年9 月才开始支持VB 。而之后,微软在他们的专业开发者认证项目中悄悄地取消了VB,使得质疑声再度出现。
最近,社区发现在即将到来的ASP.NET 5 中居然不打算支持VB,这无疑是一次侮辱。这一决定不仅违背了两门语言共同发展的承诺,而且还是在完全没有任何公开宣布的情况下做出的。去年12 月,有人专门因为不支持Visual Basic 这一事实提交了一个bug 。
自那时起,Visual Basic 的用户们终于觉醒了。虽然在博客社区中并没有召集到很大数量的代表人数,但他们还是通过正式渠道劝说微软在ASP.NET MVC 中为VB 提供完整的支持。 Jeffrey T. Fritz 这样写道:
从一次公开谈论 ASP.NET 5 的时候,我们就表示它是对于 ASP.NET 框架的一次主要升级,Roslyn 的使用与跨平台的理念贯彻其中。实现这一点有很长的路要走,我们专注于首先在 C#上实现完整的支持。自从我们首次公布这一项目之后的几个月以来,我们听取了各位的意见,了解了你们对 Visual Basic 的热爱,也知道你们希望在 ASP.NET 5 中看到对它的支持。
今天,我们很高兴地宣布 ASP.NET 5 将完整地支持 Visual Basic(包括工具与运行时两方面,甚至还包括跨平台的运行时支持)。一如以往的是,我们将继续保持 ASP.NET 5 开发的公开性,你可以在 GitHub 的项目 http://github.com/aspnet/home 中跟踪我们的进展,或是贡献你的力量。
许多开发者对此发出疑问,现在还有什么新的工作会选择使用 Visual Basic 吗?Michel Posseth 在回答中说道:
我在单位里平均一个月之内至少要完成两个(使用 VB 开发的)项目!:-)
在我的单位中,所有的开发工作都是在 VB.Net 2013 旗舰版中完成的,使用的框架版本是 4.5.2。而且我们还用到了 WPF、MVVM(使用一种最纯净的方式),我们也会使用 Entity Framework 6.x,而且我们也会使用 MVC 和 Razor,甚至在开发应用时也使用 VB。没错,所有的一切都是用 VB.NET 开发的,并且我们将 option explicit , option strict 和 option infer 这些选项全部都打开了!
[……]
还请大家注意,作为 VBDotNetCoder 的管理人和创始人,我能够看到 VB.NET 如今正在不断壮大发展!尤其是在南美、希腊、西班牙与意大利等地……是的,我认为 VB.NET 有希望在今后几年内迎头赶上 :-),人们会认识到,对于业务的开发来说,它是一个更好的快速应用开发环境与调试环境。
在可见性方面,pcnerd 有这样一个理论,
我认为真正的问题在于 VB.NET 通常是用于企业内部开发的,不允许将反馈发送回微软。同时也很少用于新项目,多数只是添加新功能。我目前所参与的项目代码是在.NET 2.0 出现之前设计的,即使它现在运行在.NET 4.5 上,也能够感觉到它的陈旧感。另一方面,在上一个项目中,我一开始甚至没办法在 Visual Studio 中打开这个 VB 项目。我不得不转而寻找某些通用的方案,将其修改为 VB。你可能会说我们的技术不够前沿,但我使用的技术包括 Web Api、Razor 和 Angular,用基于 OWIN 的 Katana 进行托管,甚至在安全性方面使用了 Web Tokens。想象一下,它全部是用 VB 和 JavaScript 完成的!
尽管微软已经作出了声明,但某些开发者的感觉依然很不好。Chris Owens 写道:
听说 VB.NET 在 ASP.NET 5 中能够得到与 C#平等的地位,这是一件好事。但令人伤心的是,许多来自微软的 C#粉丝的心态有问题,比方说 Stephan Walther 曾有一番刻薄的言论,他说现在最多只有两个人还在用 VB.NET 进行 ASP.NET MVC 的开发,他们也应当停手了。同样令人难过的是为什么对 VB 的支持会成为一种疑问,在企业中还有数以千计的开发者在使用 VB.NET,而微软在事后才想到他们。我们也必须等到新版本完整发布之后才能够使用它。
如果能够使用 VB.NET 尝试一些预发布的东西就好了,因为我至少有 95% 以上的时间都是在用它进行 MVC 等项目的开发……而现在,我只能落后于其他人,等待在正式发布时支持 VB.NET 了。不过我依然确信 C#的粉丝会确保所有的示例都只有 C#版本,与往常一样,并且继续编织着 VB.NET 已经无人使用的童话。微软一方面在继续支持 VB.NET,一方面又假设已经没人用它了,这种行为让我感觉很痛苦。
评论