Почему объектно-ориентированное программирование провалилось
От: Игорь САВЧУК Россия  
Дата: 30.01.11 15:23
Оценка: 290 (11) +1 -12 :))) :))
DEL
Отредактировано 26.11.2014 12:08 Плешнер . Предыдущая версия .
Re: Почему объектно-ориентированное программирование провали
От: shrecher  
Дата: 31.01.11 04:39
Оценка: +8
Здравствуйте, Игорь САВЧУК, Вы писали:

ИС>почему всё же объектно-ориентированное программирование провалилось?


Громкое и бессмысленное название, скорее подходящее для Грета.вру. Да и сама стая это жонглирование именами и цитатами, которые вырваны из контекста.

На деле, мейнстримные языки -- C++, Java пр, вовсю используют объектно-ориентированное программирование. Куда же оно проволилось-то?
Re[2]: Почему объектно-ориентированное программирование пров
От: мыщъх США http://nezumi-lab.org
Дата: 31.01.11 04:59
Оценка: +2
Здравствуйте, shrecher, Вы писали:

S>Здравствуйте, Игорь САВЧУК, Вы писали:


ИС>>почему всё же объектно-ориентированное программирование провалилось?

S>Громкое и бессмысленное название, скорее подходящее для Грета.вру. Да и сама стая это жонглирование именами и цитатами, которые вырваны из контекста.
S>На деле, мейнстримные языки -- C++, Java пр, вовсю используют объектно-ориентированное программирование. Куда же оно проволилось-то?
писать в стиле ООП можно и на чистом Си. я так и поступаю. вот на плюсах есть класс с публичным контрактом, а "унутрення" имплементация скрыта. у меня все точно так и есть. вот h файл. в нем pubic функции. эти функции вызывают другие функции. у меня они вызываются по указателю, и потому они обладают всеми чертами виртуальных функций и легко перегружаются. так что концепции ООП не требуют специальной языковой поддержки, и могут быть реализованы и на чистом си.

кстати, в bat файлах нету функций. а мне нравится процедурное программирование. средствами bat файлов (без вовлечения exe) дописал языковое расширение, позволяющее программировать командные файлы в процедурном стиле. а отсюда уже и до ООП недалеко, что и неудивительно, т.к. ООП программы все равно транслируются в машинный код, который ничего об ООП не знает.

вопрос о провале ООП действительно встает на манагеровских митингах. и вердикт выносится один -- вот обещали нам, что ООП решит проблемы программирования и что программировать станет проще, качественнее, быстрее. но... этого не произошло. в тоже время сейчас набирает популярность рубин, который хоть и тормозит как асфальтовый каток, но действительно ускоряет программирование, попутно понижая порог входимости (плюсы, наоборот, его повышают). а рубин это как бы не ООП. и он набирает силу...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: Почему объектно-ориентированное программирование провали
От: Muxa  
Дата: 31.01.11 06:54
Оценка: 7 (2) +2 :)
ИС>Почему объектно-ориентированное программирование провалилось?
а мужики-то не знают...
Re[3]: Почему объектно-ориентированное программирование пров
От: navrocky  
Дата: 31.01.11 06:59
Оценка: +1
Здравствуйте, мыщъх, Вы писали:

М> в тоже время сейчас набирает популярность рубин, который хоть и тормозит как асфальтовый каток, но действительно ускоряет программирование, попутно понижая порог входимости (плюсы, наоборот, его повышают). а рубин это как бы не ООП. и он набирает силу...


Ruby что-ли (или РубиН :D)? Ну и в каком месте он не ООП? там всё объекты и методы...
Re: Почему объектно-ориентированное программирование провали
От: Vlad_SP  
Дата: 31.01.11 07:07
Оценка: +4 -1
Здравствуйте, Игорь САВЧУК, Вы писали:

вот именно "разобраться и ответить на главный вопрос" — не получилось. Вся статья — исключительно пересказ чужих высказываний (отнюдь не первой свежести, кстати), собственных же тезисов, их доказательства и выводов автора — ноль целых, ноль десятых. Если RSDN Magazine считает возможным опубликовать такую статью — стыдно за RSDN.
Re[2]: Почему объектно-ориентированное программирование пров
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 31.01.11 07:10
Оценка: 1 (1) -1
Здравствуйте, Vlad_SP, Вы писали:

V_S>вот именно "разобраться и ответить на главный вопрос" — не получилось. Вся статья — исключительно пересказ чужих высказываний (отнюдь не первой свежести, кстати), собственных же тезисов, их доказательства и выводов автора — ноль целых, ноль десятых. Если RSDN Magazine считает возможным опубликовать такую статью — стыдно за RSDN.


Ну, как познавательная (стартовая) инфа — сойдёт.
Вселенная бесконечна как вширь, так и вглубь.
Re: Почему объектно-ориентированное программирование провали
От: out-of-the-way США www.tehnoromantik.net
Дата: 31.01.11 07:24
Оценка:
Здравствуйте, Игорь САВЧУК, Вы писали:

ИС>Статья:

ИС>Почему объектно-ориентированное программирование провалилось?
Автор(ы): Игорь САВЧУК
Дата: 30.01.2011
Среди множества идей, которые звучат красиво скорее в теории, чем на практике, объектно-риентированное программирование занимает особое место. Попробуем разобраться и ответить на главный вопрос, почему всё же объектно-ориентированное программирование провалилось?


ИС>Авторы:

ИС> Игорь САВЧУК

ИС>Аннотация:

ИС>Среди множества идей, которые звучат красиво скорее в теории, чем на практике, объектно-ориентированное программирование занимает особое место. Попробуем разобраться и ответить на главный вопрос, почему всё же объектно-ориентированное программирование провалилось?

Это куда оно провалилось?
Программа — мысли спрессованные в код.
Re: Почему объектно-ориентированное программирование провали
От: XRonos Россия  
Дата: 31.01.11 07:31
Оценка: 7 (2) +1
Здравствуйте, Игорь САВЧУК, Вы писали:

ИС>Среди множества идей, которые звучат красиво скорее в теории, чем на практике, объектно-ориентированное программирование занимает особое место. Попробуем разобраться и ответить на главный вопрос, почему всё же объектно-ориентированное программирование провалилось?

А что, какое-то другое программирование не провалилось? По крайней мере ООП победила популярностью и коммерциализацией. А где другие парадигмы? ФП только-только набирает популярность да и то только в своих специфических направлениях.
Может быть вообще любое программирование какое мы знаем провалилось, как таковое?!
Может быть кроме парадигмы нужна ещё методология разработки проекта!? — какие-то правила, дисциплина, общие стандарты и т.п. ?
Бди!
Re: Почему объектно-ориентированное программирование провали
От: Pavel Dvorkin Россия  
Дата: 31.01.11 07:57
Оценка: 17 (7) +23
Здравствуйте, Игорь САВЧУК, Вы писали:

Читать не буду, потому что неинтересно. А вот один момент отмечу. Независимо от того, прав автор или нет.

В названии статьи используется весьма не новый демагогический прием. "Почему оно провалилось...". Тезис, который по меньшей мере спорный, подается как бесспорный (оно провалилось, вне сомнения), и остается лишь выяснить — почему ?

Этот прием совсем не нов и аппелирует не к сознанию, а к подсознанию. Его цель — заставить читающего подсознательно согласиться с высказываемой точкой зрения. Для многих высказаться вопреки общепринятой точке зрения очень нелегко, поэтому когда ему что-то подается как общепринятая точка зрения, он подсознательно вынужден с ней согласиться.

Почему все вкладчики доверяют ABC банку ? Почему все домохозяйки используют стиральный порошок XYZ ? Это все тот же подход, и целью его является вовсе не выяснение, почему они доверяют или используют, а стремление на подсознательном уровне внедрить убеждение, что доверяют или используют. Все. А ты почему не бежишь в этот банк или за этим порошком в таком случае ?

Не хочу обсуждать, насколько такой прием явлвется корректным при рекламе банковских услуг или стиральных порошков, но в научной и технической литературе он должен быть безусловно и категорически осужден.
With best regards
Pavel Dvorkin
Re: Почему объектно-ориентированное программирование провали
От: okman Беларусь https://searchinform.ru/
Дата: 31.01.11 08:15
Оценка: +1 :)
Здравствуйте, Игорь САВЧУК, Вы писали:

ИС>Статья:

ИС>Почему объектно-ориентированное программирование провалилось?
Автор(ы): Игорь САВЧУК
Дата: 30.01.2011
Среди множества идей, которые звучат красиво скорее в теории, чем на практике, объектно-риентированное программирование занимает особое место. Попробуем разобраться и ответить на главный вопрос, почему всё же объектно-ориентированное программирование провалилось?


ИС>Авторы:

ИС> Игорь САВЧУК

ИС>Аннотация:

ИС>Среди множества идей, которые звучат красиво скорее в теории, чем на практике, объектно-ориентированное программирование занимает особое место. Попробуем разобраться и ответить на главный вопрос, почему всё же объектно-ориентированное программирование провалилось?

"Lisp-еры наступают: ООП-шники остались выброшенными на улицу".
Такой заголовок я бы дал этой статье, будь я ее автором.

Гэбриэлу в оппоненты нужно было кого-нибудь с форумов RSDN поставить.
От была бы дискуссия !
Re[2]: Почему объектно-ориентированное программирование пров
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 31.01.11 08:52
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Этот прием совсем не нов и аппелирует не к сознанию, а к подсознанию. Его цель — заставить читающего подсознательно согласиться с высказываемой точкой зрения. Для многих высказаться вопреки общепринятой точке зрения очень нелегко, поэтому когда ему что-то подается как общепринятая точка зрения, он подсознательно вынужден с ней согласиться.


А ещё этот приём акцентирует внимание на первой части предложения, снижая внимание со второй.

Мсье Пуаро хочет знать, какого цвета была пара сапог, которые у Ральфа были в гостинице, – коричневого или черного? От этого многое зависит.
...
Откровенно признаюсь, что вопрос о цвете был поставлен лишь для того, чтобы скрыть цель моих расспросов.
Вы знаете, какие результаты дали наведенные ею справки. Выяснилось, что у Ральфа Пейтена действительно были с собой сапоги.

Вселенная бесконечна как вширь, так и вглубь.
Re[2]: Почему объектно-ориентированное программирование пров
От: igna Россия  
Дата: 31.01.11 08:59
Оценка: -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>В названии статьи используется весьма не новый демагогический прием. "Почему оно провалилось...". Тезис, который по меньшей мере спорный, подается как бесспорный (оно провалилось, вне сомнения), и остается лишь выяснить — почему ?


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

PS. Встречается еще такой демагогический прием, когда полемический прием объявляется демагогическим. И этот прием полемическим уже не бывает никогда.
Re[3]: Почему объектно-ориентированное программирование пров
От: Pavel Dvorkin Россия  
Дата: 31.01.11 09:10
Оценка: +5
Здравствуйте, igna, Вы писали:


PD>>В названии статьи используется весьма не новый демагогический прием. "Почему оно провалилось...". Тезис, который по меньшей мере спорный, подается как бесспорный (оно провалилось, вне сомнения), и остается лишь выяснить — почему ?


I>Этот прием в зависимости от контекста может быть как демагогическим, так и полемическим. На мой взгляд в данном случае имеем дело с полемическим.


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

Если бы автор выбрал нейтральное название (ООП — успех или неудача, к примеру), а в тексте статьи начал доказывать, что это не только неудача, но и просто провал — никаких возражений не было бы с моей стороны.
With best regards
Pavel Dvorkin
Re: Почему объектно-ориентированное программирование провали
От: samius Япония http://sams-tricks.blogspot.com
Дата: 31.01.11 09:18
Оценка: 47 (1) +1
Здравствуйте, Игорь САВЧУК, Вы писали:

ИС>Среди множества идей, которые звучат красиво скорее в теории, чем на практике, объектно-ориентированное программирование занимает особое место. Попробуем разобраться и ответить на главный вопрос, почему всё же объектно-ориентированное программирование провалилось?


Допустим, что ООП таки провалилось, или не состоялось. Так почему же собственно?
В итоге, как я понимаю, в качестве ответа на вопрос "почему" предлагается следующее:

Грэм:

половина всех концепций ООП являются скорее плохими, чем хорошими, в связи с чем он искренне сочувствует ООП-программистам, тогда как вторая половина от оставшихся концепций — и вовсе не имеет никакого отношения к ООП,

Я с ним согласен в отношении второго. Но причину провала это не объясняет.
Степанов:

Но реально никто не начинает с аксиом, все начинают с доказательств....
Именно из-за этой неразберихи в ООП так популярен рефакторинг — из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле"

разве в других парадигмах рефакторинг исключен? Я вообще думаю что рефакторинг это следствие отношения к предварительному проектированию и собственно самому коду.

Гэбриел:

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

(Кстати, там бардак с окончаниями, если под ООП подразумевается программирование, а не парадигма. А в заголовке именно программирование — оно)
Да, возможно было навязано. Некрасиво, согласен. Но это не причина провала.

Возможно стоит сменить название на следущее: Что считают гуру причиной провала ООП?
Re[4]: Почему объектно-ориентированное программирование пров
От: igna Россия  
Дата: 31.01.11 09:19
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Корректная полемика предполагает как минимум в начале формулировку разных точек зрения, после чего можно перейти к своим аргументам в пользу одной из них. Когда же с самого начала спорное утверждение подается как бесспорное и не объясняется почему (а в заголовке этого сделать нельзя) — это именно демагогия.


Да? А оригинальный заголовок (Objects Have Failed) это тоже демагогия или уже можно?
Re[2]: Почему объектно-ориентированное программирование пров
От: igna Россия  
Дата: 31.01.11 09:36
Оценка: 3 (1)
Здравствуйте, samius, Вы писали:

S>Возможно стоит сменить название на следущее: Что считают гуру причиной провала ООП?


Не берусь говорить за гуру, на мой взгляд основная причина провала это наследование реализации.

Простейшая задача имеет порой заумную реализацию в ООП. Например требуется реализовать сравнение на равенство определенное следующим образом: два объекта равны, если все их составные части попарно равны. На шаблонах C++ реализация записывается буквально в соответствии с определением и в одну строку, в ООП, на том же C++, или на Java, или на С# начинаются пританцовывания на ровном месте с проверкой типа и т.п.
Re[3]: Почему объектно-ориентированное программирование пров
От: Lloyd Россия  
Дата: 31.01.11 09:41
Оценка: :)
Здравствуйте, igna, Вы писали:

I>PS. Встречается еще такой демагогический прием, когда полемический прием объявляется демагогическим. И этот прием полемическим уже не бывает никогда.


По-моему, это утверждение является демагогическим по твоему же определению.
Re[4]: Почему объектно-ориентированное программирование пров
От: igna Россия  
Дата: 31.01.11 09:44
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>По-моему, это утверждение является демагогическим по твоему же определению.


И это тоже.
Re: Почему объектно-ориентированное программирование провали
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 31.01.11 09:48
Оценка: 3 (3) +7

Но факт остаётся фактом: сторона представлявшая объектно-ориентированное программирование, во время открытой дискуссии с противниками под смех зала, даже запуталась в своих же концепциях. Люди вспоминают, что у всех создалось стойкое впечатление, что аргументация Lisp'еров была куда убедительней и последовательней, чем сторонников ООП


Факт того, что два мужика с красной половины стола были более убедительны, чем два два путающихся в терминах мужика с синей половине стола говорит о... Только о том, что мужики с красной половины были более убедительны а с синей путались в терминах. Ничего больше. Странно по мастерству оратора определять какие-то характеристики технологии. Может те кто ООП поддерживал вообще первый раз в жизни в шоу участвовали и напились ночью до этого.

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


Пустой аргумент, ни в пользу ООП ни против. Какая разница что с чем связали?

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


Проведение аналогии программирования с математикой без обоснования данной аналогии. Они бы еще популярную аналогию с архитектурой вспомнили или менее популярную с сексом. Особенно мне понравилась фраза — "сначала вы должны начинать развивать алгоритмы". Прямо вот везде. Пишем word — сначала развивать алгоритмы, куда без них. Что в операционной системе самое важное? Ну алгоритмы естественно, что же еще . Мда. Народ смотрит со своих университетских колоколен и свято верит, что все программирование — это решение систем уравнений и рисование фракталов. А операционные системы и прикладное ПО — это так, мелочи.

Именно из-за этой неразберихи в ООП так популярен рефакторинг — из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле


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

ООП ради самой ООП уже давно превратилось в замкнутый круг. Конечно, можно попытаться считать C# в .NET 3.5 с более чем 50,000 реализованных классов "венцом эволюции". Добавить в следующей версии .NET ещё миллион классов – что может быть более правильным и более вожделенным, с точки зрения ООП-программиста? Так вы говорите, это и есть то самое бегство от сложности?


Я, конечено, очень уважаю Столлмана. Могучий товарищь. Gcc. Emacs. Но тут как бы ничего не говорится о том, как именно большое или малое количество классов является сильной или слабой стороной парадигмы. Если вспомнить, сколько функций в том же emacs...

Томас Поток из Oak Ridge National Laboratory даже провел масштабное прикладное исследование (9), которое продемонстрировало, что нет никакой заметной разницы в производительности между программистами, работающими в ООП и в обычном процедурном стиле программирования.


Тут можно даже не кликать на оигинальный документ и не смотреть, что исследование проводилось в одной (!!!) лаборатории IBM с шестьюстами пятьюдесятью сотрудниками. Разве в парадигме ООП что-нибудь декларировалось что "мы ускорим написание кода в 20 раз"? ООП — это парадигма написания, которая упрощает поддержку и модификацию БОЛЬШИХ систем. Понятно что консольную утилиту пофг в каком стиле писать — хоть ООП, хоть процедурном, хоть функциональном без спецэффектов.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.