三种主流语言VB、C#和C++有一个非常清晰的定位。C++专攻底层,与CLR同级,开发效率放两旁,把“强”字摆中间。C#作为CLR上的系统语言,解决.NET上的系统软件开发,开发效率和功能兼顾,但也绝不在哪一边冒头。这样一来,留给VB一个光荣使命——应用开发。VB应该是一个强调生产率,强调简便易用,快速开发的语言,凡是跟这个目标相冲突的,都可以请出VB,脏活累活让C#和C++去做吧,让我们VB漂漂亮亮体体面面地去做very high level language,在开发效率上5倍10倍地超过C#,那才是VB的使命!历史上VB在微软技术体系里不是一直扮演这样的角色吗?历史上VB在这个角色上的表现不是一直都很杰出吗?CLR是干什么的?语言互操作为了什么?不就是为了各个语言各展所长,最后一对接,天衣无缝,皆大欢喜吗?难道我没事创造20种同一个level,表达能力相同,连语义模型都差不多的语言耍着好玩吗?
可是你看看VB.NET干了什么?在Perl、Python已经充分证明了动态语言在生产效率上的威力之后,VB.NET不但没有在VB6的基础上进一步走向动态,走向高生产率,反而往回缩,语言变得比以前更严格了,加强了类型系统的约束,一大堆对生产效率有影响的复杂面向对象特性被毫不犹豫地加入VB,一个简单明快的VB变成了庄严肃穆VB.NET,变成了C#的等价Basic版。如果没有C#,这一切都没什么错误,可是有了C#,还放一个几乎可以句对句翻译的VB,有什么意义呢?除了让老VB6的开发者悲愤欲绝,除了把.NET开发人员毫无必要地划分为两个不能自由沟通的阵营,除了让MSDN文档的长度延长一倍之外,对于开发者提供了什么实质的好处吗?其结果是,.NET主流语言体系里出现了一个基础语言,两个生产率和能力等价的中级语言,而在高生产率的应用开发语言这一栏里,写着一个“暂缺”。
现在VB的那些产品经理大概总算意识到了这个问题,在VB的My名字空间里加入一大堆方便的特性。很好,你们终于看清楚VBers的脑门上写的是什么了:不尚虚名,只求实效。可惜啊,晚了!
| 对此文章发表了评论 |

