30 年后 QBasic 还是棒棒哒,儿子也开始学了

我大儿子如今已经七岁零三个月了。如果可以用玩两个小时《我的世界》的时间来交换家人,他会马上行动。他在生活中还喜欢玩《超级马里奥制作大师》,看到他玩这个游戏我也非常兴奋,因为我像他这么大时,也玩相同的游戏,水平都一样。大概 5 个月前,我离开家去参加了每年一度的 ludum dare 盛会:一个游戏开发比赛。

在这期间,我让自己远离朋友,回到了原始穴居人的状态,48小时没有睡觉,并且从零开始开发了一个完整的游戏(在文章的结尾可以试玩!)。当我很自豪地向老婆展示我创新性的作品AAA title时,诺亚不自觉地被吸引住了,随后我向他介绍了代码的世界,向他展示如何用简单的词汇(他刚学会的单词)创造出一个真实的游戏。自从那天开始,诺亚经常让我教他如果制作视频游戏。并且在过去的5个月里,我已经找到了适合孩子的编程语言、集成开发环境,希望他能把兴趣的火花变成一个难忘的经历。

为了探索,我浏览了数不尽的论坛,通过它我得到了无数的建议:SmallBasic、Pico-8、Smalltalk、Scratch 等等。我甚至查询了强大的 StackOverflow 社区,但没有任何收获。五个月之后,我得到了令人失望的结果:离我想要进入的另一个时代还差的很远。30年过去了,当涉及到探索编程的时候,QBasic 仍然是最棒的语言。

“OMG please don’t teach him GOTOs!!”

10 PRINT “OH NO, WHAT ARE YOU DOING?!!!”
20 GOTO 10

是的,QBasic 是一种糟糕的过程型语言。它采用了一些大家都认为有害的概念,使用笨拙的语法实现隐式声明,不区分大小写,索引不是从0开始,等等。这样的情况还有很多……当学习一个新技能,最好的做法是从开始就得到正确的反馈,而不是去纠正多年的坏习惯。根据这个建议,我也许应该从我喜欢的 Ruby 语言开始。然而,尽管大多数的 QBasic 概念基本上都被同行们标记上危险信号,但是在那时每个概念都有着非常特殊的目的:保持语言的简洁性和可理解性,而其他语言留下的意义是为了支持灵活性,复杂性和逻辑性。

就在今天,我在儿子的笔记本上安装了 QBasic,并且完成了 DOSBox 的手动安装。他双击他桌面上的图标然后立即进入到了集成开发环境,欢迎界面随即出现,这个界面唤起了我脑海中许多的回忆:

然后我告诉诺亚这有一个非常神圣的仪式,任何想进入秘密的程序员圈子的人都必须做的,以与其他程序员打招呼的程序开始。随着我口述命令,他开始慢慢的搜索每一个字母,仔细的用正确的手指打出神奇的字母:PRINT “hello world”

他按下 F5,因为他看到代码被编译成文本内容并呈现在他的黑色屏幕上,他非常的惊讶。他微笑着与我击掌,并且在他的小本上潦草的写下代码,方便以后能记住它。

我们继续尝试更多的命令:CLS, COLOR, PLAY, INPUT, 以及IF。这里没有什么需要解释的:没有复杂性,没有笨拙的运算符,没有抽象的概念,没有需要阅读的文档,没有对象、类、方法这样的概念,没有框架需要安装,没有其他编程环境中铺天盖地般的菜单栏及按钮选项,没有特殊的关键字或大括号。这就是代码最纯粹而又简单的形式。

不到 1 小时后,他写出了第一个自己的程序——一个交互式的非常微小的应用程序,作为一个敏感的人,它能让你知道它对你的感情。

这让他在他的表兄和最好的朋友Christian面前非常的自豪:

在那以后,向他解释代码是如何工作的以及代码在做什么就变得很容易。

并且一个小时左右,我7岁的儿子不仅仅写了它的第一个文字游戏,而且还从创造、编译、执行他的小程序中体验到乐趣和兴奋。除此之外,这些内容全部写到了笔记本里。

我很高兴他能理解为什么我一直说我有世界上最好的工作。我今天唯一的遗憾是30多年来,我们还没有为孩子想出更好的主意:Qbasic的关键字集合非常有限(整个帮助菜单安置在单独的 F1 屏幕上并且布满了简单的例子!),没有任何人工视觉来干扰编码者,一个非常有限并舒适的的开发环境,尽快的发现错误,使用一个单键就能立即编译和执行代码,并且非常的简单。我们已经建立了更强健的以及更复杂的语言、框架、集成开发环境(这些在现实生活的应用中当然是必不可少的),但是我们没有真正的制作一个比 Qbasic 更简单或者更能直接能体验到编程乐趣的编程语言。今天运行 QBasic 对于使用现代Mac、PC、Linux主机的新手来说甚至变得非常可怕,然而它过去却需要在 A:磁盘驱动 下插入 3.5 英寸的软盘……

吐槽结束,今天主要是庆祝另外一个人,他发现了编程的快乐与美!
(正如我承诺的那样,我等着EA给我打电话来购买AAA title的版权)

打赏支持我翻译更多好文章,谢谢!

打赏译者

打赏支持我翻译更多好文章,谢谢!

2 1 收藏 1 评论

关于作者:Patrick_颜

机器学习,数据挖掘,深度学习 个人主页 · 我的文章 · 12 ·    

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部