2006-10-10

Богатая функциональность...

Часто приходится участвовать (сегодня, например) в разных дискуссиях о дизайне и одно из всеобщих заблуждений это заблуждение о том, что пользователю нужна "богатая функциональность". Если пользователь - это я, то не нужна мне "богатая функциональность". И бедная не нужна. Мне нужна только та, без которой не обойтись, а остальная не нужна! Ну, говорят, пусть будет! Жалко что-ли? Запас каман не тянет. Вдруг понадобится? Диски дешёёёвые! Памать дешёёёвая! Чужие деньги всегда дешёвые. А за свои - хрен дешёвая! Двести баксов за диск. Еще сто за пямять. Дальше процессор не потянет вычислять, что конкретно из всего этого мне не нужно. Придется и процессор апгрейтить и всё остальное. Потом начнутся баги и секъюрити-фиксы. В модуле, для обработки ABCD протокола используемом для обмена EFGH сообщениями. Потом окажется, что из за этого протокола нельзя было сделать нормальный дизайн кэша браузера или еще чего-нибудь полезного, не ломая совместимость, поэтому сломали всё остальное, и понеслась волна креатива, захлестывая гигабайты и терафлопы. А самое главное, я перестану (уже перестал) понимать, что происходит. Что-то происходит. Неисповедимы пути и непостижимы причины. Таинственный кремниевый разум. Минимальная функциональность - всегда лучший вариант из возможных. Продуманная архитектура, ортогональный набор функций и ничего лишнего. Последнее - главное. Остальное можно сделать применяя внешние инструменты, скриптинг, например. Написать простой ортогональный код можно быстро, багов немного, нормальные пользователи довольны - всё очень просто. Недовольны "менеджеры-креативщики". Продукт выглядит несерьезно. Нечего доложить начальству. Надо напихать абревиатур, переписать всё на managed code, unicode, xml, web-services, ajax, www, http. Набрать кучу народу, долго мучиться, почти завалить проект, но в конце что-то выпустить, за что и получить очередной промоушен и всяческие почести. Такой продукт можно продать только другому такому-же менеджеру, который будет счастлив набрать штат для его сопровождения. Хочу читать нормальный код! Хочу писать разумный код. Хочу простую операционку! Хочу удобный редактор! Почему вообще ничего  нет? Долой захватившие власть объектные модели!

No comments: