Visual Basic的兴衰

我要认罪 在成为受人尊敬的开发人员使用C#和Java等现代语言(以及众所周知的JavaScript的混乱局面)之前,我一直是非常受欢迎且笨拙的Visual Basic的狂热爱好者。

我的爱是真诚的。 小时候,我学会了用BASIC编程。 但不仅仅是BASIC。 我从一个古老的DOS操作系统上的Microsoft QuickBASIC令人惊叹的环境开始。 我仍然记得在她的蓝色背景上输入白色文字。


对于1988年的编程而言,QuickBASIC是一件神奇的事情。 可以编写没有繁琐的行号的代码,可以在键入过程中捕获语法错误,并且可以直接从开发环境运行程序,而无需打扰命令行。 完成该程序后,您可以在以下这些人的帮助下与您的朋友分享该程序:


如今,QuickBASIC只是遥远过去的另一个头。 虽然是这样吗? 一个名为QB64的创新项目创建了最先进的QuickBASIC复制副本。 它可以在Windows,MacOS和Linux上运行,并且不需要模拟器。 当程序在QB64中启动时,环境将执行一个棘手的技巧-首先将BASIC代码转换为C ++, 然后对其进行编译。

经典VB与视觉时代


QuickBASIC在遥远的基于文本的计算机系统时代是令人印象深刻的媒介。 但是,当微软发布Windows并将PC用户吸引到按钮和点击的图形世界时,一切都改变了。 与Microsoft Windows 3.0(第一个真正成功的版本)同时发布的是Visual Basic 1.0。

这是全新的东西。 用户可以为程序创建按钮, 绘制在窗口表面上,就像在艺术家的画布上一样。 要强制按钮执行某些操作,只需在开发环境中双击该按钮并编写代码即可。 而且该代码不是用隐秘的C ++编写的,具有大量的类,复杂的内存管理和模糊的Windows API调用。 您作为一个文明的人,在外观友好的VB上编写了代码。


所有这些图形小工具都令人印象深刻,但是VB成功的真正秘诀是实用性。 根本没有其他工具可以使开发人员绘制出完整的界面并像VB一样快速地开始编码。 尽管历史学家喜欢推测Visual Basic的视觉部分,但他无与伦比的技巧与图形小部件无关。 VB因其传奇的编辑和继续功能而闻名,该功能使开发人员可以运行程序,查找错误,修复错误并继续使用新代码。 这与人类已知的几乎所有其他编程环境都大不相同,后者迫使开发人员重新编译工作并在每次更改后重新开始。

最初的Visual Basic繁荣了大约十二年。 它已成为适合初学者的友好环境,现已成为具有足够功能的工具供认真的程序员使用。 到发布经典Visual Basic的最新版本VB 6时,世界上的VB编码器大约比世界上最苛刻的C ++多十倍。 他们不仅创建玩具应用程序的模型。 Visual Basic通过另一种非常流行的技术ASP(Active Server Pages)进入了公司办公室,甚至进入了Internet。 多亏了它,您可以创建可以与VB组件进行通信,与数据库进行通信并即时编写HTML的网页。

除非您决定自己创建它,否则所有这些实际上都没有结构。 这是Visual Basic中的一条不成文的规则-它为您提供了自由,后来您会后悔。

经典VB的问题


在许多圈子中,经典的VB声誉不佳。 OOP狂热者经常抱怨VB缺乏继承支持。 (这是一个奇怪的抱怨,因为对于没有经验的开发人员来说,继承通常是很好的方法,这不是 VB所需要的。)实际上,经典的VB并不倾向于面向对象。 在他生命的尽头,他已经支持接口,多态性和类库。 所有这些都是从COM借来的-COM是组件技术的基本部分,在每个Windows版本中都“刷新”。

经典VB的真正问题是,它成功了。 他如此有效地减少了新程序员的壁垒,几乎每个人都可以在其中工作。 无忧无虑的初学者,疲惫的公司员工和学生解决了在任何其他平台上都比以前复杂得多的问题,并将意粉代码悬挂在各处。

换句话说,由于VB易于使用,即使您不以程序员的身份学习,也被许多学习成为程序员的人所使用。 VB并没有采取任何措施来防止其不良习惯的根源。

VB.Fred和.NET平台


向前迈进的2002年:微软致力于做最出色的工作-通过引入全新的工作方式破坏了自己的开发人员生态系统。

这次,该项目是COM体系结构的重大更改,COM是一种支持Windows(间接支持经典VB)的组件技术。 对于已经进行了几次此类风险更改的巨石公司来说,这是一个全能的比率。


微软将其称为“重启” .NET平台有许多可疑的原因,包括由于当时的Internet技术持续新鲜和令人兴奋,也因为.NET包含了Microsoft的Web服务功能坚决决定推广。 该产品是在Java的强大影响下创建的,并且具有用于与数据库通信,创建网站,编写多线程程序,通过套接字建立连接的全套工具,几乎适用于业务开发人员可以想象的所有应用程序。

唯一的问题是,为了实现所有这些功能,Microsoft必须摆脱几乎所有经典的VB。


如果斜视一下,那么称为VB.NET的新版本看起来几乎相同。 但是其中出现了许多大小革命性的变化。 大型:旧的VB程序仍然被旧程序所困,并且出奇的薄弱的迁移向导很难修复它。 小:经典的VB程序员必须习惯于一种新的计数数组元素的方法。 他们不再像普通人一样从1开始。 现在他们必须像正式程序员一样从0开始。

另一个重要的变化:不再需要编辑和继续功能。

开发人员喜欢抱怨,VB开发人员尤其为此而闻名。 几乎立即,一群有影响力的VB开发人员将其称为Microsoft的新编程环境VB.Fred,以强调这种新语言不是Visual Basic的事实。

Visual Basic注定要死的原因


您可以假设.NET更改导致VB基础出现裂缝并导致不可避免的下降。 但是一切都不同。 实际上,尽管事实上VB.NET朝着一个新的方向发展并进行了重要的更改,使其成为经典VB的“孤立”绝对好代码,但它却获得了极大的普及。 之所以发生这种情况,是因为VB.NET给经典VB的开发人员带来了某些以前无法实现的功能-尊重。

在.NET世界中,VB和C#语言具有相同的权重。 VB中的每一行代码都可以翻译成C#中的等效代码行,反之亦然。 两种语言具有相同的功能,使用相同的组件,并以完全相同的形式进行编译(转换为中间语言 )。 VB终于摆脱了丑陋的小鸭综合症。

但是变成另一种受人尊敬的编程语言已经造成了问题。 使VB成为如此广泛的人群最喜欢的语言的热情已经消失了。 不是因为VB已更改,而是因为C#已更改。

当VB获得与C#相同的功能时,C#也采用了Visual Basic的便利性。 例如,类型安全功能和.NET内存管理的存在意味着C#开发人员不再像VB开发人员那样担心内存泄漏。

换句话说,C#现在拥有一个“安全网”,可以保护业余爱好者,学生和初学者,并且不会削弱其功能。 突然,VB不再是什么特别的东西。 它已成为一组熟练的程序员的又一个工具。

Visual Basic的当前状态


今天,Visual Basic处于一种奇怪的状态。 在专业开发人员中,它约占0%的关注-VB甚至没有出现在专业开发人员的调查GitHub存储库中 。 但是,他仍然活着-他管理Office宏,旧的Access数据库和古老的ASP网页,并且还吸引了.NET的新手。 TIOBE索引通过搜索结果衡量语言的流行程度,但仍将VB列为讨论最多的五种语言的列表。

但是似乎语言发展的惯性最近已经结束。 2017年, 微软宣布它将开始向C#添加可能不在Visual Basic中出现的新语言功能。 此更改不会使VB返回丑小鸭的状态,但是会损害其作为.NET一部分的状态。

坦白说,将VB推到场外的趋势始于几年前。 认真的开发人员知道.NET的关键部分是用C#编写的。 他们知道C#是演示,书籍,课程和研讨会的首选语言。 如果您要说VB,那么这不会损害您创建的应用程序,但可能会限制与其他开发人员进行通信的能力。

教育市场是Visual Basic应该感到自然的一小部分。 但即使在那儿,他仍然是败类。 像C#和Python这样的现代语言非常简单和安全,足以被选为第一种要学习的语言。 如果您需要更简单的儿童用品,那么市场上就满是Scratch等图形编程工具。 大括号的语言也很有吸引力:C#,C,JavaScript和Java。 它们具有相似的语法,并且已经学会其中一个的人会对另一个感到自信。

在Web开发领域,Microsoft正在寻找错失良机的机会。 谁不会被像VB 6一样易于使用但又能够在JavaScript中编译并与HTML表单设计器结合的VB版本所吸引? 是的,您不会在这样的工具中创建新的Google Maps,但是它可以通过允许业务开发人员,学生和业余爱好者创建简单的在线应用程序而无需繁琐的JavaScript来恢复Visual Basic的吸引力。 相反,Microsoft创建了一个基于VB的产品LightSwitch ,该产品随着Silverlight浏览器插件的消失而消失了。 如果Microsoft开始创建又一个“面向大众的编码”类产品,那么它很可能将是由模板驱动的工具,并带有诸如PowerApps之类的代码。

Visual Basic曾经面临着不同的危险。 但是这次似乎一切都不同了。 看起来,实际上,太阳正朝着世界上最受欢迎的编程语言之一发展。 如果为true,则Visual Basic不会在数十年后消失。 它将成为另一款传统产品,一种没有用户和未来的爱而被低估的工具。 我们是否丢失了特殊的东西,还是只是简单地将折磨的技术从折磨中解救出来,这取决于您。

Source: https://habr.com/ru/post/zh-CN456692/


All Articles