Чем хуже, тем лучше (также называемый стилем Нью-Джерси [1] ) - термин, придуманный Ричардом П. Габриэлем в одноименном эссе для описания динамики принятия программного обеспечения. Это относится к аргументу о том, что качество программного обеспечения не обязательно повышается с функциональностью: есть точка, где меньшая функциональность («хуже») является предпочтительным вариантом («лучше») с точки зрения практичности и удобства использования. Программное обеспечение, ограниченное, но простое в использовании, может быть более привлекательным для пользователя и рынка, чем наоборот.
Что касается оксюморонического названия, Габриэль называет его карикатурой, заявляя, что стиль плохой по сравнению с "The Right Thing". Однако он также заявляет, что «у него лучшие характеристики выживания, чем у правильного» стиля разработки, и он превосходит «подход Массачусетского технологического института», которому он противопоставил его. [2]
Это эссе было включено в книгу 1994 года The UNIX-HATERS Handbook и было названо источником концепции концептуального разделения между разработчиками на восточном и западном побережьях Соединенных Штатов. [3]
Источник
Габриэль был программистом на Лиспе, когда сформулировал эту концепцию в 1989 году, представив ее в своем эссе «Лисп: хорошие новости, плохие новости, как добиться большого успеха». Раздел статьи, озаглавленный «Рост« хуже тем лучше » », получил широкое распространение с 1991 года после того, как Джейми Завински нашел его в файлах Габриэля в Lucid Inc. и отправил по электронной почте друзьям и коллегам. [2]
Характеристики
Стиль Нью-Джерси
В книге «Чем хуже тем лучше» Габриэль утверждал, что «Хуже того лучше» (также «стиль Нью-Джерси» или «восточное побережье» [3] ) - это модель разработки и реализации программного обеспечения, которая имеет характеристики (примерно в порядке убывания важности):
- Простота
- Дизайн должен быть простым как по реализации, так и по интерфейсу. Более важно, чтобы реализация была простой, чем интерфейс. Простота - самое важное в дизайне.
- Правильность
- Дизайн должен быть правильным во всех наблюдаемых аспектах. Лучше быть простым, чем правильным.
- Последовательность
- Дизайн не должен быть чрезмерно противоречивым. В некоторых случаях согласованностью можно пожертвовать ради простоты, но лучше отказаться от тех частей дизайна, которые имеют дело с менее распространенными обстоятельствами, чем вносить сложность или непоследовательность в реализацию.
- Полнота
- Дизайн должен охватывать как можно больше важных ситуаций. Должны быть охвачены все разумно ожидаемые случаи. Полнотой можно пожертвовать в пользу любого другого качества. Фактически, нужно пожертвовать полнотой всякий раз, когда ставится под угрозу простота реализации. При сохранении простоты можно пожертвовать согласованностью для достижения полноты; особенно бесполезна единообразие интерфейса.
Подход MIT
Габриэль противопоставил свою философию тому, что он назвал « стилем дизайна MIT / Stanford» или «подходом MIT» (также известным как подход «западного побережья» [3] или «Правильная вещь»), который он описал как:
- Простота
- Дизайн должен быть простым как по реализации, так и по интерфейсу. Более важно, чтобы интерфейс был простым, чем реализация.
- Правильность
- Дизайн должен быть правильным во всех наблюдаемых аспектах. Некорректность просто недопустима.
- Последовательность
- Дизайн должен быть последовательным. Допускается, чтобы дизайн был немного менее простым и менее полным, чтобы избежать несогласованности. Последовательность так же важна, как и правильность.
- Полнота
- Дизайн должен охватывать как можно больше важных ситуаций. Все разумно ожидаемые случаи должны быть покрыты. Простота не должна чрезмерно снижать полноту.
Габриэль утверждал, что ранние версии Unix и C , разработанные Bell Labs , являются примерами подхода к проектированию «хуже - значит лучше». Он также называет их «абсолютными компьютерными вирусами».
Эффекты
Габриэль утверждал, что «Чем хуже, тем лучше» дает более успешное программное обеспечение, чем подход MIT: до тех пор, пока исходная программа в основном хороша, для ее первоначальной реализации потребуется гораздо меньше времени и усилий, и будет легче адаптироваться к новым ситуациям. Например, таким образом становится намного проще переносить программное обеспечение на новые машины. Таким образом, его использование будет быстро распространяться задолго до того, как программа, разработанная с использованием подхода MIT, получит шанс быть разработанной и развернутой ( преимущество первопроходца ). Как только он распространится, возникнет необходимость улучшить его функциональность, но пользователи уже были приучены принимать «худшее», а не «правильное»: [4]
Таким образом, программное обеспечение «хуже-лучше-лучше» сначала получит признание, во-вторых, заставит пользователей ожидать меньшего, а в-третьих, будет улучшено до такой степени, что это почти правильно. Конкретно, хотя компиляторы Lisp в 1987 году были примерно так же хороши, как компиляторы C, гораздо больше экспертов по компиляторам хотят сделать компиляторы C лучше, чем хотят сделать компиляторы Lisp лучше.
Габриэль благодарит Джейми Завински за то, что он взял разделы «Лисп: хорошие новости, плохие новости, как добиться большого успеха» и отправил их по электронной почте своим друзьям из Университета Карнеги-Меллона , которые отправили их своим друзьям в Bell Labs. , "которые отправляли их своим друзьям повсюду". [5] Он, очевидно, соединил эти идеи с идеями Ричарда Столлмана и увидел связанные идеи, которые важны для философии проектирования Unix и, в более общем смысле, для движения за открытый исходный код , оба из которых были центральными в развитии Linux .
В декабре 2000 года Габриэль ответил на свое раннее эссе, написав одно под псевдонимом Никибен Бурбаки (отсылка к Николя Бурбаки ) под названием « Хуже, лучше, тем хуже» [6] , а также написал «На самом деле хуже? , применяя эту концепцию к успеху C ++ в области объектно-ориентированного программирования, несмотря на существование более элегантных языков, разработанных на основе этой концепции. [7]
Справочник UNIX-HATERS включает в себя приложение « Чем хуже, тем лучше» , и формулирует концепцию с точки зрения «хуже - значит лучше» в форме того, что Unix «эволюционно превосходит» своих конкурентов. [8]
Смотрите также
Рекомендации
- ^ Лучше хуже, чем лучше.
- ^ a b Чем хуже, тем лучше, Ричард П. Габриэль
- ^ a b c Хуже того, Джим Уолдо, инженер Sun Microsystems
- ^ Лисп: хорошие новости, плохие новости, как выиграть по-крупному, Ричард П. Габриэль
- ^ Даниэль Вайнреб . «Идея« Чем хуже, тем лучше »и будущее Lisp») . Архивировано из оригинала на 11 июня 2009 года. CS1 maint: обескураженный параметр ( ссылка )
- ^ Хуже лучше хуже (PDF), Ричард П. Габриэль , как «Nickieben Бурбаки»
- ^ На самом деле хуже, чем лучше, Ричард П. Габриэль
- ^ Крейнин, Йосси (11 августа 2012 г.). «Что на самом деле значит« Хуже лучше против правильного »» . Правильная фиксация . Проверено 24 ноября 2018 .