看到 Twitter 上讨论 Mac 的单文件应用的卸载问题。首先说明一下,单文件应用是 Mac 上一种很常见的发布方式,整个应用只有一个文件(其实是一个目录),安装即拷贝该文件到 /Applications 下,卸载即删除这个文件。Mac 下还有很多种其它发布方式,比如 Xcode 使用的是 Apple 推荐的一种多文件 installer ,Photoshop 是 Adobe 自己设计的 installer ,而且 Mac OS X 也不会限制任何人发明定义自己的安装方式。这里只讨论单文件应用。
精确的说,单文件应用的安装实际发生在第一次启动,这时应用会按照需要在用户的数据目录下创建必要的配置文件。所以,简单的删除应用文件这种卸载方式其实确实会留下一些垃圾。
这个问题给了两种人不同的反应。第一种人是一定要把 OS X 的单文件卸载和 Windows 下流行的反安装(uninstall)比较的人。我想分两个层面讨论这种反应。首先,Windows 的反安装鼓励软件发行者安装的时候做了什么卸载的时候就反过来做什么;而 Mac 的单文件应用卸载鼓励发行者置少量垃圾于不顾。从理想层面说 Windows 是占优的。可是实际上,没有一个 Windows 应用的反安装能完全兑现理想,甚至很多应用连自己的 DLL —— 也就是可执行文件都删不掉。Windows 和 Mac 的方案相比较,前者是一个完全兑现就能美好的不得了,但是稍有差池就跌下地狱的方案,后者是一个基本能 100% 兑现但是天然有轻微缺陷的方案。
第二个层面是要追寻卸载应用的动机。自从买过上一台 MacBook 到现在用这台 MacBook Pro ,我从来没有卸载过一个应用。原因很简单,硬盘够用,系统也没有变慢。用 Windows 的时候我也几乎不用反安装功能,因为卸也卸不干净;而且一般三个月左右,最多四个半月系统就慢到必须重装的地步了。
被这个问题引发兴趣的第二种人是宣称自己喜爱整洁的人。对他们来说,就算系统不变慢,硬盘还有 2T 空间,只要想到还有几个 k 的垃圾文件隐藏在边边角角就浑身不得劲。对于这种把『喜好』、『就是』作为原因的人,仔细从人性和人类发展方面思考一番总是能得到些乐趣。比如说,装修摸墙面的时候都得把墙面刮花。如果一个人坐在整洁的客厅,想到墙面下其实是刮得乱七八糟的墙体而百爪挠心呢,是不是比较分裂?还有今天的文件系统早就不是那个一周用 defrag 整理几次的 FAT16 系统了,它会按照自己的工作把文件随意摆放。喜好整洁的人是否也不乐意呢?Joel 曾经看到过一台『肮脏至极』的面包机,而事后证明那是制造美食的好工具。其实在维系人类正常发展的效率需求之前,洁癖是没有生存空间的。
最后声明一下,我不认为 Mac 的方案是完美的。更进一步,不论是 Windows 的安装/反安装加注册表,Mac 的单文件应用加不完全卸载,还是 Linux 的集中化包管理,都有很大的改进空间。只是所谓基于『卸的干净』的洁癖这种思考方式太过简单了。
发表评论