我们 30 年前用过的 IDE

对 Borland 的 Turbo Pascal 以及其他 80 年代到 90 年代文本模式 IDE 的怀旧,引发了对今天工具与那些早期、紧密集成环境的更广泛比较。评论者从启动速度、调试器、GUI 构建器、远程工作和可配置性等方面,将 Visual Studio、JetBrains IDE、VS Code、Vim/Emacs 和 Eclipse 等现代工具与旧式 TUI 进行对照,常常认为虽然功能更丰富了,但可用性、性能和整体一致性未必同步提升。许多人最终认为,语言服务器和强大的图形界面确实带来了明显收益,但经典 IDE 那种简单、响应迅速、且“一应俱全”的感觉,至今仍基本无可替代。

讨论范围

  • 该线程回顾了 80 年代到 90 年代的 IDE(尤其是 Borland/Turbo),并将它们与现代 IDE、编辑器和工作流进行比较。
  • 主要子主题包括:GUI 与 TUI IDE、Eclipse/NetBeans/JetBrains/VSCode 争论、Vim/Emacs 文化、远程开发、调试,以及像 Delphi/VB6 这样的 RAD GUI 构建器。

Borland、Turbo Pascal/C、Delphi 和老派 IDE

  • 许多人记得 Turbo Pascal/C/C++ 非常快、直观、对初学者友好,并且有出色的集成调试器和手册。
  • Delphi 和 VB6 反复被提及为 RAD GUI 工具的巅峰;人们认为构建原生 GUI 比今天的 Web/移动端技术栈快得多,也简单得多。
  • FoxPro、PowerBuilder、QBasic、THINK C、CodeWarrior,以及各种 Amiga/C64/Atari 工具,也被记作强大且高度集成的环境。
  • 还有几个人提到,内容详实、写得很好的纸质手册和离线文档,比今天依赖代码片段的网页文档更能建立扎实的 ذهن模型。

被“遗忘”的高级 GUI IDE(Smalltalk、Lisp、NeXT 等)

  • 评论者认为文章低估了 GUI IDE:Smalltalk 系统、Interlisp-D、Mesa/Cedar、Lisp Machines、EiffelStudio、NeXT Interface Builder、Symbolics Genera,以及早期 Mac IDE,都被描述为在集成和实时工具方面领先了几十年。
  • 有人声称,类似 Smalltalk 的系统一直是最先进的 IDE 体验之一,具有基于镜像的工作流和丰富的检查器。

Eclipse、NetBeans、JetBrains、VSCode 和现代 IDE

  • 对 Eclipse 的看法分裂明显:
    • 支持者:称其高效、功能丰富、近年来稳定,拥有强大的索引、LSP、出色的 C++ 支持和可复现工作区;有些人还在使用基于 Eclipse 的厂商 IDE。
    • 批评者:记得它臃肿、缓慢、插件地狱、维护痛苦;很多人转向 IntelliJ 或 VSCode 后“再也没回头”。
  • NetBeans 被不少人怀念,尤其是在 Java、Swing GUI builder 和性能分析方面;也有人觉得它在 Oracle 之后,或作为 Apache NetBeans 之后走下坡路了。
  • JetBrains 的 IDE(IntelliJ、CLion、RubyMine 等)因深度静态分析、重构能力以及与生态系统“开箱即用”的集成而广受赞誉;很多人把内存占用看作强大功能的代价。
  • VSCode 在一些人看来只是“穿着 IDE 外衣的文本编辑器”,但它在 UX、扩展,尤其是远程开发方面胜出;另一些人则不喜欢它的模型、Electron 开销或人体工学。
  • 关于深色模式和美学也存在分歧:
    • 有人认为 IntelliJ 和 VSCode 部分是因为更早提供了好看的深色主题而“赢了”。
    • 也有人坚持,功能和性能远比主题重要。

Vim、Emacs、Neovim、Helix 和编辑器哲学

  • 许多人长期使用 Vim/Emacs,并重视:
    • 模态或以键盘为中心的编辑、宏、可组合命令。
    • 普遍可用性(尤其是在 SSH、服务器上,以及在拥有自定义工具的大公司里)。
    • 可扩展性,以及长期存在的开源社区的力量。
  • 另一些人,尤其是在职业中期,表示自己没有时间或精力去精通 Emacs/Vim;他们更喜欢开箱即用的 JetBrains/VSCode/Visual Studio。
  • LSP/DAP 被视为具有变革性的技术,把“IDE 级别”的补全、导航和重构带入通用编辑器(vim、emacs、Helix 等)。
  • 对于是否值得通过插件把 Vim 变成完整 IDE 也存在争论:配置和故障是否值得,还是直接使用带 Vim 键位绑定的专用 IDE 更好。

远程开发:TUI vs VSCode Remote

  • 一派认为 TUI 编辑器 + SSH + tmux 在远程工作方面无可匹敌,尤其是在低带宽或受限环境中。
  • 另一派强烈偏好 VSCode 的远程模式(前端本地、后端远程),理由包括:
    • 光标移动和选择在本地处理,避免往返延迟。
    • 异步保存/构建、更好地集成本地操作系统功能,以及更容易使用的 UX。
  • 讨论中还提到了 Emacs TRAMP、SSHFS/FUSE、mosh 和远程终端作为替代方案;有人觉得 TRAMP 在大规模场景下太慢或太脆弱。
  • 关于 X11 风格远程 GUI 与 VSCode 远程协议的比较展开了长篇讨论;几个人强调,VSCode 避免了经典远程 GUI 中每次按键都要往返通信的老问题。

调试与工具质量

  • 许多人觉得,与集成式 DOS/Windows IDE 相比,Unix/Linux 上的调试能力退步了:
    • gdb 很强大,但被认为笨重;有人怀念简单、集成的可视化调试器。
    • Visual Studio 和 Xcode 仍被视为拥有一流调试器和工具链。
  • 还提到了老牌商用 Unix 工具(dbx、DDD、Sun/Solaris IDE),它们在历史上很优秀,但如今大多被遗忘了。

RAD GUI 构建器及其衰落

  • 几个人遗憾地表示,如今没有什么能在快速构建带数据绑定、运行时实时设计数据和组件生态的原生桌面 GUI 方面,匹配 Delphi/VB6(及类似工具)。
  • Lazarus/FreePascal 被视为精神继承者,但:
    • 在视觉“花哨程度”和 UX 预期上落后于 Web 技术。
    • 文档和打磨程度被认为较弱;有人担心该项目正在停滞。
  • 也有人指出,跨平台复杂性、安全与部署方面的顾虑(以及向 Web/移动端的转移)促成了“VB/Delphi 风格” RAD 的衰落。

文化、FAANG 和“基于终端”的工作流

  • 几个人把 FAANG 风格、服务器密集型开发与以下特点联系起来:
    • 偏好终端工具(Vim/Emacs、CLI 构建系统)。
    • 内部自定义工具、构建系统和语言,在这些环境中可迁移的编辑器很有价值。
  • 常见建议是“选一个编辑器,然后深入使用”;也有人补充说“选一家允许你使用自己编辑器的公司”。
  • 另一些人认为 IDE 仍然没有得到充分使用,人们只坚持终端工具会“错过很多”。

文档、手册与学习

  • 人们怀念厚重的纸质手册和自包含文档,它们会解释概念,而不只是给出做法。
  • 许多人批评现代文档过于步骤导向(“先做 X,再做 Y”),而没有建立领域模型;这被视为助长了复制粘贴式编码。
  • 有人回忆自己曾被要求从内部文档里删掉“为什么”的解释,以免“让读者困惑”,并认为这让文档更糟了。

UI、可访问性与细小的 UX 细节

  • 几个人抱怨现代极简滚动条(很细、自动隐藏),尤其是在触屏设备上或从可访问性角度来看;他们更喜欢旧式那种可见、粗大的滚动条。
  • 总体感觉是,美学和“赶潮流”的设计有时在现代工具中压过了可用性和信息密度。

整体进步感

  • 结论是复杂的:
    • IDE 的功能(静态分析、重构、跨语言 LSP、某些平台上的调试)被认为比以往更强大。
    • 但许多人觉得,80/90 年代工具中的某些品质——速度、一体化、可调试性、RAD GUI 构建、简洁性和强文档——已经丢失,或者在如今碎片化、更沉重的生态中更难找到。