Чем хуже, тем лучше (Cyb ]r'y, myb lrcoy)

Перейти к навигации Перейти к поиску

Чем хуже, тем лучше — подход к разработке программного обеспечения, объявляющий простоту реализации и простоту интерфейса более важными, чем любые другие свойства системы. Этот стиль описан Ричардом П. Гэбриелом (Richard P. Gabriel) в работе «Lisp: Good News, Bad News, How to Win Big» в разделе «The Rise of 'Worse is Better'» и часто перепечатывается отдельной статьёй.

Суть[править | править код]

Гэбриел описывает подход так:

  1. Простота: реализация и интерфейс должны быть простыми. Простота реализации даже несколько важнее простоты интерфейса. Простота — самое важное требование при выборе дизайна.
  2. Правильность: дизайн должен быть правильным во всех видимых проявлениях. Простой дизайн немного лучше, чем правильный.
  3. Логичность (последовательность): дизайн не должен быть слишком нелогичным. Иногда можно пожертвовать логичностью ради простоты, но лучше отказаться от тех частей дизайна, которые полезны лишь в редких случаях, чем усложнить реализацию или пожертвовать логичностью.
  4. Полнота: дизайн должен охватывать как можно больше важных ситуаций. Полнотой можно жертвовать в пользу остальных качеств и обязательно нужно жертвовать, если она мешает простоте. Логичностью можно жертвовать в пользу полноты, если сохраняется простота (особенно бесполезна логичность интерфейса).

Гэбриел считает язык C и систему Unix примерами такого подхода.

MIT[править | править код]

В статье ему противопоставляется подход, который называется «подход MIT» (MIT — Massachusetts Institute of Technology). Гэбриел так описывает этот подход к дизайну:

  1. Простота: реализация и интерфейс должны быть простыми. Простота интерфейса важнее простоты реализации.
  2. Правильность: дизайн должен быть правильным во всех отношениях. Неправильный дизайн категорически запрещён.
  3. Логичность так же важна, как и правильность. Ради логичности можно жертвовать простотой и полнотой.
  4. Полнота: дизайн должен охватывать как можно больше важных ситуаций. Все вероятные ситуации должны быть предусмотрены. Простота не должна слишком мешать полноте.

Эффект[править | править код]

Гэбриел утверждает, что подход «чем хуже, тем лучше» предпочтительнее «подхода MIT». Простая в реализации система будет легко перенесена под разные операционные системы, то есть быстро распространится ещё до того, как система, сделанная по принципам MIT, будет написана. Более простая в реализации система привлечёт больше пользователей, понимающих, как она работает, и желающих её улучшить. Улучшения будут продолжаться, пока система не станет почти идеальной. Как пример Гэбриел приводит компиляторы для языков C и Лисп. В 1987 году, пишет Гэбриел, компиляторы с этих языков были почти одинаковы по качеству, но было гораздо больше желающих улучшить компилятор С, чем компилятор Лиспа.

Хотя Гэбриел, возможно, первым сформулировал этот принцип, похожие идеи использовались гораздо раньше в идеологии UNIX и программного обеспечения с открытым кодом.

См. также[править | править код]

Ссылки[править | править код]