在过去五十年左右的时间里,随着编程语言的所有进步,为什么要学习一门80年代鼎盛时期逐渐消失的语言?它可能不是主动开发尖端系统的最佳语言,但是如果您是编程新手,并且想以更简单的方式来理解其概念,那么BASIC可能是您的最佳选择。 

我第一次接触编程是在Commodore 64上内置的BASIC解释器。通过其简单的变量和GOTO命令,它向我展示了如何将数据视为项目,并将程序视为一系列方向。甚至还有冒险小说,其中故事的某些部分编码为BASIC程序,您必须复制并运行这些程序,以使您对可以做什么有更好的了解。这样做并不能使我胜任开发人员的工作,但是后来当我遇到更复杂的语言(例如C ++和Java)时,确实为我提供了一个开端。 

多米尼克·帕亚克(Dominic Pajak)表示同意。他建立了一个Twitter机器人,该机器人在8位BBC微型计算机模拟器上以BASIC程序的形式运行推文,后来与Matt Mattbolt联手创建了一个现代编辑器来支持它。这是任何人入门BASIC程序并在一条推文中查看其结果的简单方法。 

我们联系了Pajak,以了解他如何看待BASIC今天的重要性,他如何构建该机器人以及在具有数十年历史的系统上创建了哪些惊人的程序。 

最初发布者:Kweepa

问答环节

问:这是一个非常简单的概念—有人在Owlet编辑器中编写代码,然后在推文中@bbcmicrobotvoila:该程序的快速视频可供所有人观看。您是如何构建机器人的?

答:我使用了免费的Twitter API和Node.JS。最初,我使用了一个非常酷的BBC Micro模拟器jsbeeb,可以与之深度集成,将推文注入模拟器的内存中,并输出视频帧供ffmpeg拼接在一起作为mp4来回复原始推文。服务本身在我的Raspberry Pi车库中运行,然后运行到AWS Graviton。我还曾经使用连接到真正的1980年代机器+ CRT的Arduino做过“现场特别活动”,并让它执行了一次在YouTube上直播的人们的代码推文。那很有趣。

问:虽然看到所有的BASIC代码让我有些不舍,但为什么要构建一个今天运行它的机器人呢?还是相关吗?

答:如果您在80年代长大,您就会学习使用BASIC进行编码。因为他们的家庭Commodore 64或Sinclair Spectrum已在ROM中预装了BASIC,所以一代孩子开始从事科技事业。在英国,我们在学校开设了BBC Micro。BBC Micro附带了更现代的BASIC版本,称为BBC BASIC。此实现支持功能和过程-您可以构造代码,而无需任何恶意的GOTO。BBC BASIC还具有内置的6502汇编器。BBC BASIC很快。BBC BASIC的创建者是Acorn Computers的Sophie Wilson,他后来设计了ARM体系结构,现在是世界上使用最广泛的处理器体系结构。

巧合的是,BBC BASIC也具有表现力,并且易于缩写(实际上是字节令牌),这意味着可以将一些非常令人印象深刻的演示塞入一条推文的280个字符的限制中!

问:自从BBC Micro以来,随着计算机技术的所有进步,BASIC在向新学习者教授编程方面有什么优势?

答: 80年代家庭计算机使用经验的即时性非常好。您打开了机器的电源,直接进入提示您进行编码的提示。无需等待启动,无需安装,无需分心。诚然,令人沮丧的数据盒式磁带或试图在100行键入BASIC程序中查找错字的想法毁了我的玫瑰故事,但我仍然可以在我认为是现代的背景下,从这种经验的优势中学习。您会看到Arduino和Raspberry Pi继承了相同的动手即时性哲学。 

Ed。注意:实际上,我们不得不将程序保存在看起来像录音带的地方。如果您知道什么是录音带。]


最初由流变论发布

BASIC说唱不好,但它仍然是最简单的基础知识简介(变量,条件,循环),其经验与当今的许多语言有关。BBC BASIC通过添加功能来支持结构化编程而走得更远。您可以使用有意义的变量名,按标签调用子例程,巧妙地实现递归,而无需使用GOTO或参考行号-它解决了Dijkstra著名的BASIC问题除此之外,BBC BASIC内置了对彩色文本和图形关键字的支持,因此初学者可以在他们的第一个程序中看到有趣的事情。初次体验很重要,因为它可以使初学者喜欢编码或永久放弃编码。

综上所述,就我所知,BASIC如今已经过时了。Raspberry Pi创始人Eben Upton(也是BBC Micro的粉丝)很好地总结了这一点:

“…学习了,然后继续前进。如今,Python也许是一个更好的选择,因为阶梯进一步上升,但是BASIC没错”

问:我记得我所获得的许多早期软盘上都有很多非常酷的程序,这些程序是从演示场景中衍生出来的。这种精神仍然存在,而且还不错,那么您通过机器人看到的最酷的东西是什么?

这些天,机器人被连接到beebjit上,后者在后端模拟7 GHz等效的6502处理器。它可以在短短几秒钟内模拟三个小时。这意味着人们可以尝试在原硬件上进行迭代的工作,而这些工作本来应该是一夜之间完成的(生成的代码在复古硬件上的实时输出与在bot上相同),等待较长时间才能完成呈现)。结果很酷的事情正在发生:

史蒂夫·麦克雷Steve McCrea)在推文中创建的令人兴奋的光线追踪器

神奇的调色板循环动画保罗·马林 

有很多很棒的东西要看,但是我没有涵盖。可以肯定的是,人们正在创造出比我最初建造该机器人时想像的更好的方式。 

如果您想看到这些程序实时运行,请查看BBC BASIC的嵌入式沙盒样式教程它嵌入了9x 6502仿真。

1
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫

本文学习使用Twitter机器人编程BASIC瑞安·多诺万(ryan donovan)酷学软件发布的原创文章
转载请注明地址:https://www.pupilshome.com/news/rb1yurdhhqqzrig.html