Borland Turbo Pascal 7 回顾:集成调试先驱的巅峰与终章
来源标题:They don't make 'em like that any more: Borland Turbo Pascal 7
Borland Turbo Pascal 7 是 Turbo Pascal 系列的巅峰,也是该产品线的终点。它引入了集成源码级调试等当时激进的技术,并以“按书授权”方式销售——买一份可多人轮流使用且无复制保护。该系列最终让位于 Delphi,后者虽技术出色却未能产生同等影响。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Borland 的 Turbo Pascal 是有史以来最成功的编程工具之一。它引入了许多我们今天习以为常的开发技术,比如集成源码级调试,但在当时这些都是革命性的创举。TP 7,也就是 Turbo Pascal for Windows 1.5,是 Turbo Pascal 系列的巅峰,也是它的终点。“Turbo”这个名字当时被认为与爱好者级产品联系在一起,而“Borland Pascal”则是另一个价格昂贵得多的产品。但 Turbo Pascal 已经足以支撑相当规模的应用程序,而且价格非常亲民。它还采用了“按书授权”的模式,我认为这在软件行业里算是新鲜事。你可以买一份 TP,然后任意数量的人都可以使用,但同一时间只能一人使用。即便它是以软盘形式发行的,也没有任何拷贝保护。(Turbo)Pascal 最终让位给了 Delphi,而 Delphi 尽管在技术上有其优点,却从未产生过同样的影响力。
上世纪 90 年代,我用 TP 7 编写医学影像软件,运行在 Windows 3.1 下——在那个年代,Windows 3.1 是一个很棒的操作系统。和之前的版本一样,Windows 3.1 本质上仍然是 MSDOS 的扩展,但通过一些巧妙的技巧,它能够(在某种程度上)实现多任务并访问更多内存。它有一个简单一致的用户界面模型——无论对用户还是对程序员来说都是如此。在当时,它还没有那些浪费资源又令人恼火的反功能,而正是这些反功能让现代 Windows 变得如此令人沮丧。所以 Windows 3.1 是我们都希望自己的应用程序支持的平台——倒不是说那时候有多少其他选择。
和许多其他程序员一样,我专门为了使用 TP 7 而学习了 Pascal 编程语言——那些年我基本上是个 C 程序员,但用 C 为 Windows 编程简直是件苦差事。坦白说,今天也好不到哪里去。过去和现在一样,你都必须把一大堆命令行工具组合起来,而这些工具接受的是难以理解的文本文件作为输入。TP 7 将这一切繁琐都自动化并隐藏了起来。
问题不仅仅出在工具上:用户界面模型本质上是面向对象的,但 C 语言并不容易以面向对象的方式编程。TP 5 将基本的面向对象概念引入了 Pascal 语言,而这些概念后来被证明至关重要。Windows 特有的功能由所谓的 Object Windows Library 提供:这是一个相对厚重的、面向对象的封装层,包裹着基本的 Windows C API。据我回忆,Borland 比 Microsoft 更早为 Microsoft Windows 推出了面向对象的编程库——而且 Borland 的更好。
OWL 让创建美观的用户界面变得容易,还能带点视觉点缀。那个熟悉的“绿色对勾按钮”就是 OWL 的一项增强功能,它装点了如此之多的 Windows 应用程序,以至于最终变成了一个令人厌烦的老套元素。
总而言之,使用 Turbo Pascal 7 为 Windows 编程比其他任何方式都要容易得多。它不仅提供了与 Windows 用户界面工作方式相匹配的编程模型,应用程序本身也具有 Windows 图形界面——当时许多 Windows 编程工具实际上运行在 MSDOS 下,而且完全是基于文本的。TP 7 还拥有完全图形化的工具,用于设计菜单和图标等用户界面元素。用 Windows 记事本、通过一个格式晦涩的定义文件来布局菜单,从来都不是什么愉快的体验。Microsoft 确实为这类操作提供了图形化工具,但 Turbo Pascal 将它们整合进了一个无缝的 IDE。我要构建和运行程序,只需按下 F7 键。我甚至可以通过点击一行代码来为调试器设置断点。正如我所说,今天这很平常,但对早期的 Windows 编程来说却是革命性的。
但真正让 TP 7 与众不同的是它的 CP/M 血统。Turbo Pascal 经由 CP/M 和 MSDOS 来到 Windows,这意味着它的编译器核心设计用于在内存紧张、CPU 相对较慢的环境中运行。在大多数编译器不得不在磁盘上写入一堆中间文件的年代,TP 只是在内存中构建一切。它通过高度优化的汇编语言代码做到了这一点,这些代码出自技艺精湛的工程师之手。今天,如果你的编译器吐出大量临时文件,这没什么大不了的,因为磁盘存储又快又便宜。但在软盘时代,你必须尽量减少磁盘访问。不幸的是,你还必须尽量减少内存使用,因为内存也不多。为 CP/M 编程需要真正的技巧和奉献精神。
所以当 TP 来到拥有 16 位 CPU 和数兆字节内存的 Windows 机器上时,对开发者来说就像是提前到来的圣诞节。一个设计为在 32kB 内存和单个软驱下就能胜任的编译器,当获得数兆字节内存和硬盘时,简直飞起来了。
这一切意味着 TP 7 用起来是一种享受。它就像一个现代 IDE,但没有任何臃肿。那些永远不会用 Microsoft 工具去碰 Windows 编程的开发者,能够从 MSDOS 迁移到 Windows 而不会遇到太大困难——即使他们像我一样必须先学习 Pascal。编译出的代码相当快,但如果还不够快,你可以直接在 Pascal 源文件中编写汇编语言。
我认为可以毫不夸张地说,Turbo Pascal 为 Microsoft Windows 在桌面 PC 上的广泛普及和最终主导地位做出了贡献。如果 90 年代初有一款“Turbo Pascal for Linux”,那么我们今天的桌面可能都在运行 Linux 了。
那么 Turbo Pascal 后来怎么样了?至少有三个因素导致了它的最终衰落。
首先,来自 C 编程语言的竞争日益激烈。Borland 确实推出了 Turbo C,后来又推出了 Turbo C++,但它们的影响力都不如 Pascal。人们很容易忘记,PC 并不是最早的通用计算设备。大多数科研和教育机构,以及许多企业,使用的都是图形化的
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。