知乎上关于VB的比较具有参考性的心得讨论

 目录

早判了,VB已死,但我说话了么?

前言

一直想写VB相关的内容,把实践过的感悟总结成文,分享给更多在途的朋友。本篇在《明比阅历浅,暗拼体力衰,指下讲武德,码上笑春风》的铺排下,终于等来了这个时机。前篇为广大非IT人士开启IT之路提供了务实的指引,此篇则更深入介绍其中的途径。这让人有点兴奋,又有点紧张。兴奋的是,这么多经验可让人少些浮躁,多干实事,少走弯路。紧张的是,怕不够客观,误人入了歧途。

一、细数VB几宗罪

那就拟扬先挫吧,兼听则明,偏信则暗嘛。正视自己的短处,才能扬长避短。若是无法接受,提早打住,另谋出处,也未尝不是件好事。

1、无论是VB的使用者还是其他语言的编码人员,VB处于鄙视链末端,这是不争的事实。

2、VB的职业开发需求少,招聘VB的凤毛麟角。学习混不到职业前途,这是不争的事实。

3、VB在Windows中扎根太深,犹如彼时的IE。在众多OS不断崛起的今天,跨平台的战斗,注定要落下VB这位老臣。VB6在上个世纪末就未再更新,Win8以后官方未再宣称系统级支持,VB6进无可进,这是不争的事实。

4、VB6到VB.Net之间的大跨越,终结了VB的后向兼容,导致曾经的项目难以进行无缝的现代化升级。老项目无法使用更现代化的工具,维护效率低下。VB.Net这个新物种不但没揽到早前VB的生态,连官方支持也不如C#。VB.Net将VB6封印,在商业竞争上,自己却进不如C#,退不如VB6。VB项目生态的不可持续性,被编码人员笃定,这是不争的事实。

5、VB虚拟机的过渡代劳,让刚入行的初学者安全自在,却也困住了想起飞的入门者,让其举步维艰。编码者就像VB的崽,时常处于VB妈妈的监控之中。没有指针、无继承、太烂的多线程、不支持内嵌汇编…,不易扩展,更不能跨平台,不时尚土鳖像古董,这让专业开发人员非常鄙视,这也是不争的事实。

6、VB没落了吗?没落了,这是一边倒的声音。

二、看VB前世今生

(一)VB的过往

这么一数落,似乎VB无药可救,一无是处了。没有调查就没有发言权,要想客观评价,不得不回看VB的历史。

1、1988年,QuickBASIC就已风靡DOS系统,实时语法纠错,可移植,在IDE中启动。

2、1991年,随着Windows3.0一起,VB1.0正式诞生。脱胎于QuickBASIC语法,事件驱动,可视化IDE。Win3.0图形界面的巨大成功,让VB迅速获得开发者的青睐。事件驱动更是对以往过程式驱动的一声惊雷,革命性BASIC成为佳话。

3、1992年,随着Win3.1的持续加码,VB2.0继续深挖系统特性,几个月后就出了VB3.0。对象变量拥有最早的继承特性,对控件(VBX、OLE)的支持,对数据库(ODBC、JET)的支持,让此时的VB可开发出相当有水平的Windows程序。此时,针对VB虚拟机的P代码效率问题,竞争者Delphi才应运而生(其设计者也正是后来C#的设计者)。

4、1995年,在硬件更新换代的背景下,VB4.0诞生了。Windows开始走向32位系统时,VB则开始拥抱COM,定位也转向Visual Basic For Application。自此,VB与Office的宏语言统一起来,紧抱Office这颗大树,也是VB日后的免死金牌。全新的控件(OCX)、类模块奠定了VB面向对象的特性,其封装性(DLL)也使得VB成为COM的语言。

5、1997年,COM(ActiveX)技术已相当成熟,此时的VB5.0对其提供了最强支持。该版不仅对Visual Basic For Application进行了完善和丰富,更是提供了代码的本地编译器。自此,VB在性能上终于有了质的提升。此时的VB不但可开发自己的ActiveX组件、还可开发进程内外COM组件(ActiveXDLL、ActiveXEXE),更是可以开发在浏览器中运行的ActiveX文档。其IDE的智能感知,也极大地提高了开发效率。

6、1998年,以Visual Studio 6.0家族成员的方式发布了VB6.0,微软将其定位为企业级快速开发工具。VB6集成的各项特性,足够企业快速建立多层分布式系统及Web应用程序。此后近4年均未更新,显示出了VB6的成熟和稳定。

7、2002年,在Java的逼迫下,Visual Studio.NET1.0问世。.NET框架下的VB,除了语法风格与经典VB类似外,其实就是全新设计的开发语言。在激烈的市场竞争中,VB6没能等来继任者,成为最后的经典。

此后的VB.Net波澜起伏,将经典VB积累的生态挥霍殆尽,大量的专业开发人员转投了C#。VB.Net出生如同VB4.0,有战略上的急迫,更有自身的失误。在不能后向兼容经典VB的情况下,又在革新时错失了市场,才导致今天鸡肋的地位。

VB.Net几经周折,尽管已足够强大,足够安全,足够易用,在使用习惯上也已高度还原VB6,甚至很多官方文档也可被VB6采用,但毕竟已是新的开发工具。VB.Net在.NET框架下不如C#,在企业级快速开发上也不能替代掉VB6,在这样的夹缝中,VB.Net的未来注定任重而道远。

(二)VB的今生

不得不承认VB(以下VB若无特别说明,仅指VB6)曾是最流行的开发工具之一,据说其生产的代码量是C++的数十倍之多,数不清的应用活跃在各大企业生产的田边地角。然而成也萧何,败也萧何,VB最大的问题竟在于其过于成功。

它极为有效地降低了初级程序员的学习难度,几乎所有人都可以用VB进行编程。职员、学生纷纷加入,轻易解决其他平台实现起来更困难的问题。因为VB太好用了,也从来不苛责不良的开发习惯,所以到处都是新手,到处都是质量低劣的机械式代码,成了杀鸡焉用牛刀的最佳诠释。

对于VB,素有”沉默的大多数”的说法。据说只有3%的用户能发出VB不好,希望官方改进的声音,其余97%的用户觉得VB挺好,没有什么需要改的。当VB.Net1.0的Beta1出来的时候,与VB6天翻地覆的差异,直接把提要求的那3%给搞蒙,搞害怕了,进而转投C#去了。其余的97%仍然觉得VB6挺好,没什么需要改的。所以,在业界VB从企业级快速开发工具沦落为小学生的玩具,也就不足为奇。

这也正是我在《明比阅历浅,暗拼体力衰,指下讲武德,码上笑春风 》中,极力推荐VB的主要原因。太好用,太容易用,轻易就可达成初级程序员的目标,的确具有吸引力。时至今日,由这97%周转的,机械的,功能有限的代码,解决着很大一部分实际生产中遇到的问题。实用性是VB得以苟延残喘的法宝,也正符合非IT人士对IT的需求。

1、几乎很难找得到像VB这样拖拖拉拉就能完全绘制用户界面并快速编码的工具,这是VB与Windows与生俱来的血脉关系造就的。

2、几乎很难找得到像VB这样允许程序员在IDE中运行、发现并修改错误、并在修改结果上继续的编程环境,即便停更十余年也不公开源码,可见的确独到。

多如繁星的VB项目,使得官方不得不一而再再而三延长系统支持,据称官方至少覆盖了整个Win8生命周期。而实际情况却是,在号称最后1个Windows版本的Win10上也活得怪好。相信职员、学生一类非专业开发人员还会继续纷至沓来,在没有足够投入的情况下,继续生产功能够用的代码,就像打不死的”小强”,在自己的领域里坚强地做着自己的事情。或许,VB看上去就要落幕了,但即便是真的,只要WIN32开发不被淘汰,Office还能继续为生产卖力,VB就不会消失。相反,VB会成为1个遗留产品,一个被忽视的没有激情,也没有未来的工具。

三、VB的幡然醒悟

争论了半天VB的好坏和前途,跟你我有半毛钱关系?这是一个关于名为VB软件后续升级的讨价还价。不升级就死掉了么?就像用锄头和拖拉机种地,别人说锄头变不了拖拉机,因此锄头要死了,用锄头的也要死了。

锄头郁闷了,你用或不用,我都静静的在那里,不悲不喜。种地的也郁闷了,是我家地不能用锄头了,还是锄头种的粮食不能吃了?纵使一马平川的主场,也有顾不到的田边地角,更何况还有崎岖的山地。纵使师资再好,北大清华也是少数,允许你3%,就不允许我97%?所以,你一开拖拉机的,爬上我这山头,对着我的锄头,瞎得瑟什么呀?卖拖拉机的钱装你兜里?你种的是粮食,我锄头种的就不是了?你能上我山头,我就不能下到你山脚?

VB是生产的锄头,只要Windows这块地没变天,以前种的粮也没坏,那就可以继续吃,锄头也可继续用。允许3%的人去开拖拉机,种更多的口粮。也允许97%的人在自留地里挥舞锄头种点瓜果副食。

四、VB的免死金牌

VB在4.0就转向Visual Basic For Application,与Office的联姻,才是VB容颜不老的秘诀。VB6虽然没等到7.0,但VBA却进化到了7.0,跟着Office到了64位Win10的地界。VB、VBA和VBS之间,以及与Office32/64之间的关系,随后会专题深入介绍,请继续关注 BtOfficer获取相应内容。

VB6是32位Windows上COM的语言,只要Windows摆脱不了COM、摆脱不了WIN32子系统,VB6就会无比坚定的存活下去。VB6与VC6之间的关系,VB6与C/C++的互通,32位VB与64位系统的兼容,随后会有专题深入介绍,请继续关注BtOfficer获取相应内容。

VB5.0就加入了本地代码编译器,从某种程度上说,之后的系统无论是否原生支持,对VB而言都不再是束缚。VB6的编译器原理,编译器的深度使用,随后会有专题深入介绍,请继续关注BtOfficer获取相应内容。

纵观VB的历史,从其诞生那天起,VB的使命就是要打出Windows系统特性这幅王炸牌。说VB是Windows的大家闺秀也毫不为过,VB其实就是系统附带的生产力。VB更多的角色不是编译器的脚本,而是充当系统的命令,直接调配资源组织生产。所以,VB的虚拟机才那么短小精悍,VB的应用才那么容易既快又准的落地。VB6的虚拟机,VB6与WIN32编程,VB6与VB.Net资源共享等,以后会有专题深入介绍,请继续关注BtOfficer获取相应内容。

遗憾的同时,也庆幸VB6没有继续走远,成了系统身边那个永远不嫁的姑娘。虽然系统爸爸的势力范围越来越大,但最核心的,始终近在眼前。拨开安全的层层迷雾,指针、线程、继承、内嵌汇编等一众C的手脚,托起了那97%的任性。尤其是内嵌汇编,为VB6插上了想象的翅膀,成为VB6名副其实的免死金牌。VB6的指针、安全多线程、内嵌汇编等内容,以后会有专题深入介绍,请继续关注BtOfficer获取相应内容。

五、VB的生命之光

3%的那部分从VB这个小学毕业后,升了初中,以后还会上高中念大学。也会有更多97%的这部分不断等着VB开学。在普通人通往程序之路上,VB就像摆渡人,接来一批又送走一批。VB存世的意义,或许就在于既普世又度人。心清脑秀者,许你3%得道升华。资历平平者,也许你97%的凡人吃喝。

VB的世界里有自由的周全,也有刻薄的束缚。她试图让所有人都能踏进编程的世界,并在这个晦涩的世界里护其周全。她也总拿自由不是没有代价来告诫使用者,知其然还要知其所以然,到远方去才是旅游的意义。

发表评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注