其实,这个消息已经很过期了。早在去年九月份的时候,微软就发布了关于VB9.0的信息。只是,没有关注VB有一段时日了。因为自从VB走上了.Net平台,原来那简单高效(开发效率)的VB不见了,取而代之的是一幅俨然C#双胞胎的面孔。也许这种转变是迫不得已,也许这种变化正是利大于弊(对于我来说,就是这样,如果不是熟悉的VB,也不会开始尝试使用.Net)。因为毕竟,别人有的咱VB也有了。但一想到所有曾经的优势都不复存在,有的只是一幅明星脸,就会觉得很失落。而我,也很没良心的叛变了,一头栽进了C#的怀抱。。。
但是如今一切又回来了。VB9.0开始加强动态特性,摇身一变成为未来Visual Studio下首席高效动态语言。不但如此,还是想静就静,想动就动。特别在动态方面,有了动态的类型识别。你可以不管最初定义的类型(也不是不管了^_^),用字符串的方式将方法绑定到某个对象上。甚至还有了动态接口,使得相同名字的东西就可以统一操作了(当然,这说的比较简单了)。更为夸张的是对XML的操作,所谓的XLinq把VB原来那种解释执行的风范全部拿了出来,成为史上最强XML开发语言。当然,VB还是依赖于CLR,不可能像原来一样真的解释执行。很有可能背后还是玩的语法转换,利用反射来做。也就是说,如此强大的动态性能,是需要付出性能的代价的。但谁在乎呢,心目中的VB就是应该拥有最强的开发效率,至于执行效率,那是C++需要解决的问题。而C#,就应该像一个严肃的教书先生,在性能和开发效率中间找到一个平衡点,并提供教科书般规范易理解的语法(难道Linq真的只属于VB好?)。
当然,从程序员的角度出发。每个人都希望自己所用的语法拥有大量的强大的功能(最好还能保持简单^_^),他不在乎官方对语言的定位,在乎的只是:这项功能为什么我的语言不提供呢?据说,微软中对于到底还要不要在C#中加入这些性能,存在很大争议,因为它会带来很多语法和类型安全上的问题。与VB小组的激进相比,C#小组在这个问题上更为保守一些。恩,我觉得他们的保守是很有道理的。当然,现在还只是Alpha中,所有的谜底,要到年底,随着Orcas和相关东西的发布,才能揭晓。
其实,我远不需要那么激动。毕竟,很有可能在很长一段时间内我都不会用到它们。但老罗就曾经说过一段很经典的话,套用到这上面来大概就是这意思:虽然,我将长期情愿,必须,不得不投入到C++的世界中去,但知道世界上还有这么一种重新焕发青春的强大语言,毕竟还是一件很幸福的事。。。
PS:关于VB9.0的具体内容,公布的并不是很多。通过Google可以很容易搜索到一些大同小异的内容。如果你真的很懒,那么我来推荐一下。一个是一个前辈的Blog:http://www.cnblogs.com/Ninputer/category/35496.html 还有就是微软的官方文档:http://www.microsoft.com/china/msdn/library/langtool/vbnet/vb9overview.mspx?mfr=true