Здравствуйте, Sergey, Вы писали:
S>Hello, s.ts! S>You wrote on Fri, 17 Oct 2003 08:55:45 GMT:
s>> Согласен, но одно большое "НО": s>> Изначально разговор был о производительности.
S>Разговор пошел о том, что в дельфи мы делаем дефолтную инициализацию всегда, а в С++ — только когда надо (компилятор все равно какие-то невидимые флаги выставляет, чтобы обеспечить правильную работу с недоконструированными объектами).
Но в делфи это поведение можно менять. ИМХО начальная инициализация обеспечивает большую безопасность, а в дельфе она по умолчанию включена. Это-то мне и нравится. А когда начинаем борьбу за производительность, то можно и отключить. Впрочем, про начальную инициализацию, кажется, несколько страниц написано в thinking in java.
На счет невидимых флагов — это что-то не то. Тут надо разбираться что в С++ происходит. (нужно поднять страуструпа)
Здравствуйте, WolfHound, Вы писали:
WH>Это мне обьяснять не надо. Но сам подумай Зачем мне на каждый чих заводить интерфейс если можно положить в стек и не париться.
Не нужно создавать дополнительный интерфейс на каждый чих. Можно сделать 1 интерфейс и 1 класс (смарт-пойнтер) в котором этот интерфейс реализовать. В общем, тот же смарт пойнтер реализуется безо всяких шаблонов, правда, типы нужно явно приводить .
Здравствуйте, s.ts, Вы писали:
ST>Не нужно создавать дополнительный интерфейс на каждый чих. Можно сделать 1 интерфейс и 1 класс (смарт-пойнтер) в котором этот интерфейс реализовать. В общем, тот же смарт пойнтер реализуется безо всяких шаблонов, правда, типы нужно явно приводить .
И типы надо явно приводить и менеджер памяти дергать и тащить виртуальность туда где мог быть инлайн и куча лишних действий... Зачем?
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, s.ts, Вы писали:
WH>>>А там все контейнеры это классы, а все классы создаются в хипе... ST>>А есть языки где все суть есть класс и дельфя ближе к ним.
WH>И какое это имеет отношение к обращениям к хипу которых могло и не быть?
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, s.ts, Вы писали:
ST>>Согласен, но одно большое "НО": ST>>Изначально разговор был о производительности. А тут мы экономим операцию записи в память за счет операции вызова функции (и не дай бог виртуальной — если через фабрику создавать). ST>>Да, и не говорите мне пожалуйста об инлайн-расширении. WH>Почему? В данном случае все очень хорошо инлайнится.
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, s.ts, Вы писали:
ST>>Не нужно создавать дополнительный интерфейс на каждый чих. Можно сделать 1 интерфейс и 1 класс (смарт-пойнтер) в котором этот интерфейс реализовать. В общем, тот же смарт пойнтер реализуется безо всяких шаблонов, правда, типы нужно явно приводить . WH>И типы надо явно приводить и менеджер памяти дергать и тащить виртуальность туда где мог быть инлайн и куча лишних действий... Зачем?
затем, что дельфу до конца не доделали — GC-то нетути или, м.быть ?
Hello, s.ts!
You wrote on Fri, 17 Oct 2003 11:45:22 GMT:
s> Но в делфи это поведение можно менять. ИМХО начальная s> инициализация обеспечивает большую безопасность, а в дельфе она по s> умолчанию включена. Это-то мне и нравится.
Да, от забывчивости иногда спасало бы. Но согласно идеологии С++ такая инициализация обязана быть отключаемой.
s> А когда начинаем борьбу s> за производительность, то можно и отключить.
Только что мне кто-то в этом топике утверждал, что InitInstance вызывается всегда... Кому из вас верить?
Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, Sergey, Вы писали:
S>Hello, s.ts! S>You wrote on Fri, 17 Oct 2003 11:45:22 GMT:
s>> Но в делфи это поведение можно менять. ИМХО начальная s>> инициализация обеспечивает большую безопасность, а в дельфе она по s>> умолчанию включена. Это-то мне и нравится.
S>Да, от забывчивости иногда спасало бы. Но согласно идеологии С++ такая инициализация обязана быть отключаемой.
s>> А когда начинаем борьбу s>> за производительность, то можно и отключить.
S>Только что мне кто-то в этом топике утверждал, что InitInstance вызывается всегда... Кому из вас верить?
Мне
class function TObject.NewInstance: TObject;//virtualbegin
Result := InitInstance(_GetMem(InstanceSize));
end;
Newinstance вызывается всегда для выделения памяти под объект = TObject::operator new
Она виртувльная, так что как захотим так и будет. А то, что выше — это по умолчанию.
Здравствуйте, FWP, Вы писали:
FWP>Про какой-такой Level. Уж не с FoxPro ли вы работаете? Какой ужас
К счастью работал, и не с Лисом, а DBase IV, Clipper понимаете
FWP>Я тот же путь проделал И ничего хуже FoxPro не видел. Но это не самый большой грех MS. Самый большой — Windows
Как, а Access'95
А вообщето Лис лучше корабля, там SQL даже есть и визуальная среда, да и с базами лучше, да и с сетью тоже
FWP>Это "моё личное мнение, задеть ни кого не хотел "
А насчет Винды, а куда без неё, юзьвери её любят
P.S. Ну не нравиться мне Борланд под ВыньДос и всё тут
Здравствуйте, zaiats_2k, Вы писали:
WH>>>Людям лениво было помнить машинные коды — придумали асм WH>>>Потом стало лениво писать на асме — придумали С WH>>>... FWP>>Согласен. Только уж пожалуйста продолжай, раз начал...
FWP>>Потом стало лениво писать на С — придумали С++ FWP>>Потом стало лениво писать на С++ — придумали ... Что придумали?
_>С#
Здравствуйте, s.ts, Вы писали:
WH>>И типы надо явно приводить и менеджер памяти дергать и тащить виртуальность туда где мог быть инлайн и куча лишних действий... Зачем? ST>затем, что дельфу до конца не доделали — GC-то нетути или, м.быть ?
Вот я и спрашиваю какого вы за эту недоделку держитесь? Да и ГЦ ей не сильно поможет.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, s.ts, Вы писали:
WH>>И какое это имеет отношение к обращениям к хипу которых могло и не быть? ST>Это из контекста вырвано, не помню о чем речь. Re[14]: мнение о Delphi
Здравствуйте, WolfHound, Вы писали:
WH>Вот я и спрашиваю какого вы за эту недоделку держитесь?
Не недоделку, а старушку... Да, есть некоторые неудобства, но к ним уже давно привык. Ну выделяются классы не в стеке, а в динамической памяти, ну и пусть. Все равно в 99% случаев скорость работы устраивает, а в 0.9% случаев и размещение в стеке не спасло бы. Основное --- с Delphi связано очень много приятных воспоминаний, а VB.NET, C#, C++ вызывают дискомфорт.
Здравствуйте, WolfHound, Вы писали:
WH>ЗЗЫ на дельфи еще дольше. Ибо ни чего этот язык не умеет. WH>ЗЗЗЫ а как ты думаешь почему С++ и жаба это промышленные стандарты?
Можно вопрос? А что умеет джава и не умеет Дельфи? И как быть с тем что умеет Дельфи и не умеет джава?
Здравствуйте, s.ts, Вы писали:
ST>Есть некоторые вещи, касающиеся ООП, которые действительно лучше реализованы в дельфе. Как, например, вызов виртуальных функций из конструктора, RTTI (ну и, как следствие, виртуальные конструкторы)...
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, WolfHound, Вы писали:
WH>>ЗЗЫ на дельфи еще дольше. Ибо ни чего этот язык не умеет. WH>>ЗЗЗЫ а как ты думаешь почему С++ и жаба это промышленные стандарты?
AVK>Можно вопрос? А что умеет джава и не умеет Дельфи?