Оверхед для ООП - страница 6

 
Maxim Kuznetsov:

а вот не катит :-)

я-же говорю - попробуйте сделать, это лютый lot-of-code. Инстанцируемый класс "СFoo: public InterfaceCFoo" должен содержать поле InterfaceCFoo *privateContext (делать связь 1:1), создавать и удалять его через фабрику, все методы делегировать и при этом переводить CFoo* ссылки this<->privateContext туда сюда. Это "закат солнца вручную", сиречь замена наследования делегированием, причём на ровном месте.

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

Между прочим, в Android/Java похожая фигня с классами ядра - из-за отсутствия множественного наследования приходится вставлять в объект делегат и для его методов делать методы-обертки. Се ля ви.

 
Maxim Kuznetsov:

я-же говорю - попробуйте сделать, это лютый lot-of-code. Инстанцируемый класс "СFoo: public InterfaceCFoo" должен содержать поле InterfaceCFoo *privateContext (делать связь 1:1), создавать и удалять его через фабрику, все методы делегировать и при этом переводить CFoo* ссылки this<->privateContext туда сюда. Это "закат солнца вручную", сиречь замена наследования делегированием, причём на ровном месте.

Ну и язык, без пол-литра трезвому человеку не разобрать о чем речь. :) А все для чего разведена эта ООПешная бодяга и китайская грамота - чтобы простенький обмен данными сделать, который тривиально на процедурном уровне реализуется...
 
Andrei:
Ну и язык, без пол-литра трезвому человеку не разобрать о чем речь. :) А все для чего разведена эта ООПешная бодяга и китайская грамота - чтобы простенький обмен данными сделать, который тривиально на процедурном уровне реализуется...

Сам по себе ООП не виноват в существовании лютых ООП кодеров. Вообще с ООП все нормально, вы совершенно не правы в своем мнении об ООП.

 
Dmitry Fedoseev:

Сам по себе ООП не виноват в существовании лютых ООП кодеров. Вообще с ООП все нормально, вы совершенно не правы в своем мнении об ООП.

Вы его историю не знаете.

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

 
Dmitry Fedoseev:

Вообще с ООП все нормально, вы совершенно не правы в своем мнении об ООП.

В качестве ликбезика приведу несколько известных критических цитат из вики про ООП от людей, которых почему-то никто не называет невежественными:

  • Александр Степанов в одном из своих интервью указывал, что ООП «методологически неправильно» и что «…ООП практически такая же мистификация, как и искусственный интеллект…»[20].
  • Никлаус Вирт считает, что ООП — не более чем тривиальная надстройка над структурным программированием, и преувеличение её значимости, выражающееся, в том числе, во включении в языки программирования всё новых модных «объектно-ориентированных» средств, вредит качеству разрабатываемого программного обеспечения.
  • Патрик Киллелиа в своей книге «Тюнинг веб-сервера» писал: «…ООП предоставляет вам множество способов замедлить работу ваших программ…».
 
Andrei:

В качестве ликбезика приведу несколько известных критических цитат из вики про ООП от людей, которых почему-то никто не называет невежественными:

  • Александр Степанов в одном из своих интервью указывал, что ООП «методологически неправильно» и что «…ООП практически такая же мистификация, как и искусственный интеллект…»[20].
  • Никлаус Вирт считает, что ООП — не более чем тривиальная надстройка над структурным программированием, и преувеличение её значимости, выражающееся, в том числе, во включении в языки программирования всё новых модных «объектно-ориентированных» средств, вредит качеству разрабатываемого программного обеспечения.
  • Патрик Киллелиа в своей книге «Тюнинг веб-сервера» писал: «…ООП предоставляет вам множество способов замедлить работу ваших программ…».

И всем троим: Степанов 1950 года рождения, Вирт 1934 года и такому же древнему Киллеа (его книга вышла в 1998 году) будет очень стыдно это повторить в 2017 году.

Сказаное ими было так давно, что уже вспоминать стыдно. Компиляторы С++ минимум на 2 порядка были тупее и примитивнее в оптимизациях. По сути, там оптимизациями и не пахло. В то время(самое начало девяностых) я сам много писал на ассемблере и тоже придерживался таких же мыслей "С/C++ - тормозит".

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

 

Renat Fatkhullin:

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

Подытожим. Вот моя основная гипотеза про ООП: "ООП имеет смысл лишь как удобная обертка текста либо при минимальном использовании при инициализации среды исполнения..." в посте #10.

А вот аргументированное мнение от независимого специалиста с подобным же мнением и подробным доказательством на уровне кода.

http://rainman-rocks.livejournal.com/122876.html

"Финальный вывод из всего этого следует такой:

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

 
Andrei:

Подытожим. Вот моя основная гипотеза про ООП: "ООП имеет смысл лишь как удобная обертка текста либо при минимальном использовании при инициализации среды исполнения..." в посте #10.

А вот аргументированное мнение от независимого специалиста с подобным же мнением и подробным доказательством на уровне кода.

http://rainman-rocks.livejournal.com/122876.html

"Финальный вывод из всего этого следует такой:

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

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

Весь софт практически больше чем на 90% пишется на ООП (глупости про драйверы вспоминать не надо). По сути невозможно написать, а потом поддерживать большой проект без ООП. И никакие слова про "всего лишь обертка" не принимаются, когда речь идет о бизнесе. Разработка софта - это давно уже проработанный и многократно проверенный бизнес.

Кто без понимания жалуется на ООП, тот не в курсе того, что творят современные С++ компиляторы. Там в финальном коде от ООП часто вообще ничего не остается. Речь об С++ конечно же.

 
Renat Fatkhullin:

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

Приведу еще одну цитату об основной идее этой статьи, чтобы не было сомнений, о чем там написано:

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

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

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

Опять же это не очень скромно чем-то хвалиться ибо это плохо влияет на карму.

 

То есть, проектов нет, а значит и опыта.

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

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