相信很多人像我一样,在大学第一次接触vb6就爱上了这个语言的图形界面编辑器/众多控件。VB贴近自然语言的语法也很让人喜欢。最有优势的是VBA,VBA大多数windows软件都支持,比如office 系列。当然还有很多第三方软件都支持VBA,比如AutoCAD...
当深入接触VB.Net之后,最初的想法是觉得同样是.Net平台下语言,C#能做到的VB.NET同样可以。我试着用Vb.NET写WPF甚至UWP都是没有问题的,但随着时间的推移,每当我遇到一个问题在网上搜索解决办法,每一个解决方案基本都是C#写的,当然看懂C#并不难,但是想要准确把C#转换为VB就需要深入了解以下C#才行了,记得当时C#和vb的gettype和typeof给我弄懵逼了好久,纠结了半个多小时才发现,同样的关键字居然代表不同的意思。这种事情多了,C#就无师自通了,我必须承认我从来没有系统的深入学习过C#,但上面的情况多了,我的C#代码能力居然也达到了相当高的水平,但这时候我还是更喜欢VB的语法,简单的直接的更贴近自然语言的VB依然获得了我无脑的热爱。
在计算机编程语言的世界里,C,C++,C#,js,Java等语言是如此的相似,他们公用一套约定俗成的语言规范,和他们相比VB语法是如此特殊,这道天然的鸿沟像是把VB隔绝到了两个完全不同的世界,像一个孤儿遗世而独立,但是我喜欢。但真正要命的是什么呢?当我尝试学习开发网站的时候,自然选择了ASP.NET,我们知道使用的它是C#脚本作为后台,当我想要开发一款android游戏的时候,下载了Unity3D就可以发现支持C#和js,并不支持VB.NET。
我是否该放弃VB.Net呢?这个问题一次次的出现在我的脑海里,而且这种想法越来越强烈。放弃VB.Net至少能让我的生活变得轻松些。如果你是个C#程序员,那拷贝粘贴代码会很容易,因为可以找到的例子代码如此的多。C#社区越来越大。当我从vb6一路走来使用c#已经变得驾熟就轻,直到有一天我开始用C#写ASP.NET/Unity脚本,这个时候我选择回到主流的队伍,仿佛受到了热烈的欢迎,而VB.NET似乎并不挽留我,可笑的是在某些开发情况下vb6.0似乎具有强烈的诱惑力。我感觉随着时间的推移,在写下无数行C#代码之后我发现自己对VB语法强烈的热爱已经慢慢淡去了,一次次的,我开始变得沉着冷静了,但是真的就这样抛弃VB.NET吗?我也并不这样想。
VBA依然是强大的,vb6在office二次开发中如此美好,在很多场景中VB仍有实用之处,但我不应该停留在过去的美好之中而止步不前。我也看到很多像我一样对VB语言的爱好者,像我以前一样可爱,感到一丝温暖,我想关于VB和C#的评价应该是:VB.NET能做到的C#都可以做到,相反C#能做的Vb.Net却不能。以我的经验,如果投入很多精力在Vb.Net中,是否应该立即放弃Vb.Net?我思考了片刻,我的回答是这样的:如果仅仅只是开发例如office系列软件二次开发,vb依然是很好的选择,但如果你真的对Vb.Net投入了足够多的精力,那么C#就已经入门了,而当你想用VB做更多的事情的时候,C#的使用被提上日程,VB自然会被遗忘在角落里,但我希望你能时常捡起它,哪怕只是欣赏。