LINUX.ORG.RU

[вброс]Почему объектно-ориентированное программирование провалилось?


2

7

http://citforum.ru/gazeta/165/

по линку многабукаф, немного для Ъ:

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

Другой крупный критик ООП – это известный специалист по программированию Александр Степанов, который, работая в Bell Labs, участвовал в создании C++ вместе c Бьерном Страуструпом (Bjarne Stroustrup), а впоследствии, уже после приглашения в HP Labs, написал Standard Template Library (STL). Александр Александрович полностью разочаровался в парадигме ООП; в частности, он пишет: “Я уверен, что парадигма ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, только тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой. Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы вы приходите к тому, что оказываетесь в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг – из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле”.

Ричард Столлман (Richard Stallman) также известен своим критическим отношением к ООП, особенно он любит шутить насчет того мифа объектников, что ООП “ускоряет разработку программ”: “Как только ты сказал слово «объект», можешь сразу забыть о модульности”.

Ричард Гэбриел неожиданно сравнивает нынешнюю ситуацию с ООП с провалом эфиродинамики в физике начала 20 века, когда, в сущности, произошла “тихая революция”.

Ответ на: комментарий от shimon

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

В лучшем случае придется строить какие-то рельсы между императивным/ООП кодом и функциональным. Как сейчас существуют всякие F# и Scala, которые базируются на ООП-фреймворках .NET и Java.

Так что полный отказ от ООП почти нереален.

mono ★★★★★ ()
Ответ на: комментарий от annoynimous

>GPS, ускорители как источники излучения для нужд физики, химии и биологии. Это первое, что приходит в голову

Это сейчас. А Нобелевскую премию Эйнштейну дали-таки за фотоэффект который сразу нашел практическое применение

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от DNA_Seq

> Это сейчас

Ну так какая-нибудь теория чисел ждала 400 лет и что? А атомистика так вообще около 2000 тыс.

annoynimous ★★★★★ ()
Ответ на: комментарий от mono

Так что полный отказ от ООП почти нереален.

это примерно как «императивная программа».

cat | grep | sort | less

 — это императивно или декларативно?

Rastafarra ★★★★ ()
Ответ на: комментарий от shimon

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

Вообще «проповедуемый» тобой стиль похож на обычный стиль написания Перл-программ, вот только у этого метода есть одинь серьезный недостаток - постороннему понять алгорим программы придуманный по мере ее написания бывает очень непросто

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от DNA_Seq

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

Artificial_Thought ★★★★ ()
Ответ на: комментарий от Artificial_Thought

ну, чтобы разбираться в парадигмах программирования, необязательно знать практические применения ТО

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

anonymous ()
Ответ на: комментарий от Artificial_Thought

на тот момент правота его была весьма спорна. Есть и более другой пример - уравнение Шредингера поначалу противоречило экспериментальным данным и единственным аргументом Шредингера было «зато красиво и ниипет!», ошбка в экспериментальных данных вскрылась уже позже

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от Rastafarra

> — это императивно или декларативно?

dataflow programming

runtime ★★★ ()
Ответ на: комментарий от DNA_Seq

>постороннему понять алгорим программы придуманный по мере ее написания бывает очень непросто

я приведу аналогию - нормальные писатели строят сюжет, а потом садятся писать

те, что придумывают сюжет на ходу - говно, а не писатели

anonymous ()
Ответ на: комментарий от DNA_Seq

>на тот момент правота его была весьма спорна

это в каком году он про ООП говорил? в пятидесятых?

anonymous ()

По теме - ООП не провалилось, просто:

1) его пихают всюду, куда можно и нельзя, со всеми вытекающими

2) слишком многие не понимают, что есть ООП, называя ООП любой код, в котором присутствует слово class

runtime ★★★ ()
Ответ на: комментарий от anonymous

Суть в том что ТО приняли несмотря на ее спорность. Хотя... нацисткая Германия теорию какого-то еврея Эйнштейна не признала =) что при имеющимся на тот момент техническому уровню поклейке танчиков не мешало

DNA_Seq ★★☆☆☆ ()

А на примере какого языка рассматривается ООП? Тот же питон многие считают неООП из-за отсутствия ключевого слова private.

PolarFox ★★★★★ ()
Ответ на: комментарий от anonymous

Толкин писатл Властелина колец долго, постепенно продумывая сюжет. Т.е в начале написания книги он еще не знал чем все, в конечном итоге закончится.

Но он конечно говно, а не писатель.. да.

mono ★★★★★ ()
Ответ на: комментарий от qnikst

Жизнь вообще штука странная. Но то что нацисты Эйншейна клеймили исторический факт, да и вообще они финансировали на государственном уровне изучение астрала и магии. Вот это действительно были распилы и откаты, не то что сейчас.

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от qnikst

Эйнштейну вообще Нобелевскую премию дали не за ТО. А он на лекции после вручения Нобеля говорил не про свое то открытие, а про теорию относительности!

hibou ★★★★★ ()
Ответ на: комментарий от anonymous

Можно и так, проблема в том что интуиция непредсказуемая штука а бизнес с непредстказуемыми явлениями предпочитает дела не иметь. И бизнесмет скорее наберет 20 ООП-codemonkey чем 2-3 гениев-функциональщиков, потому что гении существа капризные

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от DNA_Seq

>Вот это действительно были распилы и откаты, не то что сейчас.

да ладно.. у нас РПЦ для таких вещей есть.

mono ★★★★★ ()

>>Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом

Теги: Погорелов, Геометрия, читать.

alex_custov ★★★★★ ()
Ответ на: комментарий от creepnee

>Вот я в школе писал игрушки на DarkBasic без классов и функций (все в одном цикле)

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

Yareg ★★★ ()
Ответ на: комментарий от mono

Толкиен начал с языка, потом создал мифологию мира, а это всё равно, что создать сюжет

Но он конечно говно, а не писатель.. да

с художественной точки зрения ценность его опусов сомнительна

anonymous ()
Ответ на: комментарий от DNA_Seq

>И бизнесмет скорее наберет 20 ООП-codemonkey чем 2-3 гениев-функциональщиков, потому что гении существа капризные

ты бизнесмен? пари держу, что нет

anonymous ()
Ответ на: комментарий от runtime

> По теме - ООП не провалилось, просто: 1) его пихают всюду, куда можно и нельзя, со всеми вытекающими; 2) слишком многие не понимают, что есть ООП, называя ООП любой код, в котором присутствует слово class

Поддерживаю. Особенно второе - за все время парадигма ООП реализована всего парой языков (трудоемкий это процесс, хотя бы среду общения объектов сколько надо прописывать, чтобы они могли обмениваться сообщениями). Пихают его и правда всюду - ну не приносит ООП пользы при написании мелкого проекта. Почему-то все понимают нерациональность использования того же asm везде и всюду (низкая скорость разработки, сложная отладка), но никто не задумывается о минусах ООП (которые есть у любой парадигмы) - запихать его в любой проект на дурняк каждый может. Применять ООП стоит там, где оно упрощает задачу (а не «Где попало», как и то же ФП). По моему тему - бредовая и больше выглядит откровенным выбросам гавница на лопасти вентилятора глобального масштаба. Хуже только делать заявления типа «Lisp - гавно!» или создавать темы «Lisp - гавно?!».

Фанатизм многих приверженцев определенных парадигм понятен. Но зачем впадать в подобный фанатизм? Да и большинство противников той или иной парадигмы не знают ее. Я много раз дискутировал по поводу ООП с различными людьми и в большинстве случаев они не понимали, что из себя представляет эта парадигма и представление об ООП кончалась «это там где есть классы и объекты». Многие языки не полностью реализуют так называемую мультипарадигменность путем частичной реализации большинства используемых парадигм. Конечно такие ЯП предельно простые чаще всего и уходят в массы и долго используются. Но представления о парадигме получается из разряда старого анекдота: "(1) - Тебе нравится Битлз? (2) - Нет. Мне вчера Вася напел - мне не понравилось"

Meerkat ()

в тексте по ссылке шизофазийный бред - начиная со Степанова, и заканчивая эфиродинамикой

jtootf ★★★★★ ()
Ответ на: комментарий от anonymous

>Толкиен начал с языка, потом создал мифологию мира, а это всё равно, что создать сюжет

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

с художественной точки зрения ценность его опусов сомнительна

анонимус-эксперт по художественному искуству?

mono ★★★★★ ()
Ответ на: комментарий от mono

>если ты создал мир, то для книги еще нужно придумать героев, их характер, судьбы и связать с миром, и уже тогда получится сюжет

специально для тебя, одарённый ты мой, я сказал: «Придумал мифологию»

анонимус-эксперт по художественному искуству?

его мир настолько рафинирован в своём делении на чёрное и белое, что воспринимается мёртвым

а мир дожен быть живым

anonymous ()
Ответ на: комментарий от alex_custov

>Теги: Погорелов, Геометрия, читать.

Для выведения полного списка аксиом евклидовой геометрии понадобилось больше 2 тыс лет

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от anonymous

хотя - с хера ли лишней? в евклидовой геометрии пятый постулат как раз таки не лишний ни разу

anonymous ()
Ответ на: комментарий от anonymous

>специально для тебя, одарённый ты мой, я сказал: «Придумал мифологию»

мифология - это сильмариллион, но Властелин Колец - это не только мифология, это все-таки отдельное произведение.

его мир настолько рафинирован в своём делении на чёрное и белое

законы жанра. Толкин хотел создать эпос - у него это получилось. И несмотря на черное и белое персонажи ВК вполне живые, во всяком случае 9 хранителей показаны очень хорошо со всех сторон.

mono ★★★★★ ()
Ответ на: комментарий от DNA_Seq

>>Для выведения полного списка аксиом евклидовой геометрии понадобилось больше 2 тыс лет

Это не противоречит тому, что предмет «Геометрия» начинается с аксиом.

alex_custov ★★★★★ ()
Ответ на: комментарий от DNA_Seq

Ну а далее геометрию рефакторили и количество аксиом поубавилось. В любом случае тезис «сначала доказательство, потом аксиомы» верен, аксиомы выводятся именно как наиболее необходимые компоненты доказательств

DNA_Seq ★★☆☆☆ ()
Ответ на: комментарий от mono

>мифология - это сильмариллион, но Властелин Колец - это не только мифология, это все-таки отдельное произведение

жду откровений Толкиена о том, как он сел за стол в один прекрасный день и начал на ходу херачить «Властелина»

И несмотря на черное и белое персонажи ВК вполне живые

для далёкого от реальности хомячка они могут казаться очень даже живыми, не спорю

мне же они напоминают запрограммированных роботов

anonymous ()
Ответ на: комментарий от PolarFox

> А на примере какого языка рассматривается ООП? Тот же питон многие считают неООП из-за отсутствия ключевого слова private.

В питоне далеко не только отсутствие private делает его неООП. ООП-парадигма в нем реализованна не полностью. Лучше всего ООП рассматривать в реализации Smalltalk

Meerkat ()

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

Куда оно провалилось?

KRoN73 ★★★★★ ()
Ответ на: комментарий от Meerkat

>Пихают его и правда всюду - ну не приносит ООП пользы при написании мелкого проекта.

Приносит там, где оно к месту. Гвозди нужно забивать молотком, шурупы - закручивать отвёрткой.

KRoN73 ★★★★★ ()
Ответ на: комментарий от Meerkat

> В питоне далеко не только отсутствие private делает его неООП.

Ну что же еще, открой наконец тайну. Поскольку причин не-ООПшности Питона явно очень много, давай хоть Top5

tailgunner ★★★★★ ()
Ответ на: комментарий от anonymous

> специально для тебя, одарённый ты мой, я сказал: «Придумал мифологию»

Мир Средеземья списан с мифов и легенд Древней Англии если мне не изменяет память) И да - он признан мировой классикой. А прости, мой дорогой литератор-ананимус, что вы считаете «фэнтази с живым миром» - поттериаду? Деление на черное и белое - одна из основ жанра. Фэнтази - это (если говорить на понятном для вас языке) - сказка для взрослых, где деление есть атрибут обязательный. А поджанры не рассматривайте. Дж.Р.Р. Толкиент писал исключительнов жанре классического фэнтази.

Meerkat ()
Ответ на: комментарий от Meerkat

>Фэнтази - это (если говорить на понятном для вас языке) - сказка для взрослых, где деление есть атрибут обязательный

какой-то убогий жанр, непонятно, для кого

деление может быть, но не настолько ж резкое, до тошноты

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.