powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
25 сообщений из 418, страница 10 из 17
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551502
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Давайте спокойнее, товарищи. Без попыток оскорблений, даже завуалированых.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38552837
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedЗаточить - это не в значении обработать напильником, а в значении "приспособить под себя".

Разумеется я понял что вы имели ввиду, только простебался над формой (мне кажется, как тролль вы начинающий или неуспешный так как не понимаете основ качественного троллинга). Я думал, что вы напишете эту фразу после первой попытке посмеяться над корявостью формулировки - но пришлось объяснять в лоб через десяток собщений :)

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

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

Подводя итог, могу сказать, что:
Вы игнорируете или не понимаете часть аргументов

Часть аргументов отвергаете (см ранее ссылку на работу Беклемишева о женской логике)

На часть аргументов отвечаете повторением исходно посылки (- C расширяемый так как для него можно написать препроцессор; - Но препроцессор можно для любого языка, к тому же есть языки которые можно расширять без этого геморроя; - C расширяемый так как можно выкинуть стандартный препроцессор и написать для него свой - тут дальше можно спросить как вы будете писать препроцессор, если вы ответите что на том же C можно ответить цитатой "Это все равно что затачивать молоток при помощи другого молотка")

Таким образом обсуждать по существу с вами невозможно.

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

Упоминаемая двойная корявость в метафоре "заточки молотка"

Предложили сравнить быстродействие функций не описав реализацию

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

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

Давайте тогда я соглашусь для вида с вашей точкой зрения и вы раскажете, как и на чем вы пишете свои препроцессоры и для каких конкретно целей?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38552935
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#как и на чем вы пишете свои препроцессоры и для каких конкретно целей?

Пишется на том-же С, модели описываются по упрощенным BNF (XML семантически подобным). Цели простые - обобщенное программирование (программы пишут другие программы).
Т.е. подробности реализации убираются с целью оставить только DSL модели.

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

Пример подобного есть тут http://www.oracle.com/technetwork/developer-tools/jheadstart/overview/index.html

Вот тут даже картинки есть, наглядно показывающие превращение модельки в форму для пользователя:
http://www.oracle.com/technetwork/developer-tools/jheadstart/jhs11-overview-129401.pdf



А соглашаться со мной не надо, в 99.9999% это пагубно для неокрепших умов.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38552968
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedПишется на том-же С, модели описываются по упрощенным BNF (XML семантически подобным). Цели простые - обобщенное программирование (программы пишут другие программы).
Т.е. подробности реализации убираются с целью оставить только DSL модели.


То есть фактически вы используете XML написанный ручками в качестве синтаксиса для своего DSL? И XML разбираете и преобразовываете в C при помощи того же C?

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


Какого рода наследование?

Пример подобного есть тут


Посмотрю.

А соглашаться со мной не надо, в 99.9999% это пагубно для неокрепших умов.

Если вы не приводите своих аргументов и игнорируете мои - то для виду можно согласиться. Вот видите - я согласился и мы продвинулись в интересный оффтопик.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38552988
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема мертвая. Я посмотрел, ради интереса, кто тут пишет и отрицает ООП.
Простите, что перехожу на личности, но никаких оскорблений себе не позволяю.

socimed, 78,54% сообщений в категории "Просто треп"
Из оставшихся 44 большая часть в этой теме.
По сути дела, тоже просто треп, аргументы на уровне первой категории.

sphinx_mv,
тут все же по профессиональным темам посты.
Но. Большая часть сообщений в разделе WinForms, .Net Framework.
Это чистое ООП. Мыши плакали, кололись, но продолжали есть кактус?

Кстати, очень много программистов пишет под WinForms и Delphi, толком не понимая идеи ООП.
Это я ни про кого-то конкретно, если что. Сталкивался с одним таким человеком.
Он много писал на Delphi, но недавно рассказывал, что долго считал, что ООП - это для компонентов, кнопок, окон.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553008
F2F4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimed я лет 20 кодировал в ООП, чтоб как раз осознать всю его ограниченность и убогость
Неужели прямо с пеленок? Или может вы 50-летний дед, который всю жизнь потратил на ООП, и только к старости осознал как сильно ошибался?
а разгадка проста: перед нами фантазирующий школьник.
В следующий раз пиши "лет 10", чтобы так откровенно не палиться
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553011
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, кстати, тема от заголовка ушла очень далеко. Если по теме ответить, то применение объектов может дать где-то просадку по производительности, но это абсолютно не существенно. По сути вызов метода сводится к f(self, params). Не нужен self - используй статический метод. ООП - концепция, тут дело не в производительности, поиск узких мест и их оптимизация не является проблемой. Я бы тоже не согласился с ответом автором топика, и захотел бы более развернутого ответа. Но интервьюер должен направлять кандидата на нужные темы, а не требовать угадать, что он хочет услышать.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553047
F2F4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553056
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F2F4,
разумеется, я об этом и пишу.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553140
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
F2F4Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов.

А VMT? А инкапсуляция?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553153
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#socimedПишется на том-же С, модели описываются по упрощенным BNF (XML семантически подобным). Цели простые - обобщенное программирование (программы пишут другие программы).
Т.е. подробности реализации убираются с целью оставить только DSL модели.


То есть фактически вы используете XML написанный ручками в качестве синтаксиса для своего DSL? И XML разбираете и преобразовываете в C при помощи того же C?
Нет, я назвал - семантически подобный. Т.е. там в виде описаний то, что можно описать через XML.
А так форма представления более простая, C подобная (что-то вроде JSON), без всяких этих ваших натужных XML-овских тегов и атрибутов.


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

Какого рода наследование?
Тебе генератор сделал web форму по шаблону. В нужных местах ты можешь ее дополнить вручную, просто заполнив include файлы нужным функционалом. К примеру есть блок валидации введенных данных - по-умолчанию он с модели тянет только признак - "Должно быть не пусто". А так ты можешь еще чего туда дописать, типо "дата рождения не должна быть в будущем и более 120 лет назад". Т.е. ты можешь унаследоваться от сгенерированного кода, расширить его функционал (или заменить), без потери возможности перегенерации того, от чего ты унаследовался, и так, чтоб оно твои дополнения не похерило (они-то все в отдельных файлах лежат, генерированное с самописным не пересекается на файлом уровне).

Ну и т.д.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553179
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#F2F4Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов.

А VMT? А инкапсуляция?

Инкапсуляция - это скрытие доступа к данным. Это есть и так (в том-же C есть понятие static, к примеру, структуры можно объявлять и аллоцировать приватно, ну и т.д.)

VMT - это просто костыль, придуманный для усложнения вызовов процедур в угоду синтаксическому сахару, в общем случае он не нужен, бери и вызывай явно что там тебе нужно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553220
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#,
тут сравнивается просто само наличие объектов.
VMT без виртуальных методов не существует,
такой возможности в не ОО языках нет вообще.
При этом есть некоторые потери, но они возникают не сами по себе, а как небольшая плата за определенные возможности.
Для не виртуальных методов VMT не используется.
Про инкапсуляцию поясните.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553249
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
AddxF#,
тут сравнивается просто само наличие объектов.
VMT без виртуальных методов не существует,
такой возможности в не ОО языках нет вообще.


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

Во-вторых, можно использовать if или case (см оконные процедуры в виндах)

В-третьих, можно сделать VMT ручками и управлять самостоятельно.

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


Про возможности никто не спорит - спор о том, есть потери или нет.

Для не виртуальных методов VMT не используется.
Про инкапсуляцию поясните.

Очень просто - если мы обращаемся снаружи к полю объекта напрямую, то наш код получается зависит от реализации свойства. (И мы уже не можем безболезненно подменить поле методом). Если же обращаемся через метод, то есть накладные расходы (хотя не уверен, может, оптимизатор может быть натаскан на такие частный случаи и просто инлайнить то же обращение к полю - понятно только если оно в той же единице линковки)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553251
F2F4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedVMT - это просто костыль, придуманный для усложнения вызовов процедур в угоду синтаксическому сахару, в общем случае он не нужен, бери и вызывай явно что там тебе нужно.
А про динамический полиморфизм ты разумеется не слышал. И для чего он нужен тоже не знаешь.

F#А VMT? А инкапсуляция?
виртуальные функции надо юзать только там, где нужен полиморфизм. В этих случаях все равно нет ничего быстрее.
Инкапсуляция в плюсах опять-таки только по необходимости + можно инлайнить.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553254
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxVMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще.
Чушь. Такая возможность называется "указатель на функцию" и в "не ОО языках" используется как минимум с семидесятых годов. Ну это если не считать ассемблера, в котором, наверняка, ещё гораздо раньше.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553265
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Очень просто - если мы обращаемся снаружи к полю объекта напрямую, то наш код получается зависит от реализации свойства. (И мы уже не можем безболезненно подменить поле методом). Если же обращаемся через метод, то есть накладные расходы (хотя не уверен, может, оптимизатор может быть натаскан на такие частный случаи и просто инлайнить то же обращение к полю - понятно только если оно в той же единице линковки)
Для этого как минимум придумали свойства, в которых как раз и можно безболезненно подменить поле методом.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553293
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
softwarerДля этого как минимум придумали свойства, в которых как раз и можно безболезненно подменить поле методом.

С сохранением бинарной совместимости? Сомневаюсь что это есть в C++ - не можете привести ссылку?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553307
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы тут злоупотебляем VMT. Как будто свет клином сошёлся...

А Роман Душкин в своей книге различает несколько полиморфизмов. Это о птичках кст.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553325
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#AddxF#,
тут сравнивается просто само наличие объектов.
VMT без виртуальных методов не существует,
такой возможности в не ОО языках нет вообще.


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

Во-вторых, можно использовать if или case (см оконные процедуры в виндах)

В-третьих, можно сделать VMT ручками и управлять самостоятельно.

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


Про возможности никто не спорит - спор о том, есть потери или нет.

Для не виртуальных методов VMT не используется.
Про инкапсуляцию поясните.

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

Реализовать самостоятельно можно все, что угодно. В конце концов компиляторы с поддержкой ООП тоже пишут на языках, в которых нет таких вещей. Все современные компиляторы с ООП обращаются напрямую к полю, тут просадки нет. Статически можно реализовать и в C++, а в С, например, действительно виртуальных методов и свойств нет.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553337
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#С сохранением бинарной совместимости?
Нет (если я правильно понимаю, что Вы назвали бинарной совместимостью). И если перекомпиляция кажется слишком большой ценой, никто не заставляет этим пользоваться.

F#Сомневаюсь что это есть в C++
А мир у нас ограничен C++?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553353
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerAddxVMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще.
Чушь. Такая возможность называется "указатель на функцию" и в "не ОО языках" используется как минимум с семидесятых годов. Ну это если не считать ассемблера, в котором, наверняка, ещё гораздо раньше.

И чего? При чем тут указатель на функцию? Какие виртуальные методы в C (к примеру) ?
Речь идет о возможностях, которые предоставляет язык. А не о том, как именно реализована поддержка виртуальных методов, и VMT в частности. Было бы очень странно, если бы поддержка виртуальных методов была реализована на чем то вообще невообразимом, что не поддержано даже ассемблером :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553374
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxИ чего? При чем тут указатель на функцию? Какие виртуальные методы в C (к примеру) ?
Речь идет о возможностях, которые предоставляет язык.
Верно. Виртуальный метод и указатель на функцию - это одно и то же, и эту возможность предоставляет язык. VMT - это просто таблица указателей на функции. Давным-давно программисты делали (с помощью языковых средств) динамический полиморфизм с помощью указателей на функции. В какой-то момент эту идею сгруппировали с несколькими другими и результат назвали ООП. Чуть позже в языки добавили ООП-синтаксис, который позволил записывать использование этих идей в более удобной форме.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553434
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВерно. Виртуальный метод и указатель на функцию - это одно и то же, и эту возможность предоставляет язык. VMT - это просто таблица указателей на функции. Давным-давно программисты делали (с помощью языковых средств) динамический полиморфизм с помощью указателей на функции. В какой-то момент эту идею сгруппировали с несколькими другими и результат назвали ООП. Чуть позже в языки добавили ООП-синтаксис, который позволил записывать использование этих идей в более удобной форме.

Если в сильно упрощенном виде, то да. ;)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553492
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
softwarerА мир у нас ограничен C++?

Я отвечал на "ООП по типу С++ не требует накладных расходов."
...
Рейтинг: 0 / 0
25 сообщений из 418, страница 10 из 17
Форумы / Программирование [игнор отключен] [закрыт для гостей] / А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]