> man operating_systems
Развитие Linux: куда теперь?
Пути Linux неисповедимы
на Четверг, 19 Январь 2006, 02:52
добавил: Дмитрий Царьков aka ddc список авторов печатать элемент контента создать pdf-файл  элемент контента
категория Статьи > Unix
просмотров: 9914


Изящество в решении задачи

За всё время существование человечества были выработаны две методики выполнения задачи, которые можно было бы условно назвать "изящное " (т.е. решение, которое является структурно согласованным, концептуально проработанным и академически правильным) и "решение, которое " (т.е. минимально достаточное для выполнение задачи). Так вот, мир UNIX всеми силами отбивается от второго подхода.

Здесь "героем дня без " выступает конгломерат утилит от Mozilla Foundation. Так был раньше набор программ Mozilla Suit, который, несмотря на полную неспособность работать так, как это должна делать программа в UNIX, представлял собой неплохой пакет, состоявший из движка обработки HTML, браузера, почтовой программы, WYSIWYG HTML-редактора, IRC-клиента и календаря. Этот монстр представлял себе ком в горле любой UNIX-подобной системы, поскольку нарушал все правила: случайным образом генерирующиеся имена постоянных файлов, чёткая неспособность взаимодействоваь с внешним миром иначе чем по-разному откликаться на специфические ключи вызова, собственный формат почтового ящика, неполная поддержка CSS при наличии собственных CSS-свойств и достаточно ограниченная функциональност делали это приложением камнем на шее сообщества UNIX'истов. Однако этот пакет имел очень красивую внутреннюю структуру: не было двух частей, отвечающих за одно действие, наличествовала модульность, выражавшаяся во взаимоотношениях частей программы между собой и с плагинами. Но коварный удар в спину испортил идиллическую картину.

Теперь Mozilla Foundation продвигает три собственных продукта (давайте сделаем вид, что NVu не имеет ни малейшего отношения к продуктам Mozilla Foundation): браузер Firefox, почтовый клиент Thunderbird и календарь Sunbird. Прелесть ситуации заключается в том, что разделённый набор (а рассматривать как набор это всё всё равно стоит, ибо поклонники Mozilla Suit предпочитают осколки пакета иным приложениям; добавляя корректности в сравнение Mozilla Suit очень активно отмежёвывалась от образа монолита: каждое из приложений можно было не устанавливать, так что функционально Mozilla Suit с лёгкостью ограничивалась до своих последователей) не просто не стал лучше, а только ухудшился. Браузер Mozilla Firefox потерял половину функций Mozilla Navigator а совокупный размер трёх частей программы стал превосходить суммарный размер исходного пакета. Но не зря я описываю это всё в секции, посвящённой посвящённой изящности решения: новый пакет перешёл из категории отлично структурированнго и качественного ПО в качественное ПО с колоссальной брешью на уровне проектирования. Как иначе можно охарактеризоват тот факт, что одновременно установленные Mozilla Firefox, Mozilla Thunderbird и Mozilla Sunbird используют три различных версии Gecko (кстати говоря, не пересекающиеся функционально) и три различных интерпретатора языка плагинов?

Вывод: перед написанием кода надо думать.


индекс статьи
страница 1 : страница без заголовка
страница 2 : страница без заголовка
страница 3 : страница без заголовка
страница 4 : страница без заголовка
страница 5 : страница без заголовка
страница 6 - текущая : страница без заголовка
страница 7 : страница без заголовка
страница 8 : страница без заголовка
страница 9 : страница без заголовка
страница 10 : страница без заголовка
страница 11 : страница без заголовка
страница 12 : страница без заголовка


© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.