|
|
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Давайте спокойнее, товарищи. Без попыток оскорблений, даже завуалированых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2014, 10:41 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
socimedЗаточить - это не в значении обработать напильником, а в значении "приспособить под себя". Разумеется я понял что вы имели ввиду, только простебался над формой (мне кажется, как тролль вы начинающий или неуспешный так как не понимаете основ качественного троллинга). Я думал, что вы напишете эту фразу после первой попытке посмеяться над корявостью формулировки - но пришлось объяснять в лоб через десяток собщений :) У этой вашей метафоры есть вторая корявость - молоток исключительно неудачный пример, так как его практически никто не модифицирует (приведите пример, когда в последний раз сталкивались с заточенным молотком, причем можете использовать любое значение слов "сталкивались" и "заточенным" на выбор). Таким образом в приведенной вами метафоре две корявости, так сказать, в одном флаконе - паразитный каламбур и исключительно неудачный подбор понятий. Подводя итог, могу сказать, что: Вы игнорируете или не понимаете часть аргументов Часть аргументов отвергаете (см ранее ссылку на работу Беклемишева о женской логике) На часть аргументов отвечаете повторением исходно посылки (- C расширяемый так как для него можно написать препроцессор; - Но препроцессор можно для любого языка, к тому же есть языки которые можно расширять без этого геморроя; - C расширяемый так как можно выкинуть стандартный препроцессор и написать для него свой - тут дальше можно спросить как вы будете писать препроцессор, если вы ответите что на том же C можно ответить цитатой "Это все равно что затачивать молоток при помощи другого молотка") Таким образом обсуждать по существу с вами невозможно. С точки зрения троллинга не очень интересно, так как вы допускаете слишком грубые ошибки: Упоминаемая двойная корявость в метафоре "заточки молотка" Предложили сравнить быстродействие функций не описав реализацию В ответ на тезис о применимости ООП для практической задачи по документации кода привели ссылку на инструмент который во-первых, сам по себе доказывает практичность задачи, во-вторых, написан с использованием ООП Итого в этих двух ипостасях разговор с вами неинтересен. Возможно, вы хороший специалист в своей области но слушать других не умеете и дискутировать с вами не получится, а троллинг вас не доставляет никакого удовольствия, так как ваш троллинг слишком примитивный. Давайте тогда я соглашусь для вида с вашей точкой зрения и вы раскажете, как и на чем вы пишете свои препроцессоры и для каких конкретно целей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 09:58 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
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% это пагубно для неокрепших умов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 10:55 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
socimedПишется на том-же С, модели описываются по упрощенным BNF (XML семантически подобным). Цели простые - обобщенное программирование (программы пишут другие программы). Т.е. подробности реализации убираются с целью оставить только DSL модели. То есть фактически вы используете XML написанный ручками в качестве синтаксиса для своего DSL? И XML разбираете и преобразовываете в C при помощи того же C? Модели реального мира описываются в одном месте, а весь остальной обвяз - от структур базы данных до интерфейса пользователя получаются генератором, с возможностью конечной доработки через "наследование". Какого рода наследование? Пример подобного есть тут Посмотрю. А соглашаться со мной не надо, в 99.9999% это пагубно для неокрепших умов. Если вы не приводите своих аргументов и игнорируете мои - то для виду можно согласиться. Вот видите - я согласился и мы продвинулись в интересный оффтопик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 11:20 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Тема мертвая. Я посмотрел, ради интереса, кто тут пишет и отрицает ООП. Простите, что перехожу на личности, но никаких оскорблений себе не позволяю. socimed, 78,54% сообщений в категории "Просто треп" Из оставшихся 44 большая часть в этой теме. По сути дела, тоже просто треп, аргументы на уровне первой категории. sphinx_mv, тут все же по профессиональным темам посты. Но. Большая часть сообщений в разделе WinForms, .Net Framework. Это чистое ООП. Мыши плакали, кололись, но продолжали есть кактус? Кстати, очень много программистов пишет под WinForms и Delphi, толком не понимая идеи ООП. Это я ни про кого-то конкретно, если что. Сталкивался с одним таким человеком. Он много писал на Delphi, но недавно рассказывал, что долго считал, что ООП - это для компонентов, кнопок, окон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 11:34 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
socimed я лет 20 кодировал в ООП, чтоб как раз осознать всю его ограниченность и убогость Неужели прямо с пеленок? Или может вы 50-летний дед, который всю жизнь потратил на ООП, и только к старости осознал как сильно ошибался? а разгадка проста: перед нами фантазирующий школьник. В следующий раз пиши "лет 10", чтобы так откровенно не палиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 11:43 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
И, кстати, тема от заголовка ушла очень далеко. Если по теме ответить, то применение объектов может дать где-то просадку по производительности, но это абсолютно не существенно. По сути вызов метода сводится к f(self, params). Не нужен self - используй статический метод. ООП - концепция, тут дело не в производительности, поиск узких мест и их оптимизация не является проблемой. Я бы тоже не согласился с ответом автором топика, и захотел бы более развернутого ответа. Но интервьюер должен направлять кандидата на нужные темы, а не требовать угадать, что он хочет услышать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 11:44 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 12:01 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
F2F4, разумеется, я об этом и пишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 12:06 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
F2F4Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов. А VMT? А инкапсуляция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 12:40 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
F#socimedПишется на том-же С, модели описываются по упрощенным BNF (XML семантически подобным). Цели простые - обобщенное программирование (программы пишут другие программы). Т.е. подробности реализации убираются с целью оставить только DSL модели. То есть фактически вы используете XML написанный ручками в качестве синтаксиса для своего DSL? И XML разбираете и преобразовываете в C при помощи того же C? Нет, я назвал - семантически подобный. Т.е. там в виде описаний то, что можно описать через XML. А так форма представления более простая, C подобная (что-то вроде JSON), без всяких этих ваших натужных XML-овских тегов и атрибутов. F#Модели реального мира описываются в одном месте, а весь остальной обвяз - от структур базы данных до интерфейса пользователя получаются генератором, с возможностью конечной доработки через "наследование". Какого рода наследование? Тебе генератор сделал web форму по шаблону. В нужных местах ты можешь ее дополнить вручную, просто заполнив include файлы нужным функционалом. К примеру есть блок валидации введенных данных - по-умолчанию он с модели тянет только признак - "Должно быть не пусто". А так ты можешь еще чего туда дописать, типо "дата рождения не должна быть в будущем и более 120 лет назад". Т.е. ты можешь унаследоваться от сгенерированного кода, расширить его функционал (или заменить), без потери возможности перегенерации того, от чего ты унаследовался, и так, чтоб оно твои дополнения не похерило (они-то все в отдельных файлах лежат, генерированное с самописным не пересекается на файлом уровне). Ну и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 12:46 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
F#F2F4Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов. А VMT? А инкапсуляция? Инкапсуляция - это скрытие доступа к данным. Это есть и так (в том-же C есть понятие static, к примеру, структуры можно объявлять и аллоцировать приватно, ну и т.д.) VMT - это просто костыль, придуманный для усложнения вызовов процедур в угоду синтаксическому сахару, в общем случае он не нужен, бери и вызывай явно что там тебе нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 12:54 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
F#, тут сравнивается просто само наличие объектов. VMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще. При этом есть некоторые потери, но они возникают не сами по себе, а как небольшая плата за определенные возможности. Для не виртуальных методов VMT не используется. Про инкапсуляцию поясните. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:11 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
AddxF#, тут сравнивается просто само наличие объектов. VMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще. В не ОО языках во-первых, пишут код подставляя реализацию статически (типа, если мы точно знаем. что сюда может придти только triangle то вызываем triangle_draw). Во-вторых, можно использовать if или case (см оконные процедуры в виндах) В-третьих, можно сделать VMT ручками и управлять самостоятельно. При этом есть некоторые потери, но они возникают не сами по себе, а как небольшая плата за определенные возможности. Про возможности никто не спорит - спор о том, есть потери или нет. Для не виртуальных методов VMT не используется. Про инкапсуляцию поясните. Очень просто - если мы обращаемся снаружи к полю объекта напрямую, то наш код получается зависит от реализации свойства. (И мы уже не можем безболезненно подменить поле методом). Если же обращаемся через метод, то есть накладные расходы (хотя не уверен, может, оптимизатор может быть натаскан на такие частный случаи и просто инлайнить то же обращение к полю - понятно только если оно в той же единице линковки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:22 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
socimedVMT - это просто костыль, придуманный для усложнения вызовов процедур в угоду синтаксическому сахару, в общем случае он не нужен, бери и вызывай явно что там тебе нужно. А про динамический полиморфизм ты разумеется не слышал. И для чего он нужен тоже не знаешь. F#А VMT? А инкапсуляция? виртуальные функции надо юзать только там, где нужен полиморфизм. В этих случаях все равно нет ничего быстрее. Инкапсуляция в плюсах опять-таки только по необходимости + можно инлайнить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:23 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
AddxVMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще. Чушь. Такая возможность называется "указатель на функцию" и в "не ОО языках" используется как минимум с семидесятых годов. Ну это если не считать ассемблера, в котором, наверняка, ещё гораздо раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:24 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
F#Очень просто - если мы обращаемся снаружи к полю объекта напрямую, то наш код получается зависит от реализации свойства. (И мы уже не можем безболезненно подменить поле методом). Если же обращаемся через метод, то есть накладные расходы (хотя не уверен, может, оптимизатор может быть натаскан на такие частный случаи и просто инлайнить то же обращение к полю - понятно только если оно в той же единице линковки) Для этого как минимум придумали свойства, в которых как раз и можно безболезненно подменить поле методом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:27 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
softwarerДля этого как минимум придумали свойства, в которых как раз и можно безболезненно подменить поле методом. С сохранением бинарной совместимости? Сомневаюсь что это есть в C++ - не можете привести ссылку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:36 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Мы тут злоупотебляем VMT. Как будто свет клином сошёлся... А Роман Душкин в своей книге различает несколько полиморфизмов. Это о птичках кст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:43 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
F#AddxF#, тут сравнивается просто само наличие объектов. VMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще. В не ОО языках во-первых, пишут код подставляя реализацию статически (типа, если мы точно знаем. что сюда может придти только triangle то вызываем triangle_draw). Во-вторых, можно использовать if или case (см оконные процедуры в виндах) В-третьих, можно сделать VMT ручками и управлять самостоятельно. При этом есть некоторые потери, но они возникают не сами по себе, а как небольшая плата за определенные возможности. Про возможности никто не спорит - спор о том, есть потери или нет. Для не виртуальных методов VMT не используется. Про инкапсуляцию поясните. Очень просто - если мы обращаемся снаружи к полю объекта напрямую, то наш код получается зависит от реализации свойства. (И мы уже не можем безболезненно подменить поле методом). Если же обращаемся через метод, то есть накладные расходы (хотя не уверен, может, оптимизатор может быть натаскан на такие частный случаи и просто инлайнить то же обращение к полю - понятно только если оно в той же единице линковки) Реализовать самостоятельно можно все, что угодно. В конце концов компиляторы с поддержкой ООП тоже пишут на языках, в которых нет таких вещей. Все современные компиляторы с ООП обращаются напрямую к полю, тут просадки нет. Статически можно реализовать и в C++, а в С, например, действительно виртуальных методов и свойств нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:48 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
F#С сохранением бинарной совместимости? Нет (если я правильно понимаю, что Вы назвали бинарной совместимостью). И если перекомпиляция кажется слишком большой ценой, никто не заставляет этим пользоваться. F#Сомневаюсь что это есть в C++ А мир у нас ограничен C++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:52 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
softwarerAddxVMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще. Чушь. Такая возможность называется "указатель на функцию" и в "не ОО языках" используется как минимум с семидесятых годов. Ну это если не считать ассемблера, в котором, наверняка, ещё гораздо раньше. И чего? При чем тут указатель на функцию? Какие виртуальные методы в C (к примеру) ? Речь идет о возможностях, которые предоставляет язык. А не о том, как именно реализована поддержка виртуальных методов, и VMT в частности. Было бы очень странно, если бы поддержка виртуальных методов была реализована на чем то вообще невообразимом, что не поддержано даже ассемблером :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 13:56 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
AddxИ чего? При чем тут указатель на функцию? Какие виртуальные методы в C (к примеру) ? Речь идет о возможностях, которые предоставляет язык. Верно. Виртуальный метод и указатель на функцию - это одно и то же, и эту возможность предоставляет язык. VMT - это просто таблица указателей на функции. Давным-давно программисты делали (с помощью языковых средств) динамический полиморфизм с помощью указателей на функции. В какой-то момент эту идею сгруппировали с несколькими другими и результат назвали ООП. Чуть позже в языки добавили ООП-синтаксис, который позволил записывать использование этих идей в более удобной форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 14:03 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
softwarerВерно. Виртуальный метод и указатель на функцию - это одно и то же, и эту возможность предоставляет язык. VMT - это просто таблица указателей на функции. Давным-давно программисты делали (с помощью языковых средств) динамический полиморфизм с помощью указателей на функции. В какой-то момент эту идею сгруппировали с несколькими другими и результат назвали ООП. Чуть позже в языки добавили ООП-синтаксис, который позволил записывать использование этих идей в более удобной форме. Если в сильно упрощенном виде, то да. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2014, 14:23 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38553140&tid=1341468]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 482ms |

| 0 / 0 |
