30年后,QBasic仍然是最好的

2020-11-29 03:20:33

我的大儿子诺亚(Noah)三个月前才7岁。如果他可以与家人进行2个小时的《我的世界》游戏,他会心跳加速。他一生中的另一个爱好是超级马里奥制造商(Super Mario Maker),看到他玩起与我同龄时一样的游戏和水平,真是令人激动不已。大约5个月前,我离开家人参加了每年一次的ludum冒险朝圣:一场游戏开发比赛,在那次比赛中,我与朋友锁定自己,回到原始的穴居人状态,不睡觉48小时,并从头开始制作完整的游戏(在帖子末尾播放!)当我自豪地向妻子展示我的革命性AAA称号时,诺亚自然很感兴趣,我向他介绍了代码领域,向他展示了单词的简单性(他刚刚学会了如何阅读)制作了一个实际的游戏。从那天开始,诺亚一直在问我如何教他制作自己的视频游戏。在过去的5个月中,我一直在寻找儿童语言/ IDE的圣杯,希望将这种兴趣火花变成难忘的经历……

我的追求使我进入了无休止的论坛,在这些论坛上我尝试了无数建议:SmallBasic,Pico-8,Smalltalk,Scratch等。我什至询问了StackOverflow的伟大Oracle,但无济于事。 5个月后,我得出了一个令人失望的结论:没有什么比我在另一个时代的经历更接近了。 30年后,QBasic在发现编程方面仍然是最好的。

是的,QBasic是一种糟糕的程序语言。它向被广泛认为有害的概念介绍了一个概念,对隐式声明使用笨拙的语法,不区分大小写,基于非零,等等。列表还在继续……开发技能时,最好从开始而不是必须纠正多年的不良实践。遵循此建议,我可能应该从我喜欢的红宝石语言的基础开始。然而,尽管当今大多数QBasic概念被我们的同龄人视为危险信号,但它们每个当时都具有非常特定的目的:保持该语言的简单易用,这是所有其他语言都被抛弃的观点灵活性,复杂性和逻辑性。

今天,我在儿子的11英寸HP Stream上安装了QBasic,不得不破解DOSBox手动安装。他双击了桌面上的图标,然后瞬间进入了IDE,迎接了介绍屏幕,这让我回想起了很多回忆:

然后我告诉诺亚,对于进入程序员内部秘密圈子的任何人来说,有一个非常神圣的强制性规定,即从一个程序向所有其他程序员打招呼开始。在我决定公式的过程中,他慢慢搜索了每个键,并用右手仔细地键入了神奇的字眼:PRINT“ hello world”

他按下F5键,惊讶地发现自己的代码被编译成在黑屏上呈现的文本。他笑了,给了我五分之一,然后在小笔记本上写下了密码,以便以后记起来。

我们继续执行另外两个命令:CLS,COLOR,PLAY,INPUT和IF。没有什么可以解释的:没有复杂性,没有笨拙的运算符,没有抽象概念,没有需要阅读的文档,没有对象/类/方法的概念,没有安装框架,IDE中没有压倒性的菜单/按钮,没有特殊要求关键字或括号。它是最纯粹的简单和形式的代码。

不到一个小时的时间,他自己编写了自己的第一个程序-一个交互式且难以置信的微妙应用程序,它使您了解计算机对您个人和明智的人的感受:

…之后,他继续轻松地向他解释了它是如何工作的以及代码在做什么!

这样一来,我7岁的男孩不仅可以在一个小时内编写自己的第一个文字游戏,还可以体验创建,编译和执行自己的小程序所带来的乐趣和刺激。奖励积分全部都放在一个笔记本页面上:

我很高兴他能理解为什么我一直说我拥有世界上最好的工作。今天我唯一的遗憾是意识到三十多年以来,我们一直无法为孩子们提供更好的选择:Qbasic的简单关键字集有限(整个帮助仅适用于单个F1屏幕并包装在一起)带有简单的示例!),不会使编码人员分心于任何视觉伪像,具有非常紧凑和舒适的开发环境,可以尽早显示错误,只需一个键就可以在心跳中编译和执行代码,并且非常简单明了。我们已经建立了更健壮和更复杂的语言/框架/ IDE(对于任何实际应用程序来说都是必不可少的),但是我们从未真正比QBasic更简单或更直接地访问编程的快感。即使是今天运行QBasic,对于使用现代Mac / PC / Linux机器的新手来说,也变得很恐惧,而以前只需要在A:\磁盘驱动器中插入3,5英寸软盘即可。

够多了,今天只不过是为了庆祝另一个发现了编程的兴奋与美丽的人!

(如所承诺的那样,我等待EA致电购买版权的AAA称号)