Просмотров: 3245

Комментарии к статье про ООП. Карфаген должен быть разрушен


К моей давней обзорной статье «Почему объектно-ориентированное программирование провалилось?» до сих пор приходят комментарии, и некоторые из них не только размером в полотна, но при этом ещё и умные и по космически глобальные (как минимум — дают почву для размышлений). Я решил вынести 2–4 таких стоящих комментария моих посетителей в отдельный пост, ну, так сказать, для затравки нового обсуждения.

Сейчас я работаю над продолжением к «Почему объектно-ориентированное программирование провалилось?» (хм, странно, что это интересно здесь такому широкому кругу людей), потому что материала по этой теме на самом деле просто завались. Поэтому пока эта тема по-любому крутится у меня в голове, даю комментарии для разогрева, ну и напишу в комплекте к этому посту и свой ответ на главный вопрос, с которым меня уже достали — «Зачем?» (имеется ввиду немое продолжение вопроса — попираешь святыню, а?).

«Зачем я это делаю?» — спрашивают меня часто, — «может, ты против ООП?» — произносят хитро щурясь. Нет, отвечаю честно я, меня просто поражает насколько здесь (бывший СССР) достаточно однотипные и бело-черные возрения на всё и вся,  — какое явление не возьми, везде есть своё жесткое табу и святыня.

Когда я работал в Чикаго в своей первой команде американских разработчиков, помню меня поразил тот плюрализм взглядов и мнений, точек зрений и подходов, с которым я столкнулся. У нас же — любые отклонения «от политики партии» вопринимаются чрезвычайно болезненно, если не сказать, что агрессивно. Как говорили в фильме про Шурика: «грешно смеяться над больными людьми», наверное отчасти это верно, но я попробую…

Я уже год как не программирую вообще, и похоже, к своему основному ремеслу (программирование), которому отдал уже лет 11, не вернусь, наверное, никогда, но меня до сих пор поражает в худшем смысле этого слова, это почтение, с надрывом и дрожанием губ, у менеджеров-методологов к этой, в общем-то обычной и будничной концепции, — ООП. Все признают, что да, это не та самая серебрянная пуля, но… и тут же, как говаривал сбежавший из Microsoft по этой причине Джоэл Спольски, норовят изнасиловать и переубедить «очередную заблудшую овцу».

Когда журнал RSDN напечатал ту самую мою статью — там мне доверительно и максимально уважительно подсказали, что я, дескать — «бунтарь». А нифига, дорогая редакция, и тут дело вот в чем.

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

«Изобретать велосипеды?!» — язвительно заявит вам старший инженер по методологии. Зачем же самостоятельно думать и искать в сегодняшнем мире готовых полуфабрикатов?

Чтобы мы оставались всегда людьми — чтобы мы искали новое, чтобы задавали критические вопросы, чтобы… сомневались. Искали, для того, чтобы идти вперед, а не стоять на месте с важным видом. Короче, роботы меня не поймут, а те, кто ещё сохраняет способности думать и мыслить независимо — по… (хотел сказать покайтесь), подумайте над всем, что я пишу по этой теме. Да и вообще, о жизни задумайтесь.

Ну, а пока я пишу продолжение — почитайте, вон, что люди умные, не то что я, написали ниже (из комментариев). И, Карфаген всё-таки, должен быть разрушен, куда уж без этого...

 


Системный обобщающий вброс для старта процесса быстрого мыслегенезиса читающего:

Любая технология, как и люди, проходит три фазы своего эволюционного развития, — это юность, зрелость и старческий маразм.

Чтобы быть кратким, быстро проиллюстрирую это на cd-болванках. Сначала эта технология казалась очень дорогой, медленной (скорость 2x) и малодоступной, — короче непрактичной (юность), но постепенно она была доработана до приемлемого уровня, цены упали, скорости возрасли (30–40x) — CD-привод стал уже повсеместным (зрелость технологии).

И, наконец, дальнейшие необоснованное форсирование и попытки тупо развивать эту технологию и дальше привели к тому, что приводы на скоростях 60–70x банально рвали диски на части (которые изначально были не рассчитаны для таких перегрузок), потому дальнейшее повышение скорости было запрещено, развитие отчасти остановлено.

Итак, попытки по-тупому бесконечно педалировать понравившуюся и уже привычную технологию и далее (эффект сыра, найденного когда-то в каком-то уже привычном нам месте) привели к тому, что любая технология НЕМИНУЕМО вступает в фазу старческого маразма. Не в каждом творческом коллективе есть свой Моисей, способный провести от старого к новому — отсюда неизбежный эволюционный тупичок, под названием «старческий маразм».

Это — общая схема развития любой технологии, в том числе той же эфиродинамики, о которой упомянули в статье, разве что её прибили политические конкуренты ещё в безобидном зародыше — в фазе ранней юности, — не дав показать на что она способна (а иначе, верю, мы жили бы сейчас в СОВСЕМ ДРУГОМ МИРЕ, а не хвалились, что где-то дескать блеать Великая Теория Относительности, развивавшаяся больше века лучшими умами человечества доросла уже до того, что ажно корректирует время на часиках в GPS!!!1 одын один).

ТЕПЕРЬ ПО МАТЕРИАЛУ!

ООП как технология — вступила в фазу СТАРЧЕСКОГО МАРАЗМА, и люди мыслящие независимо начинают понемногу замечать это. Переход от дисков к твердотельным устройствам хранения займет не один год, да, но старая привычная и признанная технология оптических дисков ОБРЕЧЕНА, эта очевидна, это вопрос просто времени, впрочем, в равной степени это касается и ООП. Бесполезно обсуждать хороша она или плоха — она не позволяет решать задачи колоссальной сложности стоящие перед нами уже в ближайшем будущем, и этого достаточно.

Пока мне интересна разница лишь в восприятии: что кто-то видит на перед будущее, как это часто случается будучи гением, а кто-то (большинство) послушав радио и бессознательно рефлексирует бездумно ретранслируя то, что ему там сказали местячковые авторитеты вчерашнего дня. Тут аргумент НА САМОМ ДЕЛЕ ОДИН: нас много, а потому — лемминги не могут ошибаться. Ага. Большевики с броневичка — «вся власть советам!»

Поэтому, извините за просто неизбежные космические обобщения, выходящие далеко за рамки этой приземленной статьи, но когда пенсионеры активно ратуют за коммунизм, даже после всего того голодомора и репрессий, которые над ними в свое время учинили коммуняки, а молодежь — за либеральные реформы после лихих и бандитских 90-ых, — мы наблюдаем противостояние не политических систем или технологий в нашем случае, а конфликт ПОКОЛЕНИЙ, который является не техническим феноменом и некоей конкуренцией объективных качеств различных систем/технологий, и которые бесполезно рассматривать в таком контексте (как это наивно пытаются делать выше), потому что это чисто ПСИХОЛОГИЧЕСКИЙ ФЕНОМЕН. Это же касается и демократий всяких, которые в 21 веке вдруг начинают работают как-то не так, это касается ещё в большей степени и технологий программирования.

Смею быть уверенным, что я дал кратко ответы на все вопросы, которые прозвучали в вышеприведенных комментариях. Я _вижу_, что у ООП — нет будущего.

Корфаген должен быть разрушен.


Надо же, год статью комментируют. Комментарии полезней, чем сама статья.

Я не хочу повторять уже тысячу раз написанное… С чем-то я согласен, с чем-то нет.

..Напишу своё. Обойдусь без умных слов, засыпаю уже…

Я начинал программировать на программируемом калькуляторе. А кто-то на нём работал и получал за это деньги. Всех всё устраивало..

Появились первые ПК… Стали какие-то подобия окошечек. Информация выводилась на экран. Калькуляторы уже не устраивали. Писали на ассемблере, да на бейсике. Паскаль, си, прочее…

Появился графический интерфейс. Теперь и глаза меньше устают и работать приятней. Старый дос — для студентов. Много всяких окошечек, возможностей…

На рынке ПК всё-таки немало зависит от конечных потребителей. Им надо:

- дёшево

- красиво (!)

- просто

- функционально

- удобно

Чтобы решить проблемы с красивостями надо навызывать кучу функции, объявленных незная-где. Написать кучу мутного кода, который ни к предметной области вообще не относится…

В той же Delphi делается это гораздо быстрей.

Модули, как было сказано выше, неплохо справились бы с этой задачей.

Но, надо учить кучу названий однотипных функций, которые делают одно и то же.

.

Реализация ООП в средствах разработки даёт преимущества. Не надо думать о деталях реализации. Наляпал и готово. Для большинства программистов ошибок в этом случае меньше будет, т.к. модули многократно проверены и совместимы с целевой ОС. К тому же ошибки — не самый важный критерий для нынешнего пользователя.

.

Даже если эти умные дяди говорили это, то им всё-равно. Мировое имя у них есть. У меня его нет. Я могу посвятить всю жизнь свою разработке каких-нибудь алгоритмов шифрования, к примеру. Но через 40 лет меня обманут и украдут мою разработку. Но, вероятнее всего, я проведу свою жизнь впустую, потому что не имею таких лабораторий, знаний, опыта.

.

К чему я это? К тому что нет заказа на программирование вручную в обыденности. Есть ширпотреб. концепция RAD подходит для этого лучше всего. А основана она, думается мне, на ООП. Сиди и знай свое место! Именно эта стратегия себя оправдывает. Требуется сосредоточится на сущности вопроса и даже не надо знать, как это всё целиком работает.

.

P.S. Концепция ООП дала программистам абстракцию и контейнер для процедур с данными. Были модули — контейнеры для процедур, но не для нескольких экземпляров данных, были классические структуры для хранения данных. Аналога этому я не встретил ни в комментариях, ни в статье… Конечно, это не панацея. Но не стоит втравливать в грязь этот метод.


Greetings!

Прочитав статью так и не понял каковы причины провала ООП и что вообще стоит считать провалом. Не буду спорить с аргументами Кнута, Буча, Степановым, поскольку почти весь мой проф опыт (4 год) — 80% ООП, 19% SQL, 1% lisp/prolog/other, т.е. по своему опыту и академическим знаниям сравнивать я особо и не могу.

Но что я могу сказать от себя.

Как я вижу один из популярных вариантов ЖЦ парадигмы:

- предистория: сначала парадигмы (ООП в нашем случае) нету, более-менее номарльно обходятся без нее;

- зарождение: появляется парадигма (в научной статье, например, как концепция), первые експерименты, инструменты, компиляторы, первые успешные использования; Все видят, что это хорошо;

- предмейнстрим: популярность парадигмы набирает обороты («ты что, ещё не пишешь на обьектах?! "); Серебряная пуля?

- мейнстрим: парадигма применяется почти повсеместно (иногда и не в совсем правильных случаях) как само собой разумеющееся;

- и тут появляются люди, которые замечают недостатки парадигмы, пытаются их показать всем остальным; Иногда это у них почти получается (waterfall, например, применяется очень редко, RUP — тоже, даже в больших организациях, насколько мне известно, но все-равно применяются т.к. в некоторых случаях ничего лучше не придумано);

С ООП сейчас то же самое. Оно стало мейнстримом, кто-то заметил недостатки, пытается их раскрыть/показать, может что-то и получится, но ИМХО, не в ближайшый десяток лет.

Так, к слову, то же самое будет и с Аджайлом (сейчас он в мэйнстриме, не парадигма, а методология, но все-же:)), и с функциональным программированием (ихмо, оно щас в предмейнстриме).

И это — нормально.

Вместо заключения.

Что же все вышесказанное (включая и статью) для нас всех означает в практическом плане? Ничего

Как по мне:

ентерпрайзу — джаву с ООП; Для distributed, мат.вычислениям, исследователям — функциональщину; Студентам — паскаль и си-шарпы с джавой; Миру — мир;

А вы живите, любите, учитесь и совершенствуйтесь, и тогда никакой провал нам не будет страшен:)


Чёрт возьми, какая архитектура, какая методология, какие аксиомы, когда всё решают деньги? ООП позволяет производить код в промышленных масштабах, не особо напрягая мозг программиста (т.е. на коленке настрочил — и работает, а как оно там во всеобщей связи устроено — вопрос вторичный), позволяя таким образом экономить время, а следовательно — деньги. А небольшие проблемы типа нескольких десятков тысяч классов — не беда! Наймем несколько тысяч индусов — и они все под нашим руководством переделают. Работать, правда, будет плоховато, но кого это волнует? Главное — слить продукт пользователю с минимальными затратами и получить прибыль здесь и сейчас, а как оно там дальше пойдет — разберемся.

Так что первый комментатор прав — ООП себя доказало. Вполне.

 

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

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , ,
Эта запись опубликована: Среда, 17 августа 2011 в рубрике Литдыбр.

1 комментарий

Следите за комментариями по RSS
  1. Выскажу свое мнение, – в данный момент, весь этот спор, безусловно, интересен, но все с большим ускорением теряет былую актуальность. Язык – это уже не конечный исполняемый файл, а скорее, наоборот, уже «платформа» – это то, что занимает (неизбежно займет) больше половины всего рынка ПО. Т.е., есть «подземелье» - .Net, Java и пр., и есть «над» - синтаксис и парадигма, ходящие «друг в друга» на уровне данной платформы. А все остальное (COBOL, Си, SQL) – большей частью, уже нишевое. Ну и в заключение вопрос, - а на чем написан server-side у twitter, и может быть уже давно дан выбор multi-paradigm over ООП, а мы все ходим и смотрим не в те стекла?

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз