OberonCore
https://forum.oberoncore.ru/

Почему ООП провалилось
https://forum.oberoncore.ru/viewtopic.php?f=27&t=2886
Страница 1 из 3

Автор:  Alexey Veselovsky [ Воскресенье, 03 Октябрь, 2010 12:12 ]
Заголовок сообщения:  Почему ООП провалилось

Цитата:
Игорь Савчук подготовил заметку, резюмирующую позицию противников объектно-ориентированного программирования. Статья написана на основе публикации Ричарда Гэбриела и родившихся после ее выхода обсуждений, в которых приняли участие целый ряд известных программистов, от редакции американского журнала Др.Добс, до таких ученых как Энди Танненбаум.

http://blogerator.ru/page/oop_why-objects-have-failed
http://www.opennet.ru/opennews/art.shtml?num=28148

Автор:  Alexanbar [ Воскресенье, 03 Октябрь, 2010 15:49 ]
Заголовок сообщения:  Re: Почему ООП провалилось

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

Автор:  Илья Ермаков [ Воскресенье, 03 Октябрь, 2010 17:07 ]
Заголовок сообщения:  Re: Почему ООП провалилось

На эту тему - как раз свежее обсуждение на Педсовете:
http://pedsovet.org/forum/topic7190.html

Автор:  Alexey Veselovsky [ Воскресенье, 03 Октябрь, 2010 17:13 ]
Заголовок сообщения:  Re: Почему ООП провалилось

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

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

Отодрали от ООП фасад и прилепили на процедурной язык. Назвали явой, c# или что там нынче модно.

Автор:  Alexanbar [ Воскресенье, 03 Октябрь, 2010 18:01 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexey Veselovsky писал(а):
Проблема в том, что то, что нынче называют ООП, от ООП имеет только термины. По сути современное ООП, это просто набор терминологии, которую утащили из настоящего ООП, куча лозунгов, вокруг этого маркетинга и шумихи + немного синтаксического сахара для старых добрых процедурных методик (модульность, абстрактные типы данных, манипуляции с указателями на функции для диспетчерезации вызовов). Всё.

Отодрали от ООП фасад и прилепили на процедурной язык. Назвали явой, c# или что там нынче модно.

Как говорится, хоть горшком назови - только в печь не ставь.

Видать, знали, что отдирать. И какая от этого польза может быть.

Автор:  Alexey Veselovsky [ Воскресенье, 03 Октябрь, 2010 18:18 ]
Заголовок сообщения:  Re: Почему ООП провалилось

У меня такое ощущение иногда складывается, что народ считает ООП тем, где написав имя переменной и поставив точку (или ->, от языка зависит) IDE выдаст список всего того, что с этой переменной можно сделать (список методов и полей, ага). Это считается если не единственным свойством, то основным.

Автор:  Валерий Лаптев [ Воскресенье, 03 Октябрь, 2010 18:54 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Цитата:
Типы записей (указательные типы) могут переопределяться, обеспечивая таким образом полиморфизм.

Проясните этот момент, пожалуйста...

Автор:  Alexanbar [ Воскресенье, 03 Октябрь, 2010 19:03 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexey Veselovsky писал(а):
У меня такое ощущение иногда складывается, что народ считает ООП тем, где написав имя переменной и поставив точку (или ->, от языка зависит) IDE выдаст список всего того, что с этой переменной можно сделать (список методов и полей, ага). Это считается если не единственным свойством, то основным.


Народ может считать по-разному, но то, что IDE выдаёт после точки всё, что можно сделать с объектом, крайне удобно.

Автор:  Alexey Veselovsky [ Воскресенье, 03 Октябрь, 2010 19:07 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexanbar писал(а):
Народ может считать по-разному, но то, что IDE выдаёт после точки всё, что можно сделать с объектом, крайне удобно.

А в BB этого нет, следует ли из этого, что BB крайне не удобен? ;-)

Автор:  Alexanbar [ Воскресенье, 03 Октябрь, 2010 19:18 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexey Veselovsky писал(а):
Alexanbar писал(а):
Народ может считать по-разному, но то, что IDE выдаёт после точки всё, что можно сделать с объектом, крайне удобно.

А в BB этого нет, следует ли из этого, что BB крайне не удобен? ;-)


ВВ далеко до удобства. По крайней мере, в моём разумении. А удобство - это не мода, а возможность ускорить процесс разработки. По крайней мере, для значительного количества задач.

Автор:  Info21 [ Воскресенье, 03 Октябрь, 2010 19:49 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexey Veselovsky писал(а):
У меня такое ощущение иногда складывается, что народ считает ООП тем, где написав имя переменной и поставив точку (или ->, от языка зависит) IDE ...
В точку!

Точечка (или ...) -- вот главное для народа. Даже без IDE :)

Автор:  Info21 [ Воскресенье, 03 Октябрь, 2010 19:50 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexanbar писал(а):
удобство - это не мода, а возможность ускорить процесс разработки.
Представляю себе программера, который не помнит толком, об чём класс, и быстро-быстро выбирает методы :)

Автор:  Alexey Veselovsky [ Воскресенье, 03 Октябрь, 2010 19:51 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexanbar писал(а):
ВВ далеко до удобства. По крайней мере, в моём разумении. А удобство - это не мода, а возможность ускорить процесс разработки. По крайней мере, для значительного количества задач.

Возвращаясь к теме -- ООП не позволяет ускорить процесс разработки для значительного количества задач. Вот исследование на эту тему: http://www.csm.ornl.gov/~v8q/Homepage/P ... ntable.pdf

Существенное ускорение процесса разработки можно достичь правильным выбором инструментария. Языка, библиотек, утилит всевозможных и т.п. Да, это будет не общее решение, это будет частное решение под эту задачу. Серебряной пули нет.

Более того, ООП поощряет частенько ТАКУЮ архитектуру, что в простом процедурном коде "почти без архитектуры" разобраться оказывается намного проще. Напарывался неоднократно на проектах маленьких-среднего размера (100-300 тыс. строк кода).

Автор:  Alexanbar [ Воскресенье, 03 Октябрь, 2010 19:55 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Info21 писал(а):
Alexanbar писал(а):
удобство - это не мода, а возможность ускорить процесс разработки.
Представляю себе программера, который не помнит толком, об чём класс, и быстро-быстро выбирает методы :)


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

Автор:  Alexey Veselovsky [ Воскресенье, 03 Октябрь, 2010 20:01 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Info21 писал(а):
Alexanbar писал(а):
удобство - это не мода, а возможность ускорить процесс разработки.
Представляю себе программера, который не помнит толком, об чём класс, и быстро-быстро выбирает методы :)

Зачем представлять? Достаточно пройтись по конторам и посмотреть как народ пишет. Это "нормальная" практика. Особенно если класс не свой, а какой-то там системный/библиотечный.

Очень простая схема: нужно сделать НЕЧТО. Ищется класс который походит на то, что нам нужно, пусть это скажем класс Foo. Пишем в функции (где должен быть наш функционал нечто вроде) "Foo f; f." и смотрим что там IDE нам вывалила. Ищем в списке нечто похожее на то. что решит нашу проблему (по названию и аргументам + там же дока ещё вываливается) если нашлось то пробуем, если нет, либо проба оказалась неудачной, то стрираем нашу "Foo f; f." и ищем другой класс. Повторяем пока не найдем.

Здорово, правда?

Автор:  Alexanbar [ Воскресенье, 03 Октябрь, 2010 20:07 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexey Veselovsky писал(а):
Возвращаясь к теме -- ООП не позволяет ускорить процесс разработки для значительного количества задач. Вот исследование на эту тему: http://www.csm.ornl.gov/~v8q/Homepage/P ... ntable.pdf

Не смог осилить. Много букв. И все английские.

Alexey Veselovsky писал(а):
Существенное ускорение процесса разработки можно достичь правильным выбором инструментария. Языка, библиотек, утилит всевозможных и т.п. Да, это будет не общее решение, это будет частное решение под эту задачу. Серебряной пули нет.


Это само собой разумеется.

Alexey Veselovsky писал(а):
Более того, ООП поощряет частенько ТАКУЮ архитектуру, что в простом процедурном коде "почти без архитектуры" разобраться оказывается намного проще. Напарывался неоднократно на проектах маленьких-среднего размера (100-300 тыс. строк кода).


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

Но для модификации собственного кода классы предпочтительней.

Автор:  Alexey Veselovsky [ Воскресенье, 03 Октябрь, 2010 20:09 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexanbar писал(а):
В чужом коде, действительно тяжелее разобраться с кодами, если всё разделено на классы, нежели просто содержится набор процедур.

Но для модификации собственного кода классы предпочтительней.

Свой код становится чужим через полгода-год (на год забросил проект, вернулся через год). Либо через примерно 50 тысяч строк кода. Кроме того, код обычно пишется командой, так что 90 процентов времени ты разбираешься с чужим кодом. Т.о. вы подтвердили, что ООП провалилось :-)

Автор:  Alexanbar [ Воскресенье, 03 Октябрь, 2010 20:31 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexey Veselovsky писал(а):
Alexanbar писал(а):
В чужом коде, действительно тяжелее разобраться с кодами, если всё разделено на классы, нежели просто содержится набор процедур.

Но для модификации собственного кода классы предпочтительней.

Свой код становится чужим через полгода-год (на год забросил проект, вернулся через год). Либо через примерно 50 тысяч строк кода. Кроме того, код обычно пишется командой, так что 90 процентов времени ты разбираешься с чужим кодом. Т.о. вы подтвердили, что ООП провалилось :-)


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

Автор:  Alexey Veselovsky [ Воскресенье, 03 Октябрь, 2010 20:45 ]
Заголовок сообщения:  Re: Почему ООП провалилось

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

ООП перестали пользоваться как только появился С++, а добила ООП окончательно Ява. C# надругался над трупом.

Помните фильм "Люди в черном"? Там вначале замечательный эпизод. Прилетает этот прекрасный тараканчик, к воронке подходит мужык, и тараканчик его немного убивает, и залезает внутрь этого мужика, и ходит потом в виде него. Носит его тело в качестве сарафанчика. Так вот, С++ (в плане ООП) и далее, java, c# -- это та самая комбинация из таракана (процедурщина) и мужика (ооп). Названия ООПшные, звучит похоже, но уже попахивает, странно движется, и внутри сидит огромадный таракан под два метра ростом.

Автор:  Info21 [ Воскресенье, 03 Октябрь, 2010 20:59 ]
Заголовок сообщения:  Re: Почему ООП провалилось

Alexey Veselovsky писал(а):
Названия ООПшные, звучит похоже, но ...ростом.
То исть это гут, что в Обероне нет ООП-терминологии? :)

Страница 1 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/