vb编程

vb编程图片来源@视觉中国

大脑极体

在程序员的世界里,有一个永恒的问题——什么是最好的语言?

在这个“BCYY48”(编程语言)组里,c++、Ja、Python、PHP………每个都有很多粉丝。但是,曾经被“首富之父”和全球后援会支持的VisualBasic语言,现在的处境却非常尴尬。

很少有开发者愿意承认自己曾经是VisualBasic的忠实粉丝,visual basic被视为一种玩具语言,更适合刚开始学习编程的人,更不可能出现在全球最大的同性恋交友网站Github上。

但实际上在野外,很多专业应用都是用Visual Basic写的,它还在为Access数据库和古老的ASP网页供电。比如Epic Systems,也许是美国最大的医疗软件开发商,现在还在广泛使用VB 6.0,很多学校坚持教授VB课程。在TIOBE 2018年公布的一份编程语言排名中,VB的人气指数是TOP5中最高的。

当然,对于VB来说,这个列表更像是一个“死胡同”。

虽然有很多程对VB的执着,但其实是没希望的,不可能是新时代的硬核。

原因很简单。学编程和学英语一样年轻。Python,最接近人工智能的编程语言,从幼儿园到大学培训班,一直是首选。没有VB这个强大的后援团,“退团”几乎是必然的。

从计算机语言的发展来看,回望28岁曾经是世界上最流行的语言的“花道”特别有意思。

VB与它开启的图形视觉时代

“VB”只是一个流行的昵称。其实它的名字是Visual,真实名字是Basic。

1964年,John Kemeny和Thomas Kurtz认为编程太难,需要返璞归真,于是将自己的编程语言称为BASIC,后来成为计算技术发展史上应用最广泛的语言。而VB则被微软采用,因为它在气质上与BASIC相似(两者都非常简单易用)。1981年,微软的“亲生侄女”Windows3.0“出道”,VB也一同亮相。

“可视化”恰如其分地体现了VB特有的动手能力,即开发图形用户界面。开发人员通过在窗口中绘制按钮来为程序创建按钮,就像在画布上绘画一样。要让一个按钮做一些事情,只需在设计环境中双击它并编写一些代码。

听起来没什么大不了的。要了解VB的独特之处,恐怕要从机器语言的发展说起。

众所周知,计算机世界是由数字1和0组成的。CPU只能执行二进制代码,无论是电影、歌曲还是图片,最终都是以0/1代码的形式存储。但是用0/1写机器语言比较麻烦,专业人士很难理解。

所以汇编语言很快就出现了,把枯燥抽象的二进制数字指令变成了英文单词。

例如,“加1,2;”让计算机把1和2相加。然后通过专门的软件(编译器),将这些英文单词转换成0/1代码,由计算机执行。一代开发者的集体记忆,就是在蓝色背景下打白色代码。

这个时候编程还是和普通人有着“副墙”的异世界。

友好的VB代码改变了编程游戏,将开发演变成一个可以通过按钮和点击实现的“所见即所得”的图形世界。

那时候VB有多火?这么说吧:对于“不为多证所压倒”的大学生来说,计算机二级几乎人手一台,很多都会选择VB,即使是没有基础的文科生,用它也能轻松理解和设计一些小玩意。

对于初学者来说,VB是一个非常友好的画面。随着能力的不断提升,VB逐渐发展成为一个严肃程序员的有力工具。据统计,用VB写代码的次数比用C++语言多十倍。VB通过另一种非常流行的技术ASP(ActiveServerPages)进入企业办公室甚至网络。

但是随着互联网业务的发展,微软下定决心推广Web服务功能,受到Ja的影响很大,所以微软不得不在VB十岁的时候带回一个新的“养女”。VB爱好者“一旦回到解放前”就必须从头开始写代码,就像那些官方的职业程序员一样。

2002年,VB不得不主动“转型”,引入了新的内核。NET Framework,并在。NET世界,每一行VB代码都可以转换成等价的一行C代码,反之亦然。尽管有这样的变化,但VB一直都在劫难逃。

2008年4月,微软正式宣布停止支持经典VB。然而,在中国,NOIP和其他信息奥运会在2005年将BASIC移出了可用项,很少有职业程序员会在简历中写VB。在浙江省信息技术课程改革方案中,信息技术教材的编程语言由VB改为Python。

可能有人会问,VB到底做错了什么,你要抛弃他?其实这和诺基亚把自己卖给微软的故事一模一样——“我们没做错什么,但不知何故,我们输了。”

VB衰落的三步曲

自1951年以来,人们发明了200多种编程语言,而且还在不断创新。所以一门语言的兴衰可能并不太重要。但也有很多借鉴意义。

庞加莱曾经说过,如果我们要预见数学的未来,恰当的方式是研究这门科学的历史和现状。计算机语言也是如此。

那么,相对于C/C++、Ja、Python等等,VB缺什么呢?

首先,经典VB的真正问题在于它太成功了。

VB的学习曲线是如此的平滑,即使你不是训练有素的程序员,你也可以毫无障碍的入门。也正因为如此,吸引了大量的业余程序员,比如粗心的新手、无聊的公司职员、暑期学生等。他们到处喷意大利面代码,写出来的程序像一碗意大利面一样扭曲纠结,而VB却没有办法改掉他们的坏习惯,只能看着开发生态越来越复杂,难以维护。

其次,其他语言也在进化。

认真的开发人员知道。NET都是用C语言编写的,C#等语言正变得和VB一样简单安全,在演示、书籍、课程、开发者研讨会中也越来越占据主流。市场上也充斥着面向儿童和初学者的图形编程工具,比如scratch。

既然VB.net和C有一样的功能,用一样的组件,编译成一模一样的形式,为什么不选择C呢?突然之间,VB简单易用的优点不再是什么特别的了。

(2018年美国流行编程语言Top10)

所以最终导致VB走向末路的是开发生态的萎缩。

VB已经占据中学生信息技术教材很多年了,但是越来越多的开发者和大学开始把入门课改成其他计算机语言。比如麻省理工和加州大学伯克利分校的计算机系就把入门语言改成了Python。一些明星互联网公司,比如,Instagram,Reddit等。,都有基于Python的核心业务。

在示范效应下,大量其他行业的人自然会选择其他语言进入编程世界。比如我们可以遇到懂Python的医生,学过Scratch的孩子,或者在开发社区里很容易拿到开源代码的新手开发者。虽然VB还是可以用来构建应用的,但是再讨论就和其他开发者格格不入了。

被大众忽视的VB,经过十几年的繁荣,注定会成为一个没有和未来的遗留产品。

未来的编程语言会是什么样?

回顾计算机语言的历史,会发现70年代计算机被用来处理不同类型的事务,于是出现了很多各具特色的语言,比如Pascal,结合了高级语言和汇编语言特点的C,做逻辑研究的Prolog…

随着计算机性能的提高和互联网的兴起,出现了PHP、Ja、JaScript、VB、Python、HTML等。后来也支持更高计算的元编程和异构编程,C#和Swift开始流行。人工智能时代,跨平台、通用但不专用、擅长处理统计相关问题的Python成为了第一开发语言。

综合来看,一门编程语言的普及,就像“流量偶像”一样,并不是所有的业务能力都很强,各有侧重。行业需求、学习曲线、运营成本等诸多因素,决定了程人将继续为谁站在C位而奋斗。

当然,这对于普通大众来说不是问题。我们关心的是主流编程语言的改变会带来什么影响?有几点值得注意:

1.低门槛生产工具。过去计算机教育一直强调“所有语言都知道一切”、“重要的是思想”、“优雅简洁的代码”等。但随着编程语言越来越简单易用,成为低门槛的制作工具已经成为不可阻挡的趋势。

MOOC、Coursera、某某AI大学等培训网站上充斥着用Python识别苹果的农民、用Python分析蝴蝶种类的生物学家、训练神经网络的中学生…为了防止大众开发者的加入,重蹈VB面条代码的覆辙,现在可能就要未雨绸缪了。

2.图形化编程和代码编程之间的悖论。图形永远是新手最友好的入门方式,可以大大减少代码带来的挫败感。刚进大学的时候,从VB开始接触计算机编程语言,然后过渡到c等更抽象的代码,少儿编程也是如此。有调查显示,使用Scratch(一种图形编程)几年后,学生会更愿意尝试代码编程。

然而在大众眼里,“真正的编程”——代码编程越来越年轻化。从程序员圈到高考内容再到幼儿园教材,Python其实已经做到了从娃娃抓起的目的。亚马逊AWS首席科学家李牧曾调侃说,我家宝宝一岁就开始看纸了,现在敲键盘就能熟练地写mxnet代码了。keras4kindergartners的一个网站还在网站上打出了一则讽刺广告,“如果你爱你的孩子,就不要在他们学会倒传之前把他们送进小学”。

几十年的发展证明,我们最需要的编程语言永远是一种能让人毫不费力地写出程序第一个版本的语言,而不是它看起来有多酷多特别。

3.高并发性改变了编程逻辑。传统的编程思维是在单个CPU上执行多个逻辑任务,而今天的多核异构计算是在多个计算单元上执行一个逻辑任务。而且代码也变得越来越简洁,比如一个C语言需要1000行代码的程序,Python可能只需要20行就能完成,性能大大提升。一方面,开发者有更高的自由度,释放自己的创造力;同时也对理解任务逻辑、合理分解任务的能力提出了更高的要求。

显然,这个世界上没有“完美的”、不朽的编程语言。如果说有什么共同点的话,那就是只有“那些内核最小最干净的编程语言才会存在于进化的竹竿上。”无论你学到什么,其他的一切都可能像菠萝罐头一样过期。

现在回想起来,VB的兴衰反映了Web时代的余晖,也代表了计算机科学在编程领域的进步。当一个职业程序员手中握着一把“屠刀”,普通人也可以“点击发送”,数字时代才真正揭开。

更多精彩内容,关注钛媒体微信号(ID: taimeiti),或下载钛媒体App。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论