仍可在 Windows 11 上运行的最老 GUI 应用

Windows 能在 Windows 11 上运行数十年前的 GUI 应用,这让人们赞叹 Win32 API 的稳定性以及 Microsoft 长期以来对向后兼容的承诺——这通常与 Linux 和 macOS 更短的支持周期形成对比。评论者分享了仍可运行的老软件例子(从 FreeCell 和 CD 播放器应用到不知名的 Win32 工具),并将其与在现代类 Unix 系统上运行旧二进制文件的困难进行比较。讨论随后延伸到对现代 UX 趋势的更广泛批评——扁平化、“移动优先”的界面、隐藏控制、不一致的跨平台工具包——以及对 Windows 95–7 时代更清晰、更易发现的桌面 UI 范式的怀旧。

Windows 向后兼容性

  • 很多评论赞扬 Windows 能在 Windows 11 上运行数十年前的 Win32 应用且无需修改,并将此与 Linux/macOS 上频繁的破坏性变更作对比。
  • Win32 被描述为一种异常稳定的 ABI;人们提到 1990 年代的工具、经典游戏,甚至 3.1 时代的组件,如 ODBC 对话框,至今仍能工作。
  • 16 位支持(NTVDM)已在 64 位 Windows 上移除,但第三方模拟(例如 winvdm)以及关于可能存在内核支持的发现表明,这更多是政策/投入取舍,而非硬性不可能。
  • 兼容性被视为一种协作:操作系统承担了很多工作,但编写糟糕的旧应用仍可能需要打补丁,才能在现代系统上正常运行。

旧软件、游戏与怀旧

  • 提到的例子包括:经典 FreeCell 和 Solitaire、EasyToon、Orly’s Draw a Story、Solitaire’s Journey、老式 CD 播放器、遗留医疗/ERP 系统。
  • 人们分享情感故事(例如在不同机器之间保留亲人的 FreeCell 分数)以及对充斥广告或过度“花哨”的现代替代品的挫败感。
  • 一些实验表明,更旧的组件(例如 CDPLAYER.EXE)可以部分工作,但会与现代操作系统行为冲突,例如自动媒体处理。

Linux/BSD 与其他操作系统的兼容性

  • 有人认为,在现代 Linux 上运行很老、未经修改的 Unix/X11 二进制文件很困难,因为用户态 ABI 演变和库变化带来了兼容性漂移。
  • 也有人反驳说,NetBSD 和某些 BSD 对特定 1980/1990 年代平台(SunOS、ULTRIX 等)保持了很强的二进制兼容性,不过通常是在非 x86 硬件上。
  • 容器、静态链接和 “manylinux” 被当作缓解 Linux ABI 碎片化的变通方案;内核本身则因不破坏用户态而受到称赞。

UI/UX 怀旧与设计争论

  • 对 Windows 95–7(以及有时是 NeXTStep)时代界面的强烈怀旧:清晰的可供性、始终可见的菜单、一致的键盘导航、低资源占用。
  • 对“扁平化”和“移动优先”设计的批评:功能被隐藏、控件过大、滚动条消失、标题栏里放标签页、菜单栏消失,以及跨应用行为不一致。
  • 拟物化与扁平化设计各有支持者:一些人认为拟物化按钮和纹理更易用;另一些人指出极端情况(例如旧版 QuickTime UI)会变得花哨或只能鼠标操作。
  • 功能区与菜单之争:有人认为 Ribbon 提高了可发现性并暴露了上下文敏感工具;另一些人则更喜欢经典、可自定义的工具栏/菜单,尤其是在专家工作流中。

原生工具与跨平台工具

  • 讨论主题包括:用原生 Win32 还是更高层或跨平台框架编写新的 Windows 应用(WinForms、WPF、WinUI、Avalonia、Qt、wxWidgets、JavaFX、Electron)。
  • 支持 Win32 的一方认为其生成的二进制体积小、速度快、响应极快;批评者则指出其缺少现代功能(深色模式、HiDPI、现代文本、GPU 渲染)且维护成本高。
  • 有些人更看重“到处都能用”而不是原生外观;另一些人则认为跨平台 UI 天然不如本地方案,应该遵循各平台的约定(快捷键、无障碍、文本导航)。