编译 | 苏宓
现在 Windows 11 的「AI 改造工程」正在如火如荼地进行中,其中微软联合 OpenAI 将许多先进的 AI 功能引入 Windows 系统中譬如照片、截图工具、画图等多个旧应用程序上,以及带来最新的 Copilot 功能。
但是,在它进行现代化升级之际,也有网友惊讶地发现,Windows 11 在 UI 维度的更新速度有些拖拉,甚至还在沿用 30 年前的老设计。
披露这一点是来自微软的前程序员 Dave Plummer,他在 X 社交平台上分享了自己曾在 1994 年开发的“临时性”磁盘格式化 UI 当前依然存活在现代化的 Windows 11 中。与此同时,Windows 只能支持 32 GB 的 FAT32 分区也是他曾经“武断性”的手笔。
作为过来人,这也让他警醒诸多开发者,千万不要小看任何一次的开发,即使是一些“临时”的解决方案。
01
从未更新过的 Windows 格式化磁盘 UI
回忆过往,那是在 1994 年一个下雨的星期四早晨,Dave Plummer 编写了格式化对话框。
当时他所属的团队正忙于将用户界面(UI)从以消费者为中心的 Windows 95(1995 年中期发布)移植到更稳定但资源更密集的 Windows NT(1996 年中期发布的 NT 4.0 首次使用了 95 风格的用户界面)。
Plummer 在 X 上写道:“格式化磁盘是 Windows NT 与 Windows 95 不同之处之一,因此我们必须设计一些自定义 UI。”
Plummer 没有具体说明这些不同之处,但现在来看,当时的 Windows 95 主要使用 FAT16 文件系统来处理所有文件,它被用于处理硬盘、软盘等存储介质上的文件和文件夹。
后来即使是早期版本的 Windows NT 也开始支持多种文件系统,包括 FAT、NTFS 等。
当时,“我拿出一张纸,写下了格式化磁盘的所有选项和选择,如文件系统、标签、簇大小、压缩、加密等等”,Plummer 说道,“然后,我基于 Visual C++ 2.0,并使用资源编辑器将你(用户)必须做出的所有选择按大致顺序排列成一个简单的垂直堆栈。这样做并不优雅,但在优雅的 UI(用户界面)出现之前,这样做还是可以的。”
这在当时是创建格式化磁盘 UI 的临时解决方案。但当时 Dave Plummer 难以想象的是,30 年后的 Windows 11 还在用它。
“所以在引入’临时‘解决方案时要小心”,Dave Plummer 表示。
02
“Windows 只支持 32GB 的 FAT32 分区”也是一个武断性的方案
除了格式化对话框之外,Plummer 还透露称,FAT32 格式化 32G 限制也是他在那天早上做的一个武断的决定。
FAT 是用来组织计算机硬盘上的文件和文件夹的方法之一。FAT32 在文件系统中表示文件分配表的 32 位版本。相比于较早的 FAT16(16位版本)和更早的FAT12(12位版本,FAT32 最显著的优势是它支持更大容量的硬盘和文件分区,因为它使用了 32 位的文件分配表项,允许更多的文件和更大的分区。此外,FAT32 还允许更长的文件名和更好的簇大小管理,提供了更好的性能和存储效率。
不过随着技术的进步,FAT32 安全性差,最大只能支持 32GB 分区,单个文件也只能支持最大 4GB,这使得它在大容量存储和现代操作系统中的使用受到限制。
几年前,Dave Plummer 也特别发了一个 YouTube 回忆了这一功能,并表示当时自己想的是如何为 Windows 用户带来良好的潜在支持,也必须要决定 “集群松弛”的程度。
最终发现,庞大的群集数量会带来同样庞大的容量,但也会造成巨大的空间占用。譬如:选择 32KB 的群集大小,即使是最小的“Hello,World!”程序所需的几个字节,也会占用 32KB 甚至更多的磁盘空间 。
于是,他武断地直接将 FAT 的格式化大小限制在 32GB。
“这个限制也是那天早上的一个任意选择,但它作为一个永久性的副作用一直伴随着我们”。在现代 Windows 版本中,我们仍在使用这一限制——通过命令行或其他工具格式化的 FAT32 硬盘最大容量在 2TB 到 16TB 之间,具体取决于扇区大小。
“这是我犯下的,一个不能被原谅的致命错误...... 归根结底,这是一个简单的缺乏远见的问题,再加上临时解决办法变成永久性解决方案的老问题”,Dave Plummer 曾在播客中说道。
Plummer 还参与了 90 年代和 2000 年代初 MS-DOS 和 Windows 应用程序的许多零碎工作,包括任务管理器、Space Cadet 弹球游戏和随 Windows XP 一起提供的第一版产品激活系统。后来,Plummer 于 2003 年离开微软。
03
微软为什么不更新此 UI?
也有人好奇,为什么微软更新了 Windows 11 的诸多功能与 UI,为什么会忽略这么一个老旧的界面?其实想想,也不难理解。
其一,在没有出错的情况下,此 UI 的迭代优先级可以一降再降。作为全球第一大桌面端操作系统,Windows 系统的生态及其复杂性有目共睹。日常维护和更新 Windows 更是一项艰巨的任务,需要多个团队和多年的工作。此前,微软特别开设了一个独立的 Windows 部门来负责 Windows 的功能开发与维护,直至近年来,才将其瓦解并入“云计算与人工智能平台”部门,所以对于有些没有出问题的功能以及 UI,一直沿用以前的设计也不足为奇。
其二,外媒 Ars Technica 认为,Windows NT 版本的“格式”对话框得以保留至今,也是因为微软在 90 年代末和 21 世纪初发布的 Windows 2000 和 Windows XP 中开始使用 NT 代码库。尽管微软在不同版本的 Windows 中进行了许多更新和改进,但 Windows NT 作为内核的基础设计依然保持了稳定。因此,即使是 Windows 11,内核和其他关键系统文件仍然会携带“Windows NT”的标签。
04
“代码里的临时方案,最终都成了永久方案”
Plummer 的一个追忆引发不少网友的讨论,也让许多有过“把临时方法作为永久性方案”的程序员感同身受。
来自 HN 上的 jaydeegee 表示,“大约 14 年前,在我从事新工作的第一周,我拼凑了一些代码来完成了查询我们的票务系统 (BMC Remedy),作为一种准队列监视器。直至今日,它有一些外观迭代,但仍然运行相同的后端代码。”
也有不少用户认可道:
“我想说,没有临时和永久的解决方案,但有好的和坏的解决方案。一个好的解决方案,即使实施得很快,也会坚持下去,因为它(足够)很好。一个糟糕的解决方案也可能会持续存在,如果它是一段时间内唯一可用/可行的解决方案,那么其他所有解决方案都必须向后兼容。”
“抛开任意不必要的限制不谈,我对保留旧代码很满意。它经过了时间的考验,过往由于较旧的硬件限制,现在依然可以非常高效地运行,并且符合逻辑 。与今天的软件不同,今天的软件通常都是臃肿的造轮子,几乎完全出于以下两个原因:一是为了营销“改变”,二是为了跟踪你所做的一切,以便他们可以从中获利。”
作为程序员,也有不少人和 Plummer 一样,呼吁应该谨防“足够好”的临时解决方案,“我们正在使用一个由实习生编写的核心日志记录组件,其中包含 POC(概念验证)一词。它的数据格式是实习生创建的,但当任何人真正注意到它编写了如此多的数据时,修复它的预算和工作量都超过了它的问题。”
發表評論 取消回复