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 века, когда, в сущности, произошла “тихая революция”.

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

Согласен. Но чаще всего оно к месту при написании крупного проекта. Пихать ООП в калькулятор простейший скажем (как это учат делать студентов в вузах) - дебелизм (хотя какое ООП на цэпэпэ - тоже вопрос скользкий).

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

Погоди. Еще лисперы не подтянулись в полном составе

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

Сюжет в фентези как сюжет в порнофильме... =)

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

Так убого, что вы его не поняли). Ну не знаю даже. Начните что ли с русских народных сказок. Может деление там будет вам понятнее.

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

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

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

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

это всего-лишь лично твое восприятие книги.

mono ★★★★★
()

Добавлю аналогию, может даже хорошую.

У архитектуры x86 есть аппаратное переключение контекста(через TSS), но большая часть систем переключает его программно. Есть многосегментная модель, но большинство пользуются плоской.


вообщем ООП не провалилось, а просто в основном используются только несколько самых распространённых приёмов.

(X.500 ---> LDAP) и т.д.

короче нужно ООП модель упростить и выкинуть всякий изврат.

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

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

хорошо, а что считает достойным для прочтения анонимус-литератор?

mono ★★★★★
()

А мне ООП никогда не нравился.

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

Но после увиденных примеров того, как реализуют и используют ООП в современных языках программирования, посетила мысль, что ООП придумывался не для тех дятлов-пейсателей, что стали его использовать налево и направо. Вы только посмотрите на убогость тех костылей, что они городят на java при проектировании, например, списочных структур! Эти реализации внешних и внутренних итераторов скорее напоминают игру в теннис в скафандрах.

И ещё мне не очень понятны те придурки, что пишут «для людей». Эти Маринины-Дашковы от программирования уже заи*али своими заботами о мифических тупорылых читателях своих шэдэвров. Тут либо ты умеешь подобрать необходимый инструмент и использовать его для выражения алгоритма, либо не умеешь. А если в голове бардак, то ООП будет только автоматизировать бардак - и, в итоге, получится автоматизированный бардак.

P.S. Да, мне нравится Forth.

anonymous
()

я полностью согласен с посылом, что ООП в чистом виде провалилось

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

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

-------------------------------

я прыснул и накатил стопарик

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

>Так убого, что вы его не поняли

там понимать нечего - деление на «белое-чёрное» для имбецилов, по типу библии

это может впечатлить в детстве, когда веришь, что бывают абсолютно злые и абсолютно добрые люди, но не в зрелом возрасте же

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

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

оно и видно - совершенно добрые и совершенно умные vs совершенно злые и совершенно тупые

клюква, одним словом

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

>это всего-лишь лично твое восприятие книги

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

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

>А как же голлум?

раздвоение личности

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

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

Штаны Арагорна в Development уже на третьей странице. ЛОР - торт.

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

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

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

В *опу.

Ничего, что я так кратко?

Могу пояснить немного подробнее: сколько уровней вложенности может держать человек одновременно и сколько уровней вложенности тебя заставляют держать в голове современные реализации ООП? Тебе хоть раз удалось реально абстрагироваться от подробностей реализации предыдущих объектов при реализации цепочки наследования?

anonymous
()

Интересно, а почему противопоставляют ООП и ФП? Я думал, что есть ещё такое понятие, как процесс. Понятия возвращения результата почти не существует - есть взаимодействие. Понятия создания заменяется на понятие деления, или если процесс постоянно существует, то на смену состояния. Круто же.

И вообще верю, что программирование придёт к эдакому дзен-фрактальному стилю. Меняем несколько параметров и программа-арканоид компилится в ось с основным функционалом роутера...мммм...это всё грибы.

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

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

>Но чаще всего оно к месту при написании крупного проекта.

Безусловно.

ихать ООП в калькулятор простейший скажем (как это учат делать студентов в вузах) - дебелизм


Ну, во-первых, учить применение ООП в крупных проектах, начиная сразу с крупного же проекта - это перебор. Так что учить нужно, как раз, на простых примерах.

А, во-вторых, я часто для простых скриптов плотно использую ООП. Когда работаю с толстым фреймворком. Это просто намного быстрее и проще выходит. Обработать, скажем, пару миллионов сообщений форума по определённой методике - 3..4..5 строк. А если писать то же самое на низком уровне с прямыми SQL-запросами, там и в пару десятков строк выливаться может :)

Если же речь идёт о какой-то мелочи на практике, а не в обучении и о написании ООП-механизмов специально и исключительно для неё - то да, это вполне тянет на стрельбу из пушек по воробьям.

Хороший программист - он не потому хороший, что знает как любой язык заставить выстрелить в ногу, а потому что он знает, в каких ситуациях из чего лучше стрелять :)

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

Толкин не самый хороший пример отношений и характеров. У него больше сам мир важен. Герои да, однобокие. В Поттере, например, совсем не так. Не слишком много описаний мира, но зато смешанные герои. Вроде и плохие/хорошие, но вроде и не очень.

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

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

Стандартно. 7±2.

и сколько уровней вложенности тебя заставляют держать в голове современные реализации ООП?


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

Тебе хоть раз удалось реально абстрагироваться от подробностей реализации предыдущих объектов при реализации цепочки наследования?


Я только так и делаю. Иначе теряется весь смысл затеи. Каждый объект у меня - это полностью законченный чёрный ящик, имеющий определённый унифицированный интерфейс. Что и как он там наследует - в 90% случаев мне знать не нужно. Собственно, я в общем случае и не могу знать - объекты часто приходят разные. Но если я должен вывести имя объекта, я буду вызывать метод title() и мне будет пофиг, метод это, переменная с автоматическим геттером и на каком уровне наследования они обрабатываются. Я занимался этим только когда создавал объект. Я его закончил - я забыл его устройство. Это мой принцип. Я слишком ленив и у меня слишком плохая память, чтобы работать как-то иначе :)

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

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

ты сейчас бред сказал, ты хоть знаешь что такое патология?

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

>Интересно, а почему противопоставляют ООП и ФП?

Почему противопоставляют? Есть же всякие OCaml'ы. Да и Smalltalk тоже... :)

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

>У него больше сам мир важен

ну, мир у него прорисован красиво, ничего не скажешь

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

>знаю, вася, знаю

так с чего бы любить признанное классикой произведение - это патология?

и уход от реальности считается патологией

русские народные сказки - это тоже патология?

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

> что считает достойным для прочтения анонимус-литератор?

влезу. научпоп, научную фантастику и книжки по истории.

а читать фентезню... эти бесполезные, убогие и линейные до отвращения бредни... чего ради?

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

>так с чего бы любить признанное классикой произведение - это патология?

ты любишь только то, что признано чем-то выдающимся?

русские народные сказки - это тоже патология?

русские народные сказки тоже для взрослых?

anonymous
()

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

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

курю, бухаю, наркоманю, ебусь

а что?

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

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

иди заводи дедушку/жену/детей/собачек

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

можно подумать одно другому мешает. Тут полно женатых и с детьми. А несостоятельность ООП сама собой не обсудится!

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

>Интересно, а почему противопоставляют ООП и ФП?

всегда есть выбор: либо ты делаешь то что тебе нравится, либо идешь за большинством.

те кто пишет на ООП, писали и на ФП. Если ООП такое дерьмо, то почему на нем пишут?? Это равносильно что у всех бы был первый компьютер с UNIX системой, но в конце концов большинство бы выбирали Windows... LOL

Drdiesel
()

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

Что-то я не пойму, с каких это пор математика стала заканчиваться аксиомами а не начинаться с них? А как же достопочтенный Эвклид и его «Начала»? Ведь там все основано на аскиомах доказательства всех теорем, на которых строится вся геометрия. основываются на этих аксиомах! А как же аксиомы в математике? В других науках? В том числе и программировании.

Но реально никто не начинает с аксиом, все начинают с доказательств.

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

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

> а ты вот нах сюда пришёл такой весь умный из себя? с таким серьёзным >видом оставил здесь свой высер, будто от этого что-то поменяется

иди заводи дедушку/жену/детей/собачек

Ага, а ты такой умный пришел сюда оставить этот коммент....

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

> а ты такой умный решил откомментить мой коммент

а я не умный

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