记Windows的一个存在了十多年的bug

时间:2022-10-06 07:15:22

bug

Windows有一个bug,持续了十多年,从Windows Visita开始(2007年),一直存在,直到Windows11(2021年)才修复(其实也不叫修复,后面我再具体说),而Windows10还能重现这个bug,即便把系统更新到最新(2022年10月5日)。

这个bug用语言来描述就是:使用Windows Explorer(资源管理器)的树形结构初次展开目录时,滚动条会发生不正确的滚动,使得展开的节点贴近了窗口底部的位置,而不是处于我们期待的顶部位置。

有些难懂?我录了一个视频来说明这个bug:视频压缩包(博客园不能上次视频,所以做了个zip),本人基本没学过视频制作,弄得比较粗糙,请见谅。

Windows Vista

Windows Vista出来的时候,我就尝鲜安装了一个,基本上是马上就发现了这个问题,因为Windows XP及之前的所有的Windows操作系统都没这个问题。

为什么我能马上看出来?还不是因为我对资源管理器的使用习惯,我非常喜欢用目录树展开找到我想要的东西,这种习惯来源于我最早接触的Windows操作系统——Windows 95,要说现代Windows的操作模式是从哪来的,那一定是Windows 95,直到现在,Windows 95仍然是我心目中最具“跨越式”发展的操作系统,就是说它步子足够大,颠覆了过往的操作系统,让人耳目一新,开始菜单,底部任务栏,任务管理器,真正的多任务,这些如今我们无比熟悉的东西皆源于Windows 95,比尔盖茨也凭着这个操作系统的发布而登顶了世界首富。这是一些题外话。

我发现这个bug之后,就一直想办法要修复它,到处寻找解决方案,发现了这个问题的人当然不只是我,在MSDN上就有一个回复达到上千的bug反馈,是描述这个问题的,这个帖子的链接如今已经不可访问了,我记得非常清楚,大部分人表示这是个不可理喻的bug,不知道为啥会存在,非常低级,应该很快就能修复。而可气的是微软官方的答复居然说:这是个feature,并把这个问题close了,但大家的跟进仍然很激烈:

  • “因为这个问题我已经失去了对微软的尊重了。”
  • “我对微软早就没有尊重了,我已经打算更换Mac了。“
  • “每次遇到这个问题,我真想把电脑扔下楼,然后去买台Mac。”
  • “微软要是能把以前开发XP的老掉牙的从病床上拉起来并帮他们带好尿袋,我相信这问题会在3分钟内修复。”

帖子中好些微软的MVP在了解情况后非常明确地指出这是个bug! 它不可能是一个feature,因为它行为不一致,而feature即便是再差再糟糕的feature也必须满足行为的一致性,否则只能论作bug,它确实就是个不折不扣的bug。

这个问题对我困扰甚多,所以Vista我基本没怎么用,因为一个bug而放弃一个操作系统,听起来挺荒谬,但事实就是这样,对我而言,这基本上就是个硬伤,我不愿意改变我的习惯,而这个bug真是令我抓狂。

Windows 7

Windows Vista是微软的一个失败的操作系统,最主要的原因是其兼容性的问题,这些问题到了Windows7之后得到了很大程度上的改善,所以很多人都用过Windows7,而没有使用Windows Vista,他们都知道Windows Vista不好,但不好在哪里,他们都说不出来。而对我来说比兼容性更重要的是,这个该死的bug到底有没有修复?Windows7安装上去了之后,我满怀期待地打开了资源管理器按我习惯的操作点击了几下……我靠! 一点都没变! 我先是气愤,后转为失落。

不管怎么说,Windows7都会成为以后几年的主流操作系统了,我得习惯——唉! 我后来确实找到了一个程序,一定程度上能解决这个问题,这个软件的名字叫“Classic Shell”,它的网站目前还能访问:http://www.classicshell.net/,里面包含了一个小小的功能:fix folder scrolling,它的其它功能我如今全忘了,因为当时我只看中了它这个功能。看吧,放弃一件东西往往只因为其中的某个特点,反之,选择一件东西也是这样。Classic Shell这个软件并不能解决所有的问题,它仅仅作用于资源管理器程序中,而Windows的这个bug不只是在资源管理器中有,它在“打开文件”,“选择目录”等系统公共对话框中也存在,但能解决一部分是一部分吧。而作为Windows程序员的我还曾一度想自己修复这个问题,但研究下来无果。

Windows 8

又过了若干年,Windows 8发行了,这貌似是一个很大的改版,我又满怀期待地安装上去了,结果真是无语,这个bug一点不差地继承了下来。Windows 8的活动磁贴让人很有新鲜感,但随即新鲜感过后觉得其实也没啥营养,活动磁贴适合于平板,但桌面版的Windows强行弄这东西真的合适么?不过最奇葩的还是Windows 8的关机按钮,即便是我这样的老鸟,也费了老大劲才找到。Windows 8是个失败的操作系统,可能是因为步子有点大,和Windows 95的步子大不同,它不合理的地方太多。

Windows 8.1

微软很快意识到了Windows8的问题,所以不久后推出了Windows 8.1,Windows 8.1的UI上更加符合用户传统的操作习惯,但也真的只是小改进罢了。bug呢?——当然完美保留了下来。

而从Windows内部版本上来看,Windows Vista,Windows 7, Windows8,Windows 8.1是相差不大的东西,想知道Windows版本可以在命令行界面中敲“ver”查看,你会了解到:

* 6.0 - Windows Vista
* 6.1 - Windows 7
* 6.2 - Windows 8
* 6.3 - Windows 8.1

不过,从Windows 10开始就不是这样的版本显示了。

Windows 10

Windows10大概从2016年开始渐渐普及,一样的,我安装后的第一件事情就是看看这个bug修正了没有,嗯……还好我没太大的期待,果然还在! 这也说明了一个问题,这个资源管理器的代码应该是直接从之前版本的操作系统中拿过来用的,应该没改过什么。Windows10是一个比较成功的操作系统,发行后,微软多次对它进行了大幅度的迭代,如今的Windows 10跟初代的Windows 10已经差别很大,但对我而言,不修正这个bug都算不上成功。

Windows 11

这个bug最终的解决是在Windows 11上,它,终于消失了,但Windows 11和Windows 10在UI上的差别很大,对我而言这绝对是步子迈得太大扯到蛋的变化,Windows 95的革命性UI变化给人是惊艳的感受,因为进步实在太大,而Windows 11的这些“改进”都只停留在表面上,把开始菜单弄成居中,强行合并任务栏图标,这些除了强制用户改变自己习惯之外,我看没带来什么好处啊,操作更便利了?功能更强大了?更加符合人类直觉了?恐怕都没有吧,就是为了标新立异而已,我不反对一些新的尝试,但至少要给用户一个选项,如果新的方式不好用,能够退回旧的方式啊。但不管怎么说,在Windows 11的资源管理器中,它确实消失了,也许不是修复了,而是微软重构了资源管理器的代码,因为Windows 11的资源管理器跟Windows 10的有着很明显的差别,所以真相很可能就是:微软其实根本没去修正这个bug,只是把资源管理器重新写了一遍,正好没了这个bug罢了。

Windows11的操作方式和Windows10也有着很大的差别,最令人吐槽的便是它的右键菜单,相信是个程序员看了都想开骂——为何要我多点一下。所幸的是要调整回经典右键菜单并不难,而要想让传统的任务栏回归就有点难了,我尝试过许多个方法后,发现比较可靠的,且副作用比较小的,就是用一个叫“StartAllBack”这个软件,它的作用不仅仅是让经典任务栏回归,还能调整开始菜单,以及让资源管理器使用传统风格。

总结

写这篇文章,是为了一些纪念,也是为了总结一些道理:

1. 一个东西,不管其它方面有多好,一个缺点就可以让人很讨厌它
2. 没有充分的理由就不要试图去改变用户的习惯
3. 从根本上去改进产品,而不是停留在表面上
4. 一个产品没有令人厌烦的bug往往比有什么酷炫功能重要
5. 大公司……确实挺傲慢