Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2014, 12:58   #21
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
только вот малое НО, реализация того же в виде функций будет работать так же.
А как же расходы на RTTI?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.07.2014, 13:00   #22
western_digital
Пользователь
 
Регистрация: 20.11.2013
Сообщений: 45
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Синтаксис у всех этих языков некрасивый. Логика местами сомнительна. Основные принципы недалеко от всяких плюсов ушли и принципиальное разницы нет.
Разница есть: в обычных языках ты мучаешься с компиляцией, дефайнами, хедерами. А в интерпретируемых ты просто бёрёшь текстовый документ и пишешь код. Более того, в этих языках много упрощённых реализаций массивов, ассоциативных списков и прочей шелухи, которая реально всё ускоряет.
western_digital вне форума Ответить с цитированием
Старый 15.07.2014, 13:07   #23
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
виртуатуального лишь.
только вот малое НО, реализация того же в виде функций будет работать так же.
Да. Забыл про виртуальность уточнить. Деструктор виртуальный будет как минимум, так что не так же. А еще вместе с ООП наверняка придут исключения, вместо возвращаемого кода ошибки. Потом паттерны. ... Можно конечно писать с ООП как на функциях, но зачем тогда ООП? Не используя плюшек ООП в виде наследования и полиморфизма, оно нафиг не надо, а с этими плюшками код будет медленнее работать, чем на функциях.
Цитата:
Сообщение от western_digital Посмотреть сообщение
Разница есть: в обычных языках ты мучаешься с компиляцией, дефайнами, хедерами.
Компиляция - да.
Дефайны далеко необязательная сишная тема. Используется для платформозависимого кода, отладки или каких-то хитростей. На тех же делфях всё прекрасно без этого пишется в большинстве случаев. Да и на плюсах. Это не обязательная черта компилируемых языков.
хедеры - опять же тема плюсов. в делфях этого нет, например.
Цитата:
Сообщение от western_digital Посмотреть сообщение
А в интерпретируемых ты просто бёрёшь текстовый документ и пишешь код.
И на плюсах берёшь текстовый документ и пишешь.
Цитата:
Сообщение от western_digital Посмотреть сообщение
Более того, в этих языках много упрощённых реализаций массивов, ассоциативных списков и прочей шелухи, которая реально всё ускоряет.
Никто не мешает добавить синтаксический сахар в плюсы и написать аналогичные упрощалки в виде дополнительных библиотек. В шарпе вот с каждой версией плюшек прибавляется, у плюсов и делфей просто какие-то другие направления развития, но и там чего-то по мелочам улучшают.

Последний раз редактировалось pu4koff; 15.07.2014 в 13:15.
pu4koff вне форума Ответить с цитированием
Старый 15.07.2014, 13:17   #24
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
В шарпе вот с каждой версией плюшек прибавляется, у плюсов и делфей просто какие-то другие направления развития, но и там чего-то по мелочам улучшают.
В Делфи есть механизм хелперов, с помощью которых можно быстро понаписать все "как в шарпе" и вообще наверно курс берут "в хвост шарпу", оперативно добавляя всякие навороты, которые может и не особо нужны, зато все "как у людей".
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.07.2014, 13:32   #25
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Да. Забыл про виртуальность уточнить. Деструктор виртуальный будет как минимум, так что не так же. А еще вместе с ООП наверняка придут исключения, вместо возвращаемого кода ошибки. Потом паттерны. ... Можно конечно писать с ООП как на функциях, но зачем тогда ООП? Не используя плюшек ООП в виде наследования и полиморфизма, оно нафиг не надо, а с этими плюшками код будет медленнее работать, чем на функциях.
насчет наследования, мало там трат идет за счет него, у просто методов вообще разницы ноль, при виртуальных VMT дернется, что по сути просто структура.
там расход реальный мал.

в шарпе на многое расход больше, за счет продвинутого RTTI и функций его юзающих, но в С++ он довольно слаб.

при вызовах методов, максимум будет обращение к VMT, что довольно быстро.


а уж если с интерпритацией сравнить...
Цитата:
В Делфи есть механизм хелперов, с помощью которых можно быстро понаписать все "как в шарпе" и вообще наверно курс берут "в хвост шарпу", оперативно добавляя всякие навороты, которые может и не особо нужны, зато все "как у людей".
что такого эти хелперы позволяют? разве не расширение методов существующих классов?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.07.2014, 13:41   #26
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
что такого эти хелперы позволяют? разве не расширение методов существующих классов?
Ну да есть же понт, когда после точки там куча методов выпадает. Ну вот круто же в шарпе методы на классе, методы на типе данных. И здесь такая же петрушка.
Цитата:
а уж если с интерпритацией сравнить...
Уже половина в байткодах работают, хоть на лету все равно быстрей.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.07.2014, 13:45   #27
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Ну да есть же понт, когда после точки там куча методов выпадает. Ну вот круто же в шарпе методы на классе, методы на типе данных. И здесь такая же петрушка.
речь явно не про эту фичу, она в шарпе тоже есть как бы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.07.2014, 13:52   #28
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
речь явно не про эту фичу, она в шарпе тоже есть как бы.
Я же писал - Дельфи идет вслед чтоб "все как у людей"
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.07.2014, 15:19   #29
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

В .NET методы расширения появились как костыль для LINQ.

Все классы коллекций наследовались от интерфейса IEnumerable<T>.
А linq методы Select, Where, в интерфейс не вопхнёшь. Для этого надо было наследоваться не от интерфейса а от виртуального класса, который бы содержал методы linq. Но перефигачивать весь фреймворк не решились и вкорячили фичу, что бы вызов статических методов сторонних классов выглядел как вызов родных методов. В ФЯ оно вроде бы Composing Functions называется.

Помойму это фиговый знак, когда небольшое расширение уже готового функционала, получается только с вкорячивание в язык стрёмных костылей, или с переписыванием всего что было до этого.
the_deer_one вне форума Ответить с цитированием
Старый 15.07.2014, 15:23   #30
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
В .NET методы расширения появились как костыль для LINQ.
и что с того что они были созданы и для LINQ?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зачем нужны события (event) ? MooNDeaR C# (си шарп) 15 14.12.2015 13:49
Зачем вы используете фреймворки и интерпретируемыя языки программирования? Tronix Свободное общение 29 05.09.2012 18:33
Зачем нужны многомерные массивы? Sёker Общие вопросы Delphi 13 13.05.2012 15:42
Зачем нужны классы Sylar9 Общие вопросы C/C++ 5 15.03.2012 11:38
Зачем нужны операторы << и >> fs444 Общие вопросы C/C++ 3 23.12.2009 08:07