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

2016-05-28 伯乐在线/颜培英 伯乐在线 伯乐在线

(点击上方公众号,可快速关注)


英文:Nicolas Bize

译文:伯乐在线 - Patrick_颜

链接:http://blog.jobbole.com/101514/


我大儿子如今已经七岁零三个月了。如果可以用玩两个小时《我的世界》的时间来交换家人,他会马上行动。他在生活中还喜欢玩《超级马里奥制作大师》,看到他玩这个游戏我也非常兴奋,因为我像他这么大时,也玩相同的游戏,水平都一样。大概 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的版权)


【今日微信公号推荐↓】

伯乐在线最近文章:

花一万个小时练习 Coding,不要浪费一万小时无谓地 Debugging2018年8月23日

Coding 之于科技的重要性不言可喻,也不再是软体工程师的专利,医师、律师、会计师、护理师、金融从业人员,甚至是听起来摸不着边的政治家,不论是哪个行业,学习Coding 已经成为世界新趋势。

泪流满面的 11 个 Git 面试题2018年8月22日

在今年的 Stack Overflow 开发者调查报告中,超过 70% 的开发者使用 Git,使其成为世界上使用人数最多的版本控制系统。Git 通常用于开源和商业软件开发,对个人、团队和企业都颇有益处。

我给你钱,你帮我改好不好?2018年8月19日

七点左右,我下班回家的路上收到一条消息,是一个初入职场的同行发过来的。其实他也不算初入职场,去年他就毕业工作了,那个时候我在上家公司工作比较轻松,每天都会到论坛逛逛,时不时写一些小功能发到网上共享,也会帮别人解决一些问题。

如何学习新技术2018年8月14日

我从 2009年~2010 年左右开始学习信息技术,从初期围绕单片机做电子设计,一路浅尝辄止,走马观花。什么语言都用过,在各种平台上都干过活,有用的没用的都学了一些,一路尝鲜一路丢。

2 年面试 900 多位工程师后,我总结了这些经验2018年8月13日

两年面试超过 900 位工程师,用数据说话,总结公司面试方式及建议,对工程师也有借鉴作用。

热门文章:

最美最早的六一祝福送给你2016年6月1日

小编提醒:建议在WIFI环境下播放六 一 到 了,祝老朋友、大朋友、小朋友,节日快乐永远保持一颗童心!永远年

iOS 应用支持 IPv6,就那点事儿2016年5月25日

iOS 新版支持 IPv6,看本文就够了。

篮球正能量,你最需要哪个?2016年5月28日

篮球正能量,你最需要哪个?

【我搞你笑】玩了《魔兽世界》,再也没法好好说话了2016年6月13日

喜欢我们就介绍亲的小伙伴们一起加入二次元风暴公众平台,喜欢的消息欢迎大家帮忙分享扩散  公众平台微信号:ER

宜居青岛 最美崂山2016年6月16日

中科院昨天发布《中国宜居城市研究报告》,在全国40个被调查的城市中,青岛击败三亚、威海、厦门等劲敌,斩获第

(┯_┯)广告君被屏蔽了~~~

感谢您的支持,请按照如下步骤取消屏蔽ABBAO的广告(详细步骤):