Чем хуже, тем лучше
Чем хуже, тем лучше — подход к разработке программного обеспечения, объявляющий простоту реализации и простоту интерфейса более важными, чем любые другие свойства системы. Этот стиль описан Ричардом П. Гэбриелом (Richard P. Gabriel) в работе «Lisp: Good News, Bad News, How to Win Big» в разделе «The Rise of 'Worse is Better'» и часто перепечатывается отдельной статьёй.
Суть
[править | править код]Гэбриел описывает подход так:
- Простота: реализация и интерфейс должны быть простыми. Простота реализации даже несколько важнее простоты интерфейса. Простота — самое важное требование при выборе дизайна.
- Правильность: дизайн должен быть правильным во всех видимых проявлениях. Простой дизайн немного лучше, чем правильный.
- Логичность (последовательность): дизайн не должен быть слишком нелогичным. Иногда можно пожертвовать логичностью ради простоты, но лучше отказаться от тех частей дизайна, которые полезны лишь в редких случаях, чем усложнить реализацию или пожертвовать логичностью.
- Полнота: дизайн должен охватывать как можно больше важных ситуаций. Полнотой можно жертвовать в пользу остальных качеств и обязательно нужно жертвовать, если она мешает простоте. Логичностью можно жертвовать в пользу полноты, если сохраняется простота (особенно бесполезна логичность интерфейса).
Гэбриел считает язык C и систему Unix примерами такого подхода.
MIT
[править | править код]В статье ему противопоставляется подход, который называется «подход MIT» (MIT — Massachusetts Institute of Technology). Гэбриел так описывает этот подход к дизайну:
- Простота: реализация и интерфейс должны быть простыми. Простота интерфейса важнее простоты реализации.
- Правильность: дизайн должен быть правильным во всех отношениях. Неправильный дизайн категорически запрещён.
- Логичность так же важна, как и правильность. Ради логичности можно жертвовать простотой и полнотой.
- Полнота: дизайн должен охватывать как можно больше важных ситуаций. Все вероятные ситуации должны быть предусмотрены. Простота не должна слишком мешать полноте.
Эффект
[править | править код]Гэбриел утверждает, что подход «чем хуже, тем лучше» предпочтительнее «подхода MIT». Простая в реализации система будет легко перенесена под разные операционные системы, то есть быстро распространится ещё до того, как система, сделанная по принципам MIT, будет написана. Более простая в реализации система привлечёт больше пользователей, понимающих, как она работает, и желающих её улучшить. Улучшения будут продолжаться, пока система не станет почти идеальной. Как пример Гэбриел приводит компиляторы для языков C и Лисп. В 1987 году, пишет Гэбриел, компиляторы с этих языков были почти одинаковы по качеству, но было гораздо больше желающих улучшить компилятор С, чем компилятор Лиспа.
Хотя Гэбриел, возможно, первым сформулировал этот принцип, похожие идеи использовались гораздо раньше в идеологии UNIX и программного обеспечения с открытым кодом.
См. также
[править | править код]Ссылки
[править | править код]- Richard P. Gabriel. Lisp: Good News, Bad News, How to Win Big
- Richard P. Gabriel. Worse is Better