一个个人开源项目,把 90 年代 Borland 的 Turbo Vision 2.0 从 DOS 时代拉回了今天。项目名叫 tvision,由开发者 magiblot 维护,2018 年底启动,2020 年接近原版功能对等后开源,并在同年加入完整 Unicode 支持。

这不是 Borland 官方复活,也不是一个要替代主流 GUI/CLI 框架的新王。它更像一次旧架构续命:尽量少改遗留代码,让老 Turbo Vision 应用还能在 Linux、Windows、DOS 之间找到一条路。

它补的不是复古滤镜,是现代终端地基

Turbo Vision 原本就是文本界面框架。它提供重叠窗口、菜单、对话框、按钮、滚动条、输入框等组件。90 年代很多人记住的是蓝底灰框,但框架真正有用的部分,是事件、控件和窗口模型。

现代移植版补的是更脏、更难炫耀的活:C++14、CMake、ncursesw、MSVC、MinGW、Borland C++,以及 UTF-8、剪贴板、扩展颜色。它还尽量保持旧 Turbo Vision 应用源码兼容,并实现了部分 Borland C++ RTL 兼容函数。

维度tvision 的做法对开发者的意义限制
工具链C++14、CMake能进入现代 C/C++ 构建流程旧 API 风格仍在
平台Linux、Windows、DOS老文本应用迁移成本下降不等于各平台体验完全一致
终端能力ncursesw、UTF-8、剪贴板、扩展颜色少写平台分支和终端 workaroundDOS/Borland 构建无 Unicode
兼容策略尽量保持旧源码兼容老项目可少改代码Borland RTL 兼容会带来历史包袱
发布状态GitHub 开源项目可读、可改、可试暂无稳定 release

对维护老 Borland/Turbo Vision 代码的人,这条路很现实。重写 GUI 成本高,继续绑死旧 DOS/Windows 环境也不划算。tvision 给的是中间方案:先把旧车开上现代路网。

这个类比像老铁路换轨距。不完全一样,但意思接近:目标不是怀旧,而是让旧车还能进新的运输系统。真正贵的不是刷漆,是轨距、信号、站台和调度都要接得上。

终端 UI 的难点从来不是“画得像不像”

今天写 TUI,不缺选择。Python 有 Textual,Rust 有 ratatui,C/C++ 里有 ncurses、FTXUI 等方案。它们解决的问题不一样。

方案更适合什么不太适合什么
ncurses底层控制、传统 Unix 终端程序直接获得现代组件体验
FTXUI新写 C++ TUI、现代组件表达迁移 Turbo Vision 旧代码
Textual / ratatui新项目、现代生态、开发体验继承 Borland/Turbo Vision 遗产
tvision老 Turbo Vision 代码迁移、C/C++ 跨平台文本界面追求稳定 release、现代声明式 UI、强生态的团队

tvision 的位置很窄,但窄不等于没价值。它处理的是旧世界留下来的债:事件分发、字符宽度、颜色属性、剪贴板、Windows 和 Linux 终端差异。

很多 TUI 项目死得不体面,不是因为界面丑。是因为中文错位、输入异常、复制粘贴失灵、颜色在不同终端里乱跳。工具一旦在这些地方掉链子,用户不会研究你的架构,只会关掉窗口。

“天下大事,必作于细。”放到终端 UI 上并不虚。tvision 的价值就在这里:把一堆历史债务压到开发者尽量看不见。

这也解释了它为什么不是大众方案。新项目如果不背 Turbo Vision 遗产,未必该主动跳进旧 API。写全新工具的团队,更可能选 FTXUI、Textual、ratatui,或者直接用 ncurses 做底层控制。

真正受影响的人,以及接下来该盯什么

最相关的是两类人。

一类是维护 Borland/Turbo Vision 老代码的人。他们可以先做小规模迁移验证:挑一个模块,测试构建、字符显示、输入、菜单、对话框和剪贴板。不要一上来押全仓。暂无稳定 release,意味着团队要自己承担变动风险。

另一类是写 C/C++ 跨平台 TUI 工具、又能接受旧 API 风格的开发者。他们可以把 tvision 当成可选工具箱,而不是默认框架。如果项目需要现代声明式 UI、稳定发布节奏、活跃生态配套,那就先观望。

接下来最该盯的不是截图,也不是它多像 1992 年。要盯三个变量:稳定 release 何时出现,Unicode 在不同构建路线里的边界是否更清楚,旧 API 兼容和现代化改造之间会怎么取舍。

Borland RTL 兼容能救旧代码,也会把旧式设计带回今天。救遗产从来不是免费午餐。天下熙熙,皆为利来;开源项目也一样,收益是迁移成本下降,代价是维护者和采用者一起背兼容债。

我的判断很直接:tvision 证明终端 UI 仍有现实需求,但它不会让 Turbo Vision 重回主流。它是一把专用扳手。卡在旧代码、现代系统和跨平台终端之间的人,会知道这把扳手有多硬;其他人,不必跟着怀旧。