Hacker News 中文摘要

RSS订阅

Turbo Vision 2.0——现代化移植版 -- Turbo Vision 2.0 – a modern port

文章摘要

该项目是对经典文本界面框架Turbo Vision 2.0的现代化移植,实现了跨平台支持和Unicode功能。开发者最初目标是保持对原版代码的最小改动,同时兼容Linux和DOS/Windows系统,并确保与旧应用程序的源代码兼容性。在2020年中期,开发者进一步实现了完整的Unicode支持,最终决定将其开源。

文章总结

以下是文章主要内容的重新陈述,保留了核心细节并删减了无关内容:


Turbo Vision 2.0 现代移植版

项目概述
Turbo Vision 是经典的基于文本用户界面(TUI)框架,最初由 Borland 在 20 世纪 90 年代开发。此项目是对 Turbo Vision 2.0 的现代化移植,支持跨平台(包括 Linux 和 Windows)和 Unicode,并保留了原始框架的核心功能。

项目目标
1. 跨平台支持
- 使 Turbo Vision 在 Linux 上运行,同时最小化对原始代码的修改。
- 保留在 DOS/Windows 上的兼容性。
- 确保与旧版 Turbo Vision 应用程序的源代码兼容。

  1. 现代化改进
    • 支持 Unicode(UTF-8 编码)。
    • 支持 24 位真彩色和扩展终端功能(如鼠标滚轮、剪贴板交互)。
    • 改进用户体验(如窗口拖动、菜单操作、滚动条行为等)。

功能亮点
1. Unicode 支持
- 支持 UTF-8 输入和显示,包括双宽度字符和组合字符。
- 提供新的 API 函数(如 TStringViewTSpan)以简化文本处理。

  1. 终端兼容性

    • 自动适配不同终端的颜色和功能(如 256 色、24 位 RGB 色)。
    • 支持 X11、Wayland 和 Windows 控制台的剪贴板交互。
  2. API 扩展

    • 新增 TClipboard 类,支持系统剪贴板操作。
    • 新增定时器功能(setTimer/killTimer)和线程安全的事件唤醒机制(wakeUp)。
    • 支持扩展颜色属性(如粗体、斜体、下划线)。

构建与使用
1. 构建环境
- Linux:依赖 CMake、GCC/Clang、libncurseswlibgpm(可选鼠标支持)。
- Windows:支持 MSVC 和 MinGW,需配置 C++14 标准。
- Borland C++:保留对 DOS/Windows 的原始支持,但不支持 Unicode。

  1. 快速开始

应用案例
- Turbo:基于 Turbo Vision 的文本编辑器。
- tvterm:终端模拟器原型。
- TMBASIC:用于开发控制台应用的编程语言。

贡献与反馈
欢迎提交问题或拉取请求,尤其是对现有 Turbo Vision 应用程序的兼容性改进建议。


关键细节保留说明

  1. 核心功能:突出跨平台、Unicode 和颜色支持等现代化改进。
  2. 技术实现:简要说明构建环境和 API 扩展,避免深入编译细节。
  3. 示例与文档:保留快速入门和资源链接,方便用户实践。
  4. 删减内容:省略了冗长的构建配置步骤、历史背景和次要功能描述(如 Borland C++ 的具体构建问题)。

此陈述旨在为中文读者提供清晰的项目概览,同时保留技术深度和实用性。

评论总结

以下是评论内容的总结:

  1. 对Turbo Vision的怀旧与赞美

    • 多位用户回忆Turbo Vision带来的编程启蒙和美好体验,称赞其编译器和文档的优秀。
    • 引用:
      • "Compiler performance was superb and the manuals were a work of art" (jgord)
      • "I picked it up and immediately fell in love with the bluish TUIs" (warpech)
  2. Turbo Vision的现代适用性

    • 用户指出Turbo Vision至今仍可使用,甚至能编译90年代的代码,但缺乏现代文档和自动布局功能。
    • 引用:
      • "you can even compile/run code from 1993 without major issues" (lepicz)
      • "manual 'layouting' is kinda annoying, some auto layout like qt would be handy" (lepicz)
  3. 对Pascal版本的怀念

    • 部分用户更怀念原始的Pascal版本,认为C++版本像是“移植的移植”。
    • 引用:
      • "the C++ one is more like a port of the Pascal one" (rezaprima)
      • "Borland did the same with other frameworks... many of C++ Builder tools are actually written in Delphi" (pjmlp)
  4. 现代工具与开发流程的批评

    • 用户批评现代开发工具的复杂性,怀念Turbo系列一键编译的简洁性。
    • 引用:
      • "Turbo C or Pascal, hit F9 and you're up and running" (childintime)
      • "they are not tools, but rituals we insist on" (childintime)
  5. Turbo Vision的衍生项目与未来

    • 用户提到多个Turbo Vision的现代移植版本(如C++、Rust),并讨论其法律风险。
    • 引用:
      • "There's also this one in C++... There's even one in Rust" (Narishma)
      • "I wonder if Embarcadero... can find a reason to complain" (nottorp)
  6. 技术细节与改进尝试

    • 用户分享在macOS上封装Turbo Vision的经验,并对比其他TUI库的不足。
    • 引用:
      • "I've been writing a wrapper for this repo... under .Net on macOS" (vintagedave)
      • "libraries like Terminal.GUI... really difficult to get behaving without bugs" (vintagedave)
  7. 其他相关推荐

    • 用户推荐与Turbo Vision相关的资源,如播客和讨论。
    • 引用:
      • "See also Final Cut" (michaelsbradley)
      • "I recommend the recent Wookash podcast with Chuck Jazdzewski" (NSUserDefaults)

总结:评论普遍表达了对Turbo Vision的怀旧之情,认可其历史价值,同时讨论了其现代适用性、技术局限性和衍生项目。部分用户对现代开发工具的复杂性提出批评,并分享改进尝试。