Меня давно занимает одно интересное наблюдение: очень часто можно слышать ровно противоположные мнения разработчиков на одну и ту же тему, причём как правило можно согласиться с обоими сторонами, даже если их позиция аргументирована. Можно встретить как защитников ООП, так и их противников, рьяных последователей скрама, так и их оппонентов. Особенно ярко это заметно в вопросах проектирования кода, когда всё становится похожим на вопросы чистого вкуса. Почему же так происходит, что люди приходят совершенно перпендикулярным взглядам на подход к проблеме? Мне кажется, объяснений этому несколько: - Во первых, сама реальность обладает таким свойством, что допускает мультивариативность собственного описания, то есть возможно несколько терминологий описания одного и того же явления. - Во вторых, часто разработчики имеют разный опыт и разный контекст, повлиявший на то или иное предпочтение, угол взгляда на проблему. И наконец, самое главное, на мой взгляд, это то, что: - Сами языки так и