文章来源:极手游作者:小狐狸发布时间:2022-12-01 08:00:47
大脑极体
在程序员的世界里,有一个永恒的谜题——。什么是最好的语言?
在这个“BCYY48”(编程语言)组里,C,Java,Python,PHP…….每个都有许多粉丝挑选。曾经被“最富有的爸爸”和全球支持协会支持的VisualBASIC语言,现在的处境非常尴尬。
很少有开发者愿意承认自己曾经是VisualBasic的忠实粉丝。它被视为一种玩具语言,更适合刚开始学习编程的人,更不可能出现在全球最大的交友网站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服务功能,受Java影响较大,于是微软不得不在VB十岁的时候接回了一个新的“养女”。VB爱好者“一度回到解放前”,和那些官方职业程序员一样,不得不从0开始写代码。
2002年,VB不得不主动“转型”,引入了新的内核。NET Framework并将其名称更改为Visual Basic .NET。NET世界,每一行VB代码都可以转换成等价的一行C代码,反之亦然。尽管有这样的变化,但VB一直都在劫难逃。
2008年4月,微软正式宣布停止支持经典VB。然而在中国,2005年NOIP等信息奥赛把BASIC语言从可用项中去掉,很少有职业程序员会把VB写进简历。在浙江省信息技术课程改革方案中,信息技术教材的编程语言由VB改为Python。
可能有人会问,VB到底做错了什么抛弃了他?实际上,这和诺基亚把自己卖给微软的故事一模一样。“我们没做错什么,但不知何故,我们输了。”
VB衰落的三步曲
自1951年以来,人们发明了200多种编程语言,而且还在不断创新。所以一门语言的兴衰可能并不太重要。但是,它也有很多参考意义。
庞加莱曾经说过,如果我们要预见数学的未来,正确的方式是研究这门科学的历史和现状。计算机语言也是如此。
那么,相对于C/C、Java、Python等等,VB缺什么呢?
首先,经典VB的真正问题是太成功了。
VB的学习曲线是如此的平滑,即使你不是一个训练有素的程序员,也可以毫无障碍的入门。正因为如此,大量的业余程序员,粗心的新手,无聊的公司员工,暑期学校的学生等。都被吸引了。他们到处喷意大利面代码,写出来的程序就像一碗意大利面一样扭曲纠结。但是VB没有办法改掉他们的坏习惯,只能看着开发生态越来越复杂,难以维护。
其次,其他语言也在进化。
认真的开发人员都知道。NET都是用C语言编写的,C#等语言正变得和VB一样简单安全,在演示文稿、书籍、课程和开发者研讨会上也越来越成为主流。市场上也充斥着面向幼儿和初学者的图形编程工具,比如Scratch。
既然VB.net和C有相同的功能,使用相同的组件,编译成完全相同的形式,为什么不选择C呢?突然之间,VB简单易用的优点不再是什么特别的了。
(2018年美国热门编程语言Top10)
所以VB最终的原因是开发生态的萎缩。
VB曾经占据了很多年的中学生信息技术教材,但越来越多的开发者和学院开始将入门课程改为其他计算机语言。比如麻省理工和加州大学伯克利分校的计算机系就把入学语言改成了Python。一些明星互联网公司,比如Youtube,Instagram,Reddit等。都有基于Python开发的核心业务。
在示范效应下,很大一部分其他行业的人自然会选择进入其他语言的编程世界。比如我们可以遇到懂Python的医生,学过Scratch的孩子,或者在开发社区里很容易拿到开源代码的新手开发者。虽然VB仍然可以用来构建应用程序,但再讨论它将与其他开发人员格格不入。
被大众忽视的VB,经过十几年的繁荣,注定会成为一个没有激情和未来的遗留产品。
未来的编程语言会是什么样?
回顾计算机语言发展的历史,我们会发现计算机在20世纪70年代被用来处理不同类型的事务,因此出现了许多有特色的语言,如结构化Pascal,C,它结合了高级语言和汇编语言的特点,Prolog,它做逻辑研究.
随着计算机性能的提高和互联网的兴起,PHP、Java、JavaScript、VB、Python、HTML等。已经出现。后来也支持更高计算的元编程和异构编程,C#和Swift开始流行。人工智能时代,跨平台、通用但不专用、擅长处理统计相关问题的Python成为了第一开发语言。
总体来说,一门编程语言的普及程度,就像“流量偶像”一样,在所有业务能力上并不强,各有侧重。行业需求、学习曲线、运营成本等诸多因素。确定程人会继续光头为谁站C的位置。
当然,这对于普通大众来说不算什么。我们关心的是主流编程语言的改变会带来什么影响?有几点值得注意:
1.低门槛的生产工具。过去计算机教育一直强调“语言包罗万象”、“思想重要”、“代码优雅简洁”等等。但是,随着编程语言越来越简单易用,成为低门槛的制作工具已经成为不可阻挡的趋势。
MOOC、Coursera、某某AI大学等培训网站上充斥着用Python识别苹果的农民、用Python分析蝴蝶种类的生物学家、训练神经网络的中学生.为了防止大众开发者的加入,重蹈VB面条代码的覆辙,现在可能就要未雨绸缪了。
2.图形化编程和代码编程之间的悖论。图形永远是新手最友好的入门方式,可以大大减少代码带来的挫败感。刚进大学的时候,从VB开始接触计算机编程语言,然后过渡到c等更抽象的代码,少儿编程也是如此。一项调查显示,学生在使用Scratch(一种图形编程)几年后,会更愿意尝试代码编程。
然而在大众眼里,“真正的编程”3354代码编程越来越年轻化。从程序员圈到高考内容再到幼儿园课本,Python实际上已经实现了从娃娃抓起。亚马逊AWS的首席科学家李牧曾经调侃过这种填鸭式的趋势:我家宝宝一岁就开始看纸了,现在她可以熟练地敲键盘写mxnet代码了。keras4kindergartners的一个网站也在网站上贴出了一则嘲讽的广告“如果你爱你的孩子,就不要在他们学会撒回之前把他们送进小学”。
几十年的发展证明,我们最需要的编程语言永远是能让人毫不费力地写出第一版程序的语言,而不是它看起来有多酷多特别。
3.高并发性改变了编程逻辑。传统的编程思维是在单个CPU上执行多个逻辑任务,而今天的多核异构计算是在多个计算单元上执行一个逻辑任务。而且,代码也越来越简洁。比如一个用C语言需要1000行代码的程序,用Python只需要20行就可以完成,性能大大提升。一方面给了开发者更高的自由度,释放了他们的创造力;同时也对理解任务逻辑、合理分解任务的能力提出了更高的要求。
显然,这个世界上没有“完美的”、不朽的编程语言。如果说有什么共性的话,那么只有“那些内核最小最干净的编程语言才会存在于进化的竹竿上。”不管你学到了什么,其他的一切都可能像菠萝罐头一样过期。
现在回想起来,VB的兴衰正折射着Web时代的余晖,也代表着计算机科学在编程领域的进步。当一个职业程序员掌握在一个“屠龙者”手中,普通人也可以“点击发送”,数字时代才真正揭开。
更多精彩内容,关注钛媒体微信号(ID:taimeiti),或者下载钛媒体App
大掌门2金将怎么组合