http://chinese.joelonsoftware.com/Articles/StrategyLetterIV.html
作者: 周思博 (Joel Spolsky)
譯: Bo Yang
編輯: Wenjing Jiang
2001年3月23日
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??