Joel on Software

Joel on Software   周思博趣谈软件

 

其他文章(简体中文)

其他文章(英文)

与作者联系(英文)

 

第四战略篇:膨胀软件与80/20的谣传


作者: 周思博 (Joel Spolsky)
译: Bo Yang
编辑: Wenjing Jiang
2001323

1993年,微软公司的电子表格软件Excel 5.0出版了。它是一个巨大的软件,需要15兆的硬盘空间。当年我们还记得最早上市(1985年左右)的PC硬盘只有20兆,所以15兆显得很多。

等到Excel 2000出版的时候,它竟需要146兆的硬盘空间,几乎增长到1993年的十倍!微软公司的程序员真是差劲,对不对?

不对。

我敢打赌,你以为我要写一篇令人厌烦的,批评膨胀软件的文章。这种文章因特网上到处都是。批一批,怨一怨,这些庞大臃肿的软件,令我讨厌,还是vi和edlin比Microsoft Word与Emacs强多了,因为前两者很小巧灵活...

哈哈,把你蒙了!我才不会去写一篇那样的文章呢,因为那种说法根本不对。

1993年,根据当时硬盘的价格,Microsoft Excel 5.0占用了$36元的硬盘空间。

2000年,根据当时硬盘的价格,Microsoft Excel 2000占用了$1.03元的硬盘空间。

(这些数字是根据此处的硬盘历史价格数据计算的,以把通货膨胀的效果算进去了。)

从实际经济角度出发,Excel好像变小了!

说真格的,什么叫膨胀软件?Jargon File把它嘲贬地定义为:“提供最低等的功能,同时占用不成比例的磁盘与内存空间的软件。特别是形容应用软件与操作系统升级来用的。此词在Windows/NT上是常见的,Windows/NT也是它的来源。”

我猜这帮人只不过是恨Windows而已。自从虚拟内存在Windows 386(1989年)上出现后,我已经有十多年没有把内存用完过了。再说硬盘价格已经降到$0.0071元一兆,而且越降越快。

也许Linus Åkerlund能把这个问题解释清楚。他在他的网页 上写道:“这些膨胀软件的一个大缺点,就是即使你只想干一件很小的事,你也要负载这个很大的程序。它把你的内存全用掉了…你不是很有效地利用你的系统。它毫无必要地把你系统的效率弄得很低。”

我明白了,原来它把你的内存都用完了。嗯,不对。自从Windows 1.0在1988年出版以后,操作系统只把用到的代码页放在内存中。如果你有一个15兆的可执行文件,但运行时只用到两兆的代码页,操作系统就只把这两兆从磁盘装入内存中。而且如果你用的是比较现代版的Windows的话,操作系统还会自动调整硬盘,把这两兆代码页放在一起,使程序起动得更快。

我想没有人会否定,在今天强大而便宜的计算机上,起动一个大程序比仅仅五年前起动一个小程序还要快。那么那些人在瞎叫唤什么呢?

RA Downes给了我们一个提示。看起来他花了几个钟头,把Microsoft的一个小程序研究了一通,而且因为这个程序有一兆大小,令他十分气愤(他写那篇文章,一兆硬盘只值3.15分)。以他看来,那个程序应该小下去95%才对。可笑的是,他研究的那个程序叫做RegClean,你很可能没听说过。它的作用,是把Windows registry中没用的东西找出来删掉。如果你整天为Windows registry中没用的东西担心的话,你性格上很可能有为事物着迷,难以克制的弱点。所以我怀疑批判膨胀软件是精神病 的体现,不是软件问题。

实际上讲,膨胀软件的存在是有道理的。最起码的,如果程序员不用担心软件的大小,那么软件就可以早点出版。用户可以早点得到更多的功能。这些功能用时有益,不用时无害。假如你的软件商在出版软件之前,花两个月的时间,把它的软件缩小50%,这对你的实际好处来说,几乎是感觉不到。也许,你的硬盘要是快满了的话,你可以多下载一首MP3歌曲。可是你多花两个月的时间,等新软件出版的损失,你就感觉得到了。而且你的软件商会丢掉两个月的销售额,损失更大。

很多搞软件开发的人,被"80/20"的老规律引诱了。这个规律好像很有道理:80%的人只用20%的功能。所以你以为,只要实现20%的功能,就能得到80%的销售量。

不幸的是,那从不是同样的20%。每个人都用到不同的功能。再过去十年中,我大概听说过几十家公司,下定决心不互相吸取教训,企图出版“轻形”版本,只有20%的功能的文字处理软件。大多数情况是,他们把软件送到记者哪里去评论,那些记者评论的方法,就是用这个新的文字处理软件去写他们的评论文章。文章写完了,记者就要用到“字数”这个功能了,因为大多数记者写文章时有明确的字数限制。可是“字数”这个功能在软件里却找不到,因为它是属于“没人用的80%”里面。结果记者就会写一篇文章,一方面说着这个“轻形” 软件怎么怎么好,膨胀软件怎么怎么糟,另一方面又说我不能用这个软件,因为它没有“字数”这个功能。而且这种文章 经常有人写。

当你去推销你的“轻形” 软件时,你跟人家说:“嗨,这个软件很小巧,只有一兆。” 人家听了一般都很高兴,然后就会问你有没有对于他们来说很重要的功能,要是没有,就不会买你的软件。

基本概要是:如果你的战略是“80/20”,你就很难卖出你的软件。事实就是这样。这个战略自从软件工业开始时就有,从来没有胜利过。令人吃惊的是,很多倒闭了的公司的高级主管还觉得它是个好的主意。

Jamie Zawinski 在讨论改变世界的首版Netscape时讲得最好:“Mozilla [Netscape 1.0]很大并不是因为里面全是没用的东西(如果真是那样,解释起来倒很方便)。Mozilla很大,是因为你的需要很大。你的需要很大,是因为因特网是个很大的东西。网上有很多小型的浏览器,说起来基本上是没用的。我们当初写Mozilla的时候,从未想把它做成一颗完美无缺的明珠。”



本文最先用英文出版,题为 Strategy Letter IV: Bloatware and the 80/20 Myth  

Joel Spolsky 是纽约市一家小软件公司,Fog Creek Software, 的创始人。他毕业于耶鲁大学,曾在美国微软公司,Viacom,  Juno 任软件设计师及经理。


网页内容仅为个人意见
©1999-2005 Joel Spolsky.  版权所有 保留所有权力

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky