30 年,IDE 进化了多少?

b834d5edda33ced18f821c780458f053.gif

【CSDN 编者按】IDE 经过 30 年的发展,种类越来越繁多。放眼国际,主流的 IDE 有 Intellij IDEA、Eclipse、PyCharm、Visual Studio Code 等等;近几年国产 IDE 也相继崛起,如 deepin-IDE、CodeArts IDE 等。

面对不断涌现的 IDE,有软件开发者 Julio Merino 指出,30 年前我们所拥有的 IDE 虽然没有图形界面,但是却带来了许多令人印象非常深刻的功能,如今 随着时光的流逝,很多功能失去了,而且如今的 IDE 并没有太大的进步,唯一的区别可能只是添加了 AI 辅助代码功能。

此观点一出,也引发了巨大的讨论。接下来,我们将走入 Julio Merino 这篇文章,深入探讨我们过去拥有的文本编辑器以及与当今主流编辑器的最新比较,也旨在推动 IDE 更好的未来。

原文地址:https://blogsystem5.substack.com/p/the-ides-we-had-30-years-ago-and

本文为 CSDN 翻译,未经允许禁止转载。 

编译 | 苏宓

出品 | CSDN(ID:CSDNnews)

以下为译文:

我是在 20 世纪 80 年代末 90 年代初学习编程长大的。那时,我并没有完全理解我在做什么,以及为什么我使用的工具在当时硬件存在限制的条件下,表现得令人印象深刻。随着年龄的增长,现在通过使用 DOSBox 重新体验那些程序并将它们与我们当前的状态进行比较真的很有趣。

这一次,我想看看在 Windows 主导个人电脑行业之前那个时代我们所拥有的纯文本 IDE。我想这样做是因为那些 IDE 几乎毫不逊色于今天的 IDE。然而,感觉好像我们经历了一个黑暗时代,在那段时间内我们失去了大部分功能,而时代似乎是个轮回,这些功能现在才重新浮出水面。

接下来,我们将领略一次怀旧之旅,同时对“臃肿的 IDE”发表一点看法。但更重要的是,继续了解以前存在的东西,才能更好地评估未来功能的推出。

43705fa3a6ca216c6bf949efcd1992e9.png

第一款编辑器和 TUI 界面

在 20 世纪 90 年代,几乎每个运行的 DOS 程序都有一个全屏的文本用户界面(TUI),它具有基于文本的窗口、下拉阴影、颜色和鼠标支持。以下是一个示例:

30 年,IDE 进化了多少?_第1张图片

MS-DOS 编辑器(也称为 EDIT.COM)展示了其中一个设置对话框。请注意菜单栏、带有列表选择器和按钮的丰富对话框,以及记录了导航快捷方式的状态栏。

每个程序都是独立的,因为它们的界面是独特的。然而,它们在外观上如此相似(80x25 个字符没有太多的差异),以及它们的工作方式如此相似,以至于这些差异实际上并不妨碍可用性和可发现性。一旦你学会了 Alt 键打开菜单,Tab 键在输入字段和按钮之间切换,你几乎可以轻松地浏览任何程序。

但是我们来谈谈编辑器。MS-DOS 从第 5 版(1991年)开始附带了一个 TUI 文本编辑器,如上图所示。这个编辑器“能用”,但对于编码来说确实很不方便:你需要退出编辑器来编译和运行你的代码,当你重新运行编辑器时,你需要导航回到之前的位置。

在“我家”中,我们使用了一个叫做 SideKick Plus(1984年)的东西,它不是一个真正的代码编辑器:它更像是一个带有内置记事本的个人信息管理(PIM)系统。然而,它的酷炫之处在于它是一个常驻程序(TSR),这意味着它在后台加载,并且你可以随时通过按下 Ctrl+Alt 键来调出它。

30 年,IDE 进化了多少?_第2张图片

按下Ctrl+Alt键后,SideKick Plus的主屏幕出现。请注意DOS仍然在后台运行。

将这个 TSR 功能视为一种基本的多任务处理方式,适用于没有多任务处理的操作系统。这非常有效,因为在高效的内部开发循环中,快速切换代码编辑和构建是至关重要的。

然而,到这个时候,真正的 IDE 已经存在了几年。Turbo Pascal 1.0(1983年)展示了一种集成体验的开始,尽管它还没有其标志性的 TUI 界面。QuickBASIC 2.0(1986年)展示了更多“传统”的TUI界面(与EDIT.COM相同,因为它们是同一个编辑器),而 MS-DOS 5 附带了 QBasic,这是QuickBASIC 的简化版本,它不允许编译为本机代码,但外观相同。

431499d59aa57f845b33ae509a48422e.png

Borland 公司开发的 Turbo 系列

在我看来,IDE 的巅峰之作是后来的 Borland Turbo 系列,其中包括 Turbo C++(1990年)、Turbo Assembler 和 Turbo Pascal。这些 IDE 是特定于语言的,但它们拥有全屏的 TUI 界面,并且功能非常强大。

让我们来看看当时拥有的功能。语法高亮:

30 年,IDE 进化了多少?_第3张图片

Borland Turbo C++ 显示一个用于演示语法高亮的“Hello World”程序。

编译器集成和诊断:

30 年,IDE 进化了多少?_第4张图片

Borland Turbo C++编译一个程序后显示一个警告,因为我没有从main()函数返回值。

集成的项目和构建系统管理:

30 年,IDE 进化了多少?_第5张图片

Borland Turbo C++显示其项目管理和多窗口功能。在图片中,你可以看到两个C++源文件,其中一个依赖于另一个,并且项目窗口列出了所有需要一起编译的文件。

带有断点、堆栈跟踪等功能的调试器:

30 年,IDE 进化了多少?_第6张图片

Borland Turbo C++ 显示一个包含多个函数、断点和当前调用堆栈的调试会话。

甚至还有完整的参考手册:

30 年,IDE 进化了多少?_第7张图片

Borland Turbo C++显示其集成的帮助系统,背景中是“Hello World”程序,而帮助中是printf函数的说明。

请记住:这些都是在 20 世纪 90 年代早期,距今已经过去了 30 多年。

我是 Turbo C++ 的忠实用户,通过它我学到了很多东西。我记得使用它们的 conio.h 库来实现自己的 TUI,并使用它们内置的 graphics.h 库来尝试实现 GUI。请注意:这是在没有互联网的情况下完成的。对于很多人来说,没有“查找事物如何工作”的选项,也不能在 Stack Overflow 上找到答案:IDE 必须是即时可发现的(而且它确实是这样的),并且是自包含的,为你提供完整的开发体验。

9ea7db3eb6e17776585550fc3e276155.png

那时候的 Linux 怎么样?

那么回顾一下 20 世纪 90 年代初的 Linux 情景。

在 Linux 中,几乎每个程序都是基于文本的,但这些程序并没有提供全屏的 TUI(文本用户界面)。这不符合“Unix的方式”。我记得当时看到 X11 配置工具(XF86Setup)或 OpenBSD 安装程序时,对它们的简单性感到震惊:连我这个几乎没有什么“真实”编程经验的年轻少年都已经写出了好看的程序。

无论如何,这并没有阻止我追求不使用 Windows 的目标。我继续学习 Linux 的知识,并很快经历了每本书和在线社区都在推荐的“最佳”编辑器:Vim 和 Emacs。但我无法理解它们为什么受到如此高的欢迎。使用它们就像回到了过去。它们确实是全屏程序,但看起来相当晦涩。Vim 确实支持语法高亮,但远远称不上是一个 IDE。Emacs 可以配置与一些代码辅助功能等集成,但也远远称不上是类似“开箱即用”的 Turbo 系列 IDE。

看看今天的默认 Emacs 配置,它自那时以来几乎没有改变。它确实有窗口,但它们没有装饰。它没有颜色(现在依然几乎没有);过去不支持鼠标。虽然它确实有一个菜单栏,但这只是一个噱头?如果按照说明按下 M-` 键,你会面对一个真正奇怪的界面来导航菜单,这让人怀疑为什么他们甚至要浪费一整行屏幕空间来显示一个毫无作用的菜单栏。

30 年,IDE 进化了多少?_第8张图片

现在试着把这些交给一个没有编程经验的人,让他们来创建、编译和调试一个程序。他们在浏览编辑器时会遇到麻烦,也找不到任何能够进行项目管理或编译器集成的功能。

相比之下,在撰写这篇文章时,我在 DOSBox 中启动了 Turbo C++,只需要几分钟就能够创建一个“Hello World”的项目并且在环境中进行导航,而且一切都是直观的。作为一个 IDE,它提供了全面的集成。

5c875bc0d4d5800ddb04f5352e7ebb4f.png

当代 TUI IDE

无论如何。让我们忘掉过去,看看 TUI 领域的今天。我不想看 GUI,因为......Visual Basic 曾是图形编程的巅峰之作,而我们现在也没有了,这也是后话了。

与 Borland Turbo C++ 环境最接近的现代版本是 RHIDE(https://directory.fsf.org/wiki/RHIDE)。如下图所示,它看起来非常相似——如果你以为这是 Turbo C++,那就大错特错了。遗憾的是,它只能在 DOS 环境下运行,而且现在似乎已基本废弃,其最新版本发布于 7 年前。

30 年,IDE 进化了多少?_第9张图片

RHIDE IDE 显示的 "hello world "程序与之前的一样,编译后既无错误也无警告。

然后就有了 Free Pascal。这是最接近旧版本的体验,但采用了现代代码库,可在 Unix 系统上本地运行,并可利用任何大小的终端。

30 年,IDE 进化了多少?_第10张图片

Free Pascal IDE 包含一个简单的“hello world”程序,以及用于内置 ASCII 表格和计算器的重叠窗口

最后是 QB64。它与 Microsoft QuickBasic 非常相似,但......别被它骗了:尽管它看起来像一个 TUI,但它实际上是一个模拟 TUI 的 GUI 应用程序。你不能在终端运行 QB64。

30 年,IDE 进化了多少?_第11张图片

QB64 IDE 看起来像文本,但实际上是图形程序。

Free Pascal 和 QB64 都在维护和相对活跃的开发中,它们的最新版本发布于 2021 年......但它们大多被忽视了,因为它们使用的是现在大多数人都不感兴趣的晦涩语言。

8ef61682560a66ac03873e907d91164a.png

“真正的”现代控制台 IDE

那么对于现代编程语言而言,我们还剩下什么选择呢?

目前最先进的选择似乎是 Neovim(https://neovim.io/)、Doom Emacs(https://github.com/doomemacs/doomemacs),甚至是 Helix(https://helix-editor.com/)。这些编辑器非常强大,并且通过各种插件提供了类似于 IDE 的体验。

不过,如果你问我,我觉得这些编辑器都没有像之前的 Borland 产品那样提供相同的体验:它们的界面很复杂,并且由于支持多种语言,对于几乎所有语言都能工作得不错,但是对于特定语言来说并不出色。可以说是“万能但不精”。

无论如何,根据我在 microsoft/terminal#16440(https://github.com/microsoft/terminal/discussions/16440)讨论中观察到的情况来看,首选的“简单”TUI(文本用户界面)编辑器似乎是 GNU Nano......但其实首先它不是 IDE;其次对我来说,它看起来像 WordStar。Nano 的外观让我想起了我在 CP/M 时代使用文字处理器的第一次经历。看看这个:

30 年,IDE 进化了多少?_第12张图片

GNU Nano 编辑器的默认设置,打开一个空文件。

所以,尽管现在我们有很多功能强大的控制台编辑器,但它们并没有提供与 30 年前完全相同的可用体验。事实上,感觉在这 30 年间,我们在很多方面出现了倒退,直到现在才达到了一些曾经拥有的功能水平。

当图形化操作系统开始流行起来时,TUI(文本用户界面)自然而然地变得不那么受欢迎,而它们最近才重新流行起来确实有些有趣。至于为什么会有这种趋势,我认为我们应该归功于 LSP(Language Server Protocol)的发明对这个领域的最新进展。

多年来,TUI 编辑器一直“搁置”不前,因为为它们构建 IDE 功能需要很大的努力,而且它们的小型维护人员团队无法承担实现这些功能的成本。LSP 为现有的语言特定集成提供了接入方式,并重新激发了对古老而可靠的 Vim 和 Emacs 的兴趣。希望即将发布的 BSP(Build Server Protocol)能够更进一步,使这些 TUI 编辑器更像 IDE。

a138a7de7ad47ccc2c068d88bf7a8b64.png

为什么要使用 TUI IDE(基于文本用户界面)?

有人会问:“谁在乎呢?现在每台台式机和笔记本电脑都运行图形操作系统了!”

这个问题问得好。

一般来说,你可能不需要 TUI IDE。如果 VSCode 是你的首选,那么它的远程处理能力是一流的,而且 VSCode 拥有一个相当不错的图形界面,而不是一个完整的集成开发环境。但是,VSCode 也有一些不足之处。

首先,TUI IDE 非常适合在远程计算机上工作,甚至比 VSCode 更好。你可以通过 SSH 轻松进入任何机器并启动 IDE。将其与 tmux(终端复用器类自由软件,功能类似 GNU Screen)相结合,就能获得“完整”的多任务处理。当然,你也可以使用远程桌面客户端来代替 SSH,但我总觉得远程桌面客户端很笨拙,因为会出现延迟,而且与本地桌面快捷方式的整合也不恰当。

其次,VSCode 的远程扩展不是开源的,这并不是什么大问题......只是它们无法在 FreeBSD 等操作系统上运行,而且也无法修复。因此,我无法使用 VSCode 远程登录我的主开发服务器。

第三个问题是......减少资源消耗。

c30b62c351febedb151e7e55165f0fc2.png

无处不臃肿的 IDE

最后,我还想吐槽一下“IDE 的臃肿”问题。Borland 公司在 1990 年发布的 Turbo C++ 编译器,配备了所有应有的功能(UI、C++ 工具链、集成手册...),安装后大小不到 9 MB,在 640KB 的 RAM 内运行。

相比之下,Helix 文本编辑器在磁盘占用的空间也只有 16 MB,但 Doom Emacs 占用大约 500 MB,并消耗 RAM 的许多空间。然而,请注意,过往这些工具都不包含语言工具链或帮助系统,而现代工具链在磁盘空间都是以 GB 为单位。

要获得“真正的”IDE,我们必须转向使用 IntelliJ、VSCode 这类的图形程序。不过,VSCode 占用磁盘空间约为 350 MB(令人惊讶地比 Doom Emacs 少),但它可能会吃掉你的电脑(占用内存):毕竟它是基于 Electron 开发的。我注意到通过放弃 VSCode 并转向 Doom Emacs,可以显著节省笔记本电脑的电池寿命。

因此,我想要留下的问题是:在 30 年内,IDE 进步了多少?现代 IDE 拥有一些更好的重构工具、更好的功能并支持更多的语言,但从根本上来说...它们并没有太大变化。

对比 30 年前和 30 年后的 IDE,唯一主要区别可能是 AI 辅助编码,但这是一项主要由远程服务提供的功能,甚至不是由安装的代码提供的!

推荐阅读:

▶操作系统的“AI向”进化是一条必经之路

▶阿里被判赔偿京东 10 亿;2023 赚了 7700 亿,马斯克再次成世界首富;Vue 3.4 发布|极客头条

▶ChatGPT 设计了一款芯片

30 年,IDE 进化了多少?_第13张图片

你可能感兴趣的:(ide)