Basic :“青春长驻”还是“菜鸟陷阱”

英飞凌ADS开发环境搭建全流程:从安装到第一个程序烧录 本文详细介绍了英飞凌ADS开发环境搭建的全流程,包括环境准备、ADS安装与配置、MemTools烧录技巧等关键步骤。针对嵌入式开发者,特别提供了从安装到第一个程序烧录的实战指南,涵盖常见问题解决方案和优化建议,帮助开发者快速上手英飞凌AURIX系列微控制器的开发工作。 阅读详情

Basic :“青春长驻”还是“菜鸟陷阱”
 
        Basic语言已经四十多岁了,在计算机技术发展史中,能被广泛使用四十年以上的语言实在数不出几个,可谓青春长驻。有趣的是,一方面许多人都在使用它,另一方面Basic又被人们冠以“初学者语言”的帽子,而且好象永无摘帽的日子。
       Basic语言能长盛不衰,与微软公司有着太大的关联,更确切地说(个人猜测),是与微软老板比尔盖茨的“Basic情结”有关,毕竟在老比同志最初的发家史上,Basic语言是微软帝国的“开国元勋”之一(另一“开国元勋”则是微软养子MS-DOS)。正如许多人都对初恋情人念念不忘,想必老比同志对Basic也是情有独钟的,因此微软公司几十年来一直对Basic语言给以全力支持,进行了不断的完善,使之成为了世界上使用率最高的几种高级语言之一。
        Basic之所以生命力旺盛,与其设计者不断进取、兼容并包的精神有着很大的关系,事实上,Basic语言总是在积极汲取先进的思想与技术这一过程中不断地进步与完善自己。
        最早的Basic是一种解释型的语言,“化繁为简”是其设计者的最初想法,但这种“简单”可不简单,具有不可思议的魔力,迅速得到了业界的认可,早期的电脑,比如Apple II,甚至将Basic解释程序固化在ROM中。
       随着结构化编程理论的成熟,Basic语言及时地引入了Sub和Function的概念,并支持递归调用。接着又把编译语言的特性引入到Basic的开发工具中,出现了编译型的Basic。
        巨大的变化发生于PC操作系统由DOS向Windows的转移时期,Visual Basic横空出世,其“所见即所得”的用户界面设计方法,其“事件驱动”的编程方式,无不体现出设计者的创新精神,代表当时软件技术的新高度,也正是从这时起,Basic日益脱离了纯计算机语言的范畴,与具体技术的结合日趋紧密,事实证明,这条路能有效地提升软件开发效率,不久,VB3、VB4、VB5相继推出,一步一个台阶,不断进取的VB取得了巨大的成功,使VB成为了全世界使用者最多的计算机语言之一。
        VB的出现与兴盛,体现出一个简单的道理——创新才是产品的生命力。
       1998年VB6发布,这个版本虽然在功能上并未全面采用面向对象技术,但在各方面都使传统的VB开发方式达到完善的境地,借助VB3,4,5三个版本的打下的成功基础,VB6使VB达到了一个顶峰,全世界使用者达到百万!
       辉煌的同时,潜在的危机开始显现,主要体现在Delphi上,强大而灵活,全面向对象的Delphi成了真正的“VB杀手”,攻城掠地,让VB由盛转衰。
      面对Delphi的强大攻势,VB节节败退,渐渐地,使用VB开发的人都被看成是“水平有限公司”的成员,VB成了“菜鸟语言”,并在许多论坛上引发了多场“语言优劣”的大论战,其激烈程度远比所谓的“大学生辩论会”好看得多。
       事实上,90年代面向对象技术开始兴起时,VB的设计者就看到了这点,并从5.0版本开始引入OO的思想,然而其进展的脚步太慢了,一直到VB6,都只是个“半吊子”的OO语言,这反映出设计者的思想开始趋于保守,不愿对VB进行大的改进了。唉,一个人,小有成就之后就容易骄傲,过去的成功会成为进步的障碍。
但话又说回来,如果没有VB6的固步自封,怎会有后来Delphi的辉煌?
      1998年起到2002年为止,微软公司在开发工具上没有新品推出,这也是第三方厂商产品(比如Borland公司的Delphi)的黄金时光。2002年,随着VS.NET 2002的推出,大家终于发现微软公司这些年来并未闲着,其实在卧薪尝胆。
      在VS2002中,VB变成了VB.NET,变得让老VB们认不出了!VB.NET的设计者冒着不再兼容以前开发模式的风险,让VB来了个脱胎换骨,成为了一个全面向对象的编程语言。VB.NET比之VB,除了保留了VB原先的语法特性,其内里已完全改变。我一直觉得与其把VB.NET看成是VB6的升级,还不如说是一种新的语言,也许改名“B#”更确切。
       敢于放下旧包袱,轻装上阵,向新的领域进军,这是勇者的行为!不容易啊,这世上有多少人在小有成就之后就“小富即安”了?对VB.NET的设计与开发者的勇气敬礼!
       那重新出山的新一代VB.NET还能重整旧山河吗?
       但“青山依旧在,几度夕阳红!”。 VB的昔日辉煌已不可重现。
      首先,VB.NET变革的彻底使原来VB程序员很不适应,VB.NET学习曲线与C#不分高下,加上原来VB所拥有的“坏”名声,使老的VB程序员被分化——只有部分升级到VB.NET,另有一部分转向了C#;对于初学者而言,由于微软宣传工具的巨大力量,都跟风去学C#去了。
     其次,软件技术发展到虚拟机大行其道的时代,编程语言已退居次要地位,在.NET平台之上,岂可能有一门独大的语言?
      所以,新一代的VB.NET虽然在功能不上弱于其它的OO语言,但也只能“无可奈何花落去”。技术的进步的重点在不断地转移,新的计算机语言技术研发不再是软件技术发展的中心,这也是当前所有计算机语言所面临的共同问题。
      第三,所有的计算机语言都还面临着一个定位的问题,定位不准,就有被淘汰的危险。
      C#与VB.NET,这两个.NET上的主流语言,到底有何差别?在语言功能上,两者实在难分伯仲,一个是后起之秀,一个是沙场老将,微软会如何取舍,给这两名大将在“微软帝国”朝廷中什么样的“官”当呢?
 在VS.NET 2003中,这两者的定位还看得不清楚,而2005年VS2005的发布,让我感受到了两种语言不同的发展方向。
     VS2005中,VB.NET语言有了一些重要的变化,虽然不象从VB6到VB.NET那样惊天动地,却也意味深长。
     1.回到VB6的时代
       建立VB6的工程后第一个看到的就是Form1,可以直接通过窗体名访问窗体上的控件。
       到了VB.NET 2003,这种方式被完全面向对象的方式所取代,一个窗体是一个对象,而在使用一个对象之前,必须先NEW它,而要访问另一个窗体上的控件是比较麻烦的,程序员必须建立起OO的思想后才能真正灵活地在各窗体间建立各种关联(参见本人拙著《编程的奥秘》一书)。
      VB2005中,现在又可以直接使用Form1了。其实,VB2005在内部还是以面向对象的方法管理窗体的,但仅从使用角度,程序员已“看不到”这点了。
     2. 实在太方便的My名字空间。
    这个东东实在太好了,从系统API到资源文件,从多媒体、网络到计算机硬件信息,包容各种各样的功能,其使用之方面,真让其它语言(比如C#)的使用者垂涎三尺!
    3. .NET新特性的引入
     (1)范型:范型的引入,使创建强类型的集合成为很Easy的一件事,对于其元素是值类型的而言,对性能的提升实在很大。
     (然而,VB2005的范型语法使用了一个Of关键字,实在是丑陋,不如C#中的尖括号简洁,C#的范型语法是模仿C++的,但却不是机械地照搬。事实上,C++中的范型编程语法也不好,经常会出现一长串的数据类型定义,看得让人头昏。)
     (2)部分类:提供了扩充组件库的新方式。
     上述两个特性应用得当,都可以减少代码总量,减少系统中类的数量,从而降低系统的复杂度。
     其它还有一些小改进,就不说了。
    从VB2005的新特性来看,设计者除了引入.NET 2.0的新特性,还是回到了以“追求简便”,“追求高的开发效率”的路子上,各种新语言特性的引入都是为了能在最短的时间内开发出应用系统。这可以看成是从纯OO向传统VB编程方式的部分回归,降低了学习曲线。相比C# 2.0,初学者学VB2005更容易上手些。
      然而,VB2005对于初学者而言,在方便性的背后却隐藏着“可怕”的陷阱,引诱人去犯错误。
        1. 代码编辑器的Insert snippet功能:所谓snippet,其实就是完成特定功能的代码段,在VB2005项目中,有大量的snippet可供插入,将这些预制好的可复用代码块插入后,即进入同步代码修改状态,非常方例。这就引诱人到处去Insert snippet,其结果是项目中出现大量的重复代码。这可不是一件好事。
       这种功能还让人偷懒,不想费脑筋在系统设计上下功夫(好的系统设计可以大大地减少重复代码,从而提升项目的可维护度),是一种变相的“Copy & Paste”编程方式。出现大量的重复代码,属于“菜鸟”所写代码的主要特征。看来,VB“菜鸟语言”的帽子带得更紧了。
      但此功能对于有经验的程序员来说,应用得当,实在是可以大大地提高开发效率。
       2.Form1的回归:从表面上看通过Form1、Form2等名字直接访问窗体好象很省事,但对于初学者而言,这种方式却阻碍了他理解面向对象的思想,不掌握OO思想,在给程序排错时往往会“昏菜”,而且当需要转用C#开发时会不知所措。事实上,大多数真正的项目中,还是采用先new对象再使用对象这一OO基本方式的,VB2005的这种设计,很容易引诱初学者对面向对象技术“不求甚解”。
       3.大量的封装:My名字空间太好用了,好用到可使初学者不知道.NET Framework的体系结构,不知道API的概念也可以编程的境地。这样下去,人可能真的会变成“懒猪”了。
       4.“无用”的向导:VB2005中提供了不少的向导,这些向导除了把人变成“木偶”之外,好象没多大用。比如数据库窗体向导,真实的项目会用吗?如果初学者只会使用这个向导写数据库程序,他是不太可能会理解为什么当前系统大多采用分层架构,将界面层与逻辑层功能分开。
       “向导”引诱人们写出各种代码“混成一团”的软件。
       其实,向导是有用的,我总结了一下,至少有两个用途:
      (1)学习:认真研读一下向导生成的代码,可以深入理解许多技术。
      (2)快速开发:软件工程中有一种“原型法”,因此在实际开发中可使用这些向导快速地开发出一个系统原型用于捕获用户需求,非常方便。
       还可以再列出一些“陷阱”,以后想到了再补充。
      编程语言本质上是一种工具。
      对于一个工具,必须知其“利”,亦需知其“害”,方可御之而不为其所御。我在这篇小文中说了不少VB2005的“坏话”,其实我是很喜爱她的,因此,才不希望看到她被误用,被误解,更不希望她凭“资色”去引诱一些“涉世未深”的“少年”去“犯错误”,走弯路。
      其实,VB还是很“秀色可餐”的,而且Basic语言能几十年长盛不衰,难您不想了解了解其“青春长驻”的秘密吗?

                        ——(转贴请注明作者名及出处)

uniapp实战:mui-player插件如何完美适配m3u8/flv直播流(附完整代码) 本文详细介绍了如何在Uniapp中使用mui-player插件完美适配m3u8和flv直播流,提供从基础配置到高级优化的全流程解决方案。通过动态加载策略、响应式布局和内存管理,实现跨平台稳定播放,适用于企业级直播应用开发。 阅读详情

相关推荐

Decoder如何工作、Transformer如何训练、以及exposure bias问题

1、结合图文描述Decoder中各个模块是什么,以及是如何工作的。2、transformer是如何训练的。3、exposure bias问题造成的原因及解决方法

m0_59113542的博客 3345

曾经如日中天的VB编程,现已没落,而惨遭嫌弃的它,成了香饽饽

说到VB编程,一股莫名的亲切感,总会油然而生。它,也算是承载了一代人的青春。可以说,2000年前后,Visual Basic这个编程工具,也就是我们常说的VB,简直是火爆全网啊!但,令人遗憾的是,曾经如日中天的VB编程,现今使用人数却门可罗雀,已冷落到被淘汰的边缘。此情此景,难免令人嘘唏!众所周知,VB是微软推出来的一个可视化编程语言,它主要针对的是,Windows操作系统的32位主机。1991年,Visual Basic 1.0诞生,当时只有英文版这个版本,接下来几年,先后推出了Visual Basic

云表平台的博客 1万+

Unity 代码混淆<混淆插件(Obfuscator Pro 3.9.4)>

Unity 代码混淆<混淆插件(Obfuscator Pro 3.9.4)> 插件导入项目 导入后打开OPS/Obfuscator/Obfuscator Pro Settings 打开后可以看到界面如下 可以在上面界面中选择你需要混淆的类,方法,字段,属性,事件,参数。需要混淆的程序集的选择。如果有些程序集混淆后会有问题也可以添加到白名单里不被混淆 根据自己需求取选择 这个界面是是否添加添加随机代码的 如果使用了上面的插件可以使用 插件下载网址:https://download.cs

Xing_Cheng_Yun的博客 5103

再见,Visual Basic——曾经风靡一时的编程语言

2020年3月,微软团队宣布了对Visual Basic(VB)的“终审判决”:不再进行开发或增加新功能。这意味着曾经风光无限的VB正式退出了历史舞台。VB是微软推出的首款可视化编程软件,自1991年问世以来,便受到了广大程序员的热烈欢迎,同时也承载着一代人的青春记忆。VB6.0无疑是VB的巅峰之作。它让开发者能够轻松地在屏幕上“绘制”出窗口、命令按钮、菜单等各种对象,实现快速原型化和易于上手的特点。因此,许多中小型企业的办公程序都选择使用VB进行编写,其影响力至今仍然可见。

无乞的博客 3461

基于STM32的智能家用节能控制系统设计

该系统可以实时监测家庭的环境参数,如温湿度、光照强度和人体存在情况,根据设定的节能策略自动控制灯光、空调、风扇等家电设备,从而降低不必要的能源消耗。该基于STM32的智能家用节能控制系统通过多种传感器实现了对家庭环境的实时监测,并结合继电器控制模块实现了对家电设备的自动化控制,从而达到节能减排的效果。根据传感器获取的数据,判断是否需要开启或关闭家电设备,从而降低不必要的能源消耗,达到节能的目的。:继电器的控制引脚连接至STM32的GPIO引脚(如PB0、PB1),用于控制灯光、风扇、空调等家电设备的开关。

stm32d1219的博客 1246

BPMN2.0规范及流程引擎选型方案

本文主要简明扼要的介绍了BPMN2.0规范的内容,可让读者快速度的了解BPMN2.0所涵盖的主要内容和图形样式。也较为详细的阐述了如何绘制标准的流程图,以及在软件层面中如何实现业务流程功能,和技术选型。

比特桃 1万+

Visual Basic 入门教程笔记

一个全面的 Visual Basic (VB) 教程,适合初学者和有一定编程经验的人士。Visual Basic 是一种由微软开发的高级编程语言,广泛用于 Windows 应用程序开发、Web 应用程序开发(如 ASP.NET)等。

梵心白莲的博客 3272

DSPF28335:从零到一,实战GPIO与外部中断的嵌入式系统交互设计

本文以德州仪器DSPF28335芯片为例,详细讲解了嵌入式系统中GPIO与外部中断(EXTI)的实战配置方法。通过一个完整的按键控制LED并触发ADC采样的项目,深入剖析了GPIO寄存器配置、三级中断机制(外设-PIE-CPU)以及中断服务函数编写的核心要点,帮助开发者掌握嵌入式交互设计的基石,并提供了关键的避坑指南与调试清单。

weixin_29169899的博客 115

盘点即将消失的五种编程语言!

编程语言是计算机科学中的重要组成部分,它们为开发人员提供了一种与计算机交互的方式。然而,随着技术的不断发展,一些编程语言逐渐被淘汰,因为它们的使用范围越来越窄,或者因为有更先进的替代品出现。在本文中,我们将介绍即将消失的五种编程语言:Ruby、Visual Basic、Perl、Delphi和Haskell。Ruby是一种动态、面向对象的编程语言,它于1995年由日本程序员松本行弘(Yukihiro Matsumoto)开发。Ruby的设计目标是提供一种简洁、灵活和易于理解的编程语言。它在Web开发领域非常

2401_84204034的博客 711

银河麒麟系统安装redis【亲测可行】

架构:Linux 5.10.0-9-generic x86_64 GNU/Linux。redis版本:redis-6.2.3.tar.gz。然后在执行make install,结束;OS:银河麒麟V10(SP1)未激活。cpu:I5-10代;

lx_nhs的博客 3336

高通SDX12:ProSLIC Si32185移植调试

高通 SDX12 语音芯片slic 音频驱动 Si32185

不秃头的程序猿Gabriel的博客 2038

Basic大旗不倒·谭浩强

(谭浩强教授关于basic发展的观点,我很同意,不知大家怎么想。)大多数人已取得这样一种共识:程序设计应该是计算机应用人员的一项基本功,也是大学生在校学习期间的一项基本训练。学生通过学习程序设计,可以具体地了解计算机是怎样进行工作的,知道计算机能做什么和不能做什么,而不致于在使用计算机时知其然而不知其所以然。在程序设计课程中所接触到的一些基本概念(如选择、循环、子程序、数据类型等)在后续课程中

骏逸居 2991

【图像超分】论文复现:Pytorch实现SRCNN!保姆级复现教程!提供完整代码和最优权重模型(x2、x3、x4)!科研级论文曲线图!计算平均PSNR和SSIM!代码Windows和Linux都可用!

由于很多同学反应没用过jupyter notebook,更习惯用pycharm项目的形式跑代码。于是,本文将用pycharm项目的形式,重新复现SRCNN!【图像超分】论文复现:新手入门!Pytorch实现SRCNN,数据预处理、模型训练、测试、评估全流程详解,注释详细,简单修改就可以训练你自己的图像数据,有训练好的模型下载地址,随取随用。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 4703

Basic :“青春长驻”还是“菜鸟陷阱”----------转自北理金老师

Basic语言已经四十多岁了,在计算机技术发展史中,能被广泛使用四十年以上的语言实在数不出几个,可谓青春长驻。有趣的是,一方面许多人都在使用它,另一方面Basic又被人们冠以“初学者语言”的帽子,而且好象永无摘帽的日子。       Basic语言能长盛不衰,与微软公司有着太大的关联,更确切地说(个人猜测),是与微软老板比尔盖茨的“Basic情结”有关,毕竟在老比同志最初的发家史上,Basic语言

指尖的专栏 863

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: 关于《编程的奥秘》一书未说完的话
下一篇: 《编程的奥秘》读者问答(时时更新)
bitfan
博客等级 码龄26年 4298粉丝 243原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值