о стратегии IV: Раздутое ПО
Joel on Software - Письмо о стратегии IV: Раздутое ПО и миф 80/20
Письмо о стратегии IV: Раздутое ПО и миф 80/20
Автор: Джоэл Сполски
Переводчик: Дмитрий Майоров
Редактор: Сергей Петренко
23 марта 2001 г.
Пятая версия флагмана Microsoft - электронных таблиц Excel вышла в 1993 году. Она была положительно громадной: ей требовалось целых 15 мегабайт на диске. В те времена мы ещё помнили 20-мегабайтные диски первых PC (появившиеся примерно в 1985 году), и 15 мегабайт - это было много.
К моменту выхода версии Excel 2000 размер программы увеличился до 146 мегабайт... почти на порядок! Ох уж эти неумелые микрософтовские программисты, правда?
Неправда.
Готов поспорить, что вы думаете, что я собираюсь написать еще одну скучную статью, критикующую непомерно раздутое программное обеспечение, то, что принято называть bloatware. Ой-ёй-ёй, всё стало такое неподъёмное, жуть, edlin и vi гораздо лучше, чем Word и Emacs, мал, да удал, и т.д. и т.п.
Ха-ха! Я вас разыграл! Я не собираюсь писать очередную такую статью, потому что это неправда.
В 1993 году, считая в ценах того времени, место на жёстком диске, которое занимал Microsoft Excel 5.0, стоило примерно 36 долларов.
В 2000 году, считая по ценам 2000-го года, Microsoft Excel 2000 занимал места на один доллар и три цента.
(Эти числа приведены с учетом инфляции и основаны на информации о ценах на жёсткие диски, опубликованной здесь).
На самом деле, похоже на то, что Excel становится меньше!
Что же имеется в виду под "раздутым программным обеспечением" (английский термин bloatware)? Словарь компьютерного жаргона даёт такое определение: "программное обеспечение, которое предоставляют минимальную функциональность и при этом требует для работы непропорционально большое количество дискового пространства и оперативной памяти. Термин часто используется в отношении приложений и обновлений операционных систем. Очень часто используется в мире Windows/NT, откуда и происходит."
Мне кажется, эти ребята просто ненавидят Windows. Не помню, чтобы за последние десять лет (с момента появления в 1989 году виртуальной памяти в Windows 386) я когда-либо сталкивался с нехваткой памяти. Цена дискового пространства упала до 0,0071 доллар за мегабайт и продолжает двигаться, как овца, решившая прыгнуть с дерева, чтобы научиться летать.
Возможно, это сможет объяснить Линус Экерлунд (Linus Еkerlund). На своей Веб-странице он пишет, что "большой недостаток таких раздутых программ заключается в том, то их приходится загружать целиком, даже если требуется выполнить всего одно простое действие. Эти программы сжирают всю память... система используется неэффективно. Вы уменьшаете этим эффективность системы, что абсолютно не надо делать ."
Ох... Это съест всю мою память, ага. На самом деле, это неправда. Еще со времен Windows 1.0, с 1987 года, операционная система загружает страницы в оперативную память только тогда, когда они необходимы. Если исполняемый файл имеет размер в 15 мегабайт, а вы используете в нем код, занимающий только 2 мегабайта, то операционная система загрузит только эти 2 мегабайта. Фактически, в последних версиях Windows, операционная система автоматически переставит страницы на диске так, чтобы они шли подряд, чтобы ускорить последующие запуски.
И вряд ли кто-либо возьмётся отрицать, что в сегодняшних сверхмощных и очень дешевых компьютерах громадные современные программы запускаются всё равно быстрее, чем старые маленькие программы даже пять лет назад. Так в чём тогда проблема?
Подсказку даёт RA Downes. Похоже, он потратил много часов на разбор небольшой утилиты от Microsoft, по-видимому будучи разозлён её размером в целый мегабайт (цена такого количества дискового пространства на момент написания статьи: 3,15 цента). По его мнению, программа должна была быть на 95% меньше. Фокус заключается в том, что утилита, которую он разбирает, - это нечто под названием RegClean, о которой вы вряд ли слышали. Эта программа проходит по реестру Windows, определяя неиспользуемые записи и удаляя их. Чтобы всерьез беспокоиться об очистке реестра Windows, вы должны быть немного одержимы этим. Так что я начинаю подозревать, что весь этот трёп про раздутые программы имеет больше отношения к психическому здоровью, чем к программному обеспечению.
Фактически, есть куча причин для возникновения раздутых программ. Например, если программистам не надо заботиться о размере конечного продукта, они могут закончить разработку быстрее. А это, в свою очередь, означает, что пользователи получат больше возможностей, которые улучшают жизнь тем, кто их использует, и обычно не мешают остальным. Если производитель программного обеспечения остановится и начнет в течение двух месяц вычищать код, чтобы ужать продукт в два раза, польза от этого будет, скорее всего, незаметна. Может быть, если ваш диск постоянно набит под завязку, туда влезет еще один MP3 файл группы Duran Duran. А вот потери пользователей от ожидания новой версии в течении двух месяцев как раз ощутимы, и потери производителя от задержки продаж тем более.
Многие разработчики программного обеспечения попадаются на старое, как мир, правило "80/20". Кажется совершенно очевидным, что 80% людей используют лишь 20% возможностей программ. И вы убеждаете себя, что вам надо внедрить только 20% возможностей, и вы все равно сможете при этом продать 80% копий.
К сожалению, это не всегда одни и те же 20%. Каждый использует разные вещи. За последние 10 лет я слышал о десятках компаний, которые, решив не учиться на чужих ошибках, пытались выпускать "облегчённые" текстовые редакторы, в которых реализовано только 20% функций. Эта такая же старая история, как сам PC. В большинстве случаев дальше происходит следующее: фирма-производитель посылает копию своего нового текстового редактора журналисту для того, чтобы он написал о нем статью. Журналист пишет эту статью, используя этот новый текстовый редактор, и, закончив её, пытается найти функцию "Подсчет количества слов", которая им необходима, поскольку у большинство журналистов есть вполне четкие требования к объему статей. И, конечно, такой возможности нет, потому что она как раз попала в те "80%, которые никто не использует", и журналист в итоге пишет, что облегчённые программы - это хорошо, раздутые программы - это плохо, но вот с этой чертовой штукой я работать не могу, потому что она не будет считать мои слова. Если бы мне платили доллар каждый раз, когда такая история повторяется, я бы был очень счастлив.
Когда вы начинаете продавать свой "облегчённый" продукт и говорите "Эй, она весит всего мегабайт", людям это начинает нравиться, потом они спрашивают, есть ли в ней их наиважнейшая возможность, и разумеется, ее там нет, так что ваш продукт они не покупают.
Подведем итог: если ваша стратегия "80/20", у вас будут проблемы с продажами. Это реальность. Такая стратегия стара, как сама индустрия программного обеспечения, и она просто не окупается; что действительно удивительно так это то, сколько менеджеров фирм-однодневок думают, что она сработает.
Джеми Завински (Jamie Zawinski) сформулировал это лучше всех при обсуждении первой версии Netscape, которая изменила мир. "Хотя это и было бы удобно, но Mozilla [Netscape 1.0] была такой большой не потому, что в неё напихано много всякого ненужного хлама. Mozilla большая потому, что ваши требования велики. Ваши требования велики потому, что интернет большой. Есть куча маленьких, стройных браузеров, которые, по случайному совпадению, не делают почти ничего полезного. Но совершенство бриллианта не было нашей целью при работе над Mozilla."
В английском оригинале статья называется Strategy Letter IV: Bloatware and the 80/20 Myth
Джоель Спольски - основатель Fog Creek Software, небольшой компании по
разработке программного обеспечения, расположенной в Нью-Йорке.
Окончил Йельский Университет, работал программистом и управляющим в
Microsoft, Viacom и Juno.
Всё содержимое Copyright ©1999-2005 by Joel Spolsky. All Rights Reserved.
FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky