Как мало людей понимает ООП...
От: SV.  
Дата: 27.07.12 11:01
Оценка: 14 (4) +5 :)
...и это невероятно печально.

Примеры. Допустим, некто спрашивает, зачем нужно наследование интерфейсов. Я привожу пример, когда оно нужно. В ответ приводится пример, как то же самое можно сделать без наследования интерфейсов. История, конечно, вымышлена, все возможные совпадения случайны. Как хотите, а для меня такой ответ — признак полнейшего непонимания ООП. Оно нужно не потому, что без него не обойтись, и не потому, что сокращает количество кода, и не потому, что что-то там гарантирует (на любую хитрую жопу, как известно всегда что-нибудь найдется). Любой ОО-код переписывается в процедурный роботом на автомате. Не говоря про машину Тьюринга. А нужно оно только для того, чтобы сделать код чуточку понятнее любому нубу на проекте (в том числе, клиентам библиотек/фреймворков/сервисов). Чтобы было можно быстрее сопоставить примитивы в коде со знанием предметной области. Все.

Другой пример. Когда я обсуждал эту (конечно же, чисто гипотетическую) ситуацию, один человек прямо сказал: все дело в бэкграунде. У тебя, грит, оопный бэкграунд, а придет нуб с функциональным бэкграундом и скажет — ни хрена непонятно. А были бы, грит, чистые функции, он бы все понял мгновенно. И такое высказывание для меня другой признак непонимания ООП. Во-первых, ООП не находится в антагонистических отношениях с ФП. Они отлично уживаются, просто потому, что нужны в разных местах. Во-вторых, НЕТ, НЕПРАВДА, с любым бэкграундом (ФП, ООП, лапша) проект, выдержанный в ОО-духе понять легче. Просто потому, что мы мыслим объектами.

На протяжении долгих лет я встретил ровно одного человека, который излагал (насколько я его понял) то же самое — Эрика Липперта. По удивительному совпадению (это сарказм), кокреатора одного из лучших языков — C#, а также отца Roslyn. На следы жизнедеятельности таких людей я натыкался чаще (взять тот же .NET FCL), но не сильно. Так вот, не дайте угаснуть моей вере в человечество или добейте ее окончательно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.