BASIC 到底那么糟,还是其实更好?
BASIC 的遗产让人意见分裂:有人把它看作粗糙、会诱发面条式代码的遗物,也有人认为它为整整一代人打开了编程之门。评论者指出,早期 8 位 BASIC 有意保持极简,只占用几 KB RAM,并兼具操作系统、Shell 和教学工具的角色;而像 QBasic、VB 和 GFA BASIC 这样的后期方言则加入了结构、函数,甚至图形界面能力。许多人认为,尽管 BASIC 在技术上有缺陷,它的即时性、低概念负担和紧密反馈回路,至今仍难以被现代入门工具如 Python、JavaScript、Scratch 或可视化工具完全取代;而它那些“坏习惯”在学习者转向更现代语言后也很容易被纠正。
BASIC 方言的广泛性
- 评论者强调,“BASIC”其实是一个庞大的家族:从只有 4–8K ROM 解释器、带行号的小型版本,到结构化、模块化,甚至面向对象的方言(例如 QBasic、VB、Rocky Mountain BASIC、GFA BASIC)。
- 这种多样性让“一概而论”(“BASIC 很糟”或“BASIC 很棒”)都不太准确;不同平台和时代的体验差异很大。
进入计算机世界的入口
- 许多人回忆起 BASIC 是他们在 8 位家用电脑上的第一门语言,那些电脑一开机就直接进入 READY 提示符。
- 极低的入门门槛(无需构建步骤、无需 IDE、即时反馈、纸质手册和杂志代码清单)被视为它最大的成就。
- 非程序员(孩子、会计、工厂操作员)也能用 BASIC,后来又用 Visual Basic / VBA 搭建有用的系统,甚至小型生意。
简单性 vs. 结构化
- 支持者赞赏 BASIC 的概念集合极小:变量、PRINT、IF、循环、GOTO/GOSUB;简单的图形和按键输入让游戏和可视化程序更容易上手。
- 批评者则表示,较大的 BASIC 代码库(尤其是带全局变量、GOTO、行号、没有真正函数/过程的情况)会变得脆弱且难以维护。
- 有人认为“坏习惯”比如非结构化流程是有害的;也有人说这只是自然的学习阶段,之后会让结构化语言显得明显更优。
Dijkstra、GOTO 与语言设计
- 对 BASIC 和 GOTO 的著名批评存在争论:
- 一方指出历史背景:早期 Fortran/BASIC 代码库大量使用 GOTO,难以理解;Dijkstra 希望引入更高层次的构造。
- 另一方认为,他的立场后来被过度泛化成“BASIC 会永久毁掉程序员”,这与他们的经历不符。
- 也有人指出,即便在现代系统中,有限使用类似 GOTO 的结构也可能是实用的,但语言应当引导新手采用更安全的模式。
环境与“贴近机器”
- 8 位机器上的 BASIC 兼具操作系统、Shell、脚本语言和教学工具的角色;用户可以 PEEK/POKE 硬件,并感觉自己“拥有”这台机器。
- 这种紧凑、无干扰、随时可用图形和声音的环境,与今天的智能手机和 PC 形成对比;后者的编程往往被隐藏在复杂的技术栈之后。
现代继任者与替代方案
- 被提到作为“现代 BASIC”的候选包括:Python、JavaScript(尤其是在浏览器中)、Scratch、Pico‑8、Godot/GDScript、MicroPython/CircuitPython、Gambas、Xojo 等。
- 许多人觉得,没有任何一种能完全复制 1980 年代 BASIC 所提供的普及性、即时性和简洁性的组合。