Synth Daily

那些年我们用过却已消失的IDE

这篇回顾探讨了上世纪八九十年代 DOS 系统下的文本用户界面(TUI)集成开发环境(IDE),特别是以 Borland Turbo C++ 为代表的工具。其核心观点是,这些老式 IDE 在功能上已相当完备,甚至在资源消耗和用户体验的直观性上优于后来的许多工具。文章认为,Unix/Linux 世界中流行的 Vim 和 Emacs 在易用性和集成度上是一种倒退,而现代 TUI 编辑器直到最近才通过 LSP 等技术重新追赶上当年的功能水平,并强调了 TUI IDE 在远程开发和低资源消耗方面至今仍然具备的独特优势。

DOS 时代的黄金标准

在图形界面普及之前,DOS 程序普遍采用一种全屏的文本用户界面(TUI)。这些界面虽然受限于字符显示,但通过菜单、窗口、颜色和鼠标支持,提供了功能丰富且操作逻辑统一的体验。

早期的代码编辑体验很不方便,开发者需要在编辑器和编译器之间频繁退出和切换。真正的突破来自于像 Borland 的 Turbo 系列这样的集成开发环境。以 Turbo C++ (1990) 为例,它在一个程序内提供了当时开发者所需的一切:

  • 语法高亮: 直观地显示代码结构。
  • 编译器集成: 无需退出即可编译代码,并在编辑器中直接显示错误和警告。
  • 项目管理: 可以管理由多个源文件组成的项目。
  • 集成调试器: 支持断点、调用栈查看等现代调试功能。
  • 内置帮助文档: 在没有互联网的年代,可以直接在 IDE 内部查阅完整的参考手册。

在那个没有 Stack Overflow 的时代,IDE 必须做到开箱即用、功能完备且易于探索,而 Turbo C++ 正是如此。

Unix 世界的倒退

与 DOS 上高度集成的 TUI IDE 相比,90 年代初 Linux/Unix 上的开发工具遵循一种截然不同的哲学。主流的编辑器,如 Vim 和 Emacs,虽然功能强大,但用户体验却像是一种倒退。

  • 它们默认配置简陋,缺少色彩和直观的窗口装饰。
  • 操作方式晦涩,新用户难以快速上手进行创建、编译和调试的完整流程。
  • 缺乏开箱即用的 IDE 功能,需要大量配置才能实现与编译器等的集成。

对于习惯了 Borland IDE 那种“一次性搞定”体验的用户来说,转向 Vim 或 Emacs 感觉非常不友好,仿佛是从一个功能完备的驾驶舱退回到了需要自己组装零件的阶段。

现代 TUI 的复兴与现状

尽管图形界面早已成为主流,但 TUI 开发环境并未完全消失,并且在近年来有所复兴。

  • Free Pascal IDE 这样的项目仍在维护,提供了最接近经典的复古体验。
  • 现代 TUI 编辑器的代表是 Neovim、Helix 和高度定制化的 Emacs(如 Doom Emacs)。
  • 这些现代编辑器功能强大,但通常是“万金油”,在针对特定语言的深度集成上,仍然难以媲美当年 Turbo C++ 那样专为一门语言打造的极致体验。

TUI 编辑器功能的复兴,很大程度上要归功于 LSP(语言服务器协议) 的出现。LSP 让为编辑器添加语言相关的智能功能(如代码补全、定义跳转)变得更加容易,从而使 Vim 和 Emacs 等工具重新获得了强大的 IDE 特性。

为什么今天我们还需要 TUI IDE?

在 VSCode 这样强大的图形化编辑器面前,讨论 TUI IDE 似乎有些不合时宜。然而,它们在特定场景下依然具有不可替代的优势。

  • 卓越的远程开发体验: 通过 SSH 连接到任何服务器,直接启动 TUI IDE,响应速度和流畅度远超远程桌面或有延迟的图形界面。
  • 兼容性与开放性: VSCode 的远程插件是闭源的,并且不支持所有操作系统(如 FreeBSD),而 TUI 工具几乎可以在任何终端环境中运行。
  • 极低的资源消耗: Borland Turbo C++ 的完整安装不到 9MB,在 640KB 内存下运行。相比之下,现代基于 Electron 的 IDE(如 VSCode)动辄占用数百 MB 磁盘空间和大量内存,对笔记本电脑的续航是巨大考验。

三十年过去了,现代 IDE 增加了更强大的重构工具和 AI 辅助编码,但其核心功能与三十年前的 Turbo C++ 相比,并没有发生根本性的变化。这不禁让人反思,我们所追求的“进步”是否在某些方面牺牲了简洁和高效。