«Простота — это великая добродетель, но она требует напряженной работы, чтобы её достичь и образование, чтобы оценить. И к сожалению, сложность продается легче.» — Дейкстра.







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



Кажется, что раз решение сложное — то в него вложено больше труда и значит оно должно быть лучше.



Это, конечно, не так. Процитирую Паскаля: «если бы у меня было больше времени, я бы написал письмо покороче».



В программировании ровно то же самое: простые решения требуют гораздо больше интеллектуальных усилий, приходят с опытом.



Да, есть задачи, которые сами по себе сложные, с огромным числом ограничений и тд., например, биллинги обычно такие. При этом, почти все биллинги, которые я видел, были переусложнены сверх необходимого. 🙈







Отличная статья об этом феномене на примере научных статьей в области машинного обучения. Спасибо Игорю за наводку.