Re[39]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 09:12
Оценка:
Здравствуйте, mihailik, Вы писали:

WH>>Если тебя волнует будет ли освобожден ресурс до выхода из функции то не нужно.

M>Если я должен думать, есть опастность или нет — значит я просто всегда ожидаю опасность. Где же тут C++ даёт послабление относительно Дельфи? Думать-то всё равно нужно столько же.

WH>>Но если есть какято очень хитрая логика которая случается раз в год...

M>Чтобы засечь этот "раз в год", я должен думать об этой возможности каждую секунду. Где же экономия?
Тебе знакомо такое слово "проектирование"? То о чем ты сейчас говоришь относится именно туда. Если архитектура хреновая то отгребещь по полной в любом случае, а когда нормальная то на С++ работы много меньше.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[37]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 09:12
Оценка:
Здравствуйте, mihailik, Вы писали:

WH>>Где ты среду в дельфе нашол? Дельфи это unmanaged компилятор с произвольным доступом к памяти. Ни какого контроля.

M>Средой я назвал окружение. Все вот эти "примочки" и "магию" компилятора. Свойства, RTTI. Семантику самого языка в конце концов.

M>Прямой доступ, конечно, разрешён.

Вот и закончилась безопасность.
M>Но всё-таки не так явно и беззастенчиво, как в C++.
Но есть следовательно в один рад с жабой и .НЕТ ставить нельзя.
M>Никакой явной адресной арифметики, обращения к указателям в стиле массивов и пр. В C++ это ещё в наследство от обычного C осталось. А в Дельфи наоборот, палки в колёса суют, если хочешь с укзателями работать.
Если кому захочется он всеравно сделает...

M>Кроме того, все объекты сугубо by ref.

Ну и нахрена это надо?
M>Никаких объектов на стеке или ещё где ни попало.
Вот и приходится городить try/finally постоянно.
M>Операторы, слава богу, не перегружаются.
Это еще почему?
M>Никаких конструкторов копирования, неявных преобразований и множественного наследования.
В том то и засада что не всегда объект можно просто скопировать.
M>Шаблоны тоже разум не затмевают.
Ага. И использование полиморвных контейнеров ведет к чистоте, простоте и надежности
M>Короче говоря, возможности поурезаны, но нам-то это и нужно.
При написании ГУИ к БД согласен, а вот на счет всего остального.

M>А кому нужен мощный инструмент, налагающий большой груз ответственности, инструмент, требующий серьёзного и длительного обучения — вперёд. Тому на C++ работать самая дорога. Там и платят больше.

А кому нужен инструмент налогающий кучу ответственности и не дающий ни каких инструментов контроля тому примая дорога на дельфе работать.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[39]: По просьбам трудящихся: Delphi vs C++(VS)
От: ArtDenis Россия  
Дата: 18.09.03 09:12
Оценка:
Здравствуйте, mihailik, Вы писали:
AD>>
AD>> 2mihailik: большая просьба, обдумывать свои ответы собеседнику, иначе
AD>> есть вероятность того, что модератор перенесёт эту ветку в "Коллеги,
AD>> улыбнитесь"
m> Если мои рассуждения народ задолбали, я могу и заткнуться. Делов-то
m> Кстати, а почему ты переводишь стрелу на модератора. Я считаю, у каждого
m> должен быть свой внутренний модератор. Так что давай конструктивно. Что
m> конкретно тебе не понравилось в моём сообщении?

Ещё раз повторюсь: — это привет от моего внутреннего модератора.

Теперь конструктивно:

m> По функциональности C++ опережает Дельфи только в возможности

m> компилировать драйвера.

Так вот, если заглянуть в стандарт С++, то не найдёшь ни одной строчки о
компиляции драйверов. Это первое. Теперь, задумаемся, а что такое
функциональность языка. На мой взгляд, — это возможности (и связанные с ними
особенности), предоставляемые программисту в переводе формально поставленной
задачи в программный код. Т.е. с этой точки зрения, в С++ есть какая-то
"изюминка", которая позволила после компиляции превратить программный код в
драйвер ?

А теперь сравним функциональности языков (звёздочкой помечены, на мой
взгляд, наиболее используемые вещи)

Функциональность дельфи:
1. Переменные *
2. Типы *
3. Процедуры, функции (в т.ч. вложенные)
4. Классы
5. Абстакция, наследование, полиморфизм *
6. Тип "Ссылка на класс"
7. Виртуальные конструкторы
8. Глобальная фабрика объектов.
9. Довольно богатое RTTI *
10. Указатель на функцию в классе
11. VCL
12. Что-то ещё...

Функциональность С++:
1. Переменные *
2. Типы *
3. функции *
4. Классы *
5. Абстакция, наследование, полиморфизм *
6. Перегрузка операторов *
7. Нормальная(!) перегрузка функций *
8. Множественное наследование *
9. Понятие "объект класса" *
10. Поименованные области *
11. Шаблоны и STL:
— типизированные контейнеры и массивы *
— итераторы и типонезависимые алгоритмы *
— "умные" указатели и массивы *
— функторы и связыватели *
— ANSI/UNICODE строки *
— Указатели на функцию в классе
— фабрики объектов *
... ещё куча того, что реализуется за счёт шаблонов.
12. RTTI
13. Может кто ещё чего добавит, а то я забыл

Информация предоставлена, можешь сравнивать.

---------------------------------------------------------
СНП, Artyomov Denis. E-mail: artyomov <at> inbox.ru
Posted via RSDN NNTP Server 1.7 beta
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[37]: По просьбам трудящихся: Delphi vs C++(VS)
От: Lloyd Россия  
Дата: 18.09.03 10:01
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Кроме того, все объекты сугубо by ref. Никаких объектов на стеке или ещё где ни попало.


А как по твоему передаются параметры? По воздуху?
Re[40]: По просьбам трудящихся: Delphi vs C++(VS)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.03 10:20
Оценка: :)
Здравствуйте, ArtDenis, Вы писали:

AD>Здравствуйте, mihailik, Вы писали:

AD>>>
AD>>> 2mihailik: большая просьба, обдумывать свои ответы собеседнику, иначе
AD>>> есть вероятность того, что модератор перенесёт эту ветку в "Коллеги,
AD>>> улыбнитесь"
m>> Если мои рассуждения народ задолбали, я могу и заткнуться. Делов-то
m>> Кстати, а почему ты переводишь стрелу на модератора. Я считаю, у каждого
m>> должен быть свой внутренний модератор. Так что давай конструктивно. Что
m>> конкретно тебе не понравилось в моём сообщении?

AD>Ещё раз повторюсь: — это привет от моего внутреннего модератора.


AD>Теперь конструктивно:


m>> По функциональности C++ опережает Дельфи только в возможности

m>> компилировать драйвера.

AD>Так вот, если заглянуть в стандарт С++, то не найдёшь ни одной строчки о

AD>компиляции драйверов. Это первое. Теперь, задумаемся, а что такое
AD>функциональность языка. На мой взгляд, — это возможности (и связанные с ними
AD>особенности), предоставляемые программисту в переводе формально поставленной
AD>задачи в программный код. Т.е. с этой точки зрения, в С++ есть какая-то
AD>"изюминка", которая позволила после компиляции превратить программный код в
AD>драйвер ?

AD>А теперь сравним функциональности языков (звёздочкой помечены, на мой

AD>взгляд, наиболее используемые вещи)

AD>Функциональность дельфи:

AD>1. Переменные *
AD>2. Типы *
AD>3. Процедуры, функции (в т.ч. вложенные)
AD>4. Классы
AD>5. Абстакция, наследование, полиморфизм *
AD>6. Тип "Ссылка на класс"
AD>7. Виртуальные конструкторы
AD>8. Глобальная фабрика объектов.
Если это касается СОМ, то наследоваников от TComObjectFactory великое множество.
AD>9. Довольно богатое RTTI *
AD>10. Указатель на функцию в классе
AD>11. VCL
AD>12. Что-то ещё...
Set (очень удобно с побитовыми операциями)
Встроенная поддержка Строк (в том числе и WideString),Интерфейсов,Вариантов**
Классы поддерживающие интерфейсы c автоматическим подсчетом ссылок и приведение к интерфейсу через As

Динамические массивы (умные)
Единая иерархия классов а также Is и As *
Явное разделение структур и объектов ( хотя записи с методами и не помешали)+-
и многое другое.
AD>Функциональность С++:
AD>1. Переменные *
AD>2. Типы *
AD>3. функции *
AD>4. Классы *
AD>5. Абстакция, наследование, полиморфизм *
AD>6. Перегрузка операторов *
AD>7. Нормальная(!) перегрузка функций *
AD>8. Множественное наследование *
AD>9. Понятие "объект класса" *
AD>10. Поименованные области *
AD>11. Шаблоны и STL:
AD> — типизированные контейнеры и массивы *
AD> — итераторы и типонезависимые алгоритмы *
AD> — "умные" указатели и массивы *
AD> — функторы и связыватели *
AD> — ANSI/UNICODE строки *
AD> — Указатели на функцию в классе
AD> — фабрики объектов *
AD> ... ещё куча того, что реализуется за счёт шаблонов.
AD>12. RTTI
AD>13. Может кто ещё чего добавит, а то я забыл

AD>Информация предоставлена, можешь сравнивать.


AD>---------------------------------------------------------

AD>СНП, Artyomov Denis. E-mail: artyomov <at> inbox.ru
и солнце б утром не вставало, когда бы не было меня
от модератора
От: _MarlboroMan_ Россия  
Дата: 18.09.03 10:32
Оценка: +1
Здравствуйте, Serginio1

Не могли бы Вы воздерживаться от избыточного цитирования?
... << RSDN@Home 1.1 beta 2 >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[8]: Некоторые итоги:
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.03 10:37
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Serginio1, Вы писали:


WH>>>А вот о других средствах которые могут заменить шаблоны по подробней.

S>>http://www.osp.ru/news/soft/2003/09/15_01_print.htm
WH> copy-paste-replace. Еще раз повторю шаблоны С++ значительно мощьнее чем copy-paste-replace.
Ну я и не спорю. И ведутся поиски альтернативных аналогов шаблонов С++ , в том числе присоединения на этапе выполнения программы, а не только компиляции. В Net как как они планируют будет так. И не думаю, что нечто подобное не изыскивает и Борланд в С++ Builder они есть и не составляет труда все перенести и в Delphi + перегрузку операторов и Inline. При всей твоей рекламе шаблонов, лично я совершенно безболзненно обхожусь без них, но от возможности их применения не отказался бы. Еще раз давай совсем немного подождем,а на данном этапе Delphi уже исчерпал себя.
S>>http://www.wn.ru/computers/16.09.2003/6.html
WH> Вот только очередного С++глюка от багландов мне и не хватало...
WH>Я очень сильно удивлюсь если это будет нормальный компилятор.
"Каждому Свое". А я очень сильно удивлюсь если ты когда нибудь вообще удивишься продуктам Борланда, в том числе и J Builder
и солнце б утром не вставало, когда бы не было меня
Re[41]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 10:52
Оценка: :)
Здравствуйте, Serginio1, Вы писали:

AD>>8. Глобальная фабрика объектов.

S> Если это касается СОМ, то наследоваников от TComObjectFactory великое множество.
Ну и нафига этот геморой? В С++ все ATL делает. Ни разу фабрику ручками не писал.
S> Set (очень удобно с побитовыми операциями)
Ну и нафига это на уровне языка надо?
S> Встроенная поддержка Строк (в том числе и WideString),Интерфейсов,Вариантов**
Ну интерфейсы еще куда ни шло, а вот строки и темболие варианты на уровне языка
S> Классы поддерживающие интерфейсы c автоматическим подсчетом ссылок и приведение к интерфейсу через As
Ну и нафига во все интерфейсы подсчет ссылок запихивать? В С++ это делается на раз, а для привидения типов служит dynamic_cast.
S> Динамические массивы (умные)
И чтоже в них такого умного чего не может std::vector?
S> Единая иерархия классов а также Is и As *
Вот уж нафиг не упало все классы от одного наследовать. И dynamic_cast никто не отменял.
S> Явное разделение структур и объектов ( хотя записи с методами и не помешали)+-
А смысл?
S> и многое другое.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: Некоторые итоги:
От: WolfHound  
Дата: 18.09.03 11:17
Оценка:
Здравствуйте, Serginio1, Вы писали:

WH>> copy-paste-replace. Еще раз повторю шаблоны С++ значительно мощьнее чем copy-paste-replace.

S> Ну я и не спорю. И ведутся поиски альтернативных аналогов шаблонов С++ , в том числе присоединения на этапе выполнения программы, а не только компиляции. В Net как как они планируют будет так.
В .НЕТ это простой copy-paste-replace. Там даже шаблонных функций нет

S>И не думаю, что нечто подобное не изыскивает и Борланд в С++ Builder они есть и не составляет труда все перенести и в Delphi + перегрузку операторов и Inline.

BCB это глюкалово страшное. Если все это перенести в дельфи то точно хана дельфе.
S>При всей твоей рекламе шаблонов, лично я совершенно безболзненно обхожусь без них,
Ну некоторые и на С безболезненно пишут, а некоторые и на асме.
S>но от возможности их применения не отказался бы. Еще раз давай совсем немного подождем,а на данном этапе Delphi уже исчерпал себя.
Вот я и говоряю что .НЕТ2 ждать надо.

WH>> Вот только очередного С++глюка от багландов мне и не хватало...

WH>>Я очень сильно удивлюсь если это будет нормальный компилятор.
S> "Каждому Свое". А я очень сильно удивлюсь если ты когда нибудь вообще удивишься продуктам Борланда, в том числе и J Builder
Я не знаю про J Builder но С++билдер это глюкалово сплошное.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: Некоторые итоги:
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.03 11:37
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Serginio1, Вы писали:


WH>>> copy-paste-replace. Еще раз повторю шаблоны С++ значительно мощьнее чем copy-paste-replace.

S>> Ну я и не спорю. И ведутся поиски альтернативных аналогов шаблонов С++ , в том числе присоединения на этапе выполнения программы, а не только компиляции. В Net как как они планируют будет так.
WH>В .НЕТ это простой copy-paste-replace. Там даже шаблонных функций нет
Еще раз http://www.dotsite.ru/Publications/PublicationDetails.aspx?ID=115

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

Различия между C# шаблонами и другими реализациями

"Шаблоны С++ существенно отличаются от C# шаблонов. Там где C# шаблоны компилируются в IL, что приводит к тому, что для каждого типа значения специализация разумно происходит во время выполнения и однажды только для ссылочных типов, шаблоны С++ являются по существу макросом расширения кода, которые генерируют специализированный тип для каждого параметра типа, поставляемого в шаблон. Кроме того, когда компилятор С++ сталкивается с шаблоном, таким как Stack целых, он расширяет код шаблона в класс Stack, содержащий целые как собственный тип. В зависимости от того, является ли параметр типа типом значения или ссылочным типом, за исключением компоновщика, специально разработанного для уменьшения количества кода, каждый раз компилятор С++ создает специализированный класс, в результате чего возникает существенное увеличение размера кода в сравнении C# шаблонами.

Более того, шаблоны С++ не могут определять ограничения. Они могут только неявно задать ограничения, просто используя член, который должен или не должен принадлежать параметру типа. Если в параметре типа, который в итоге передается в шаблонный класс, этот член существует, программа будет работать правильно. Если член не существует, программа даст сбой и, возможно, будет возвращено непонятное сообщение об ошибке. Поскольку C# шаблоны могут объявлять ограничения и строго типизированы, таких потенциальных ошибок нет.

Между тем, компания Sun Microsystems® предложила дополнение к шаблонам в следующей версии языка программирования Java под кодовым названием "Tiger". Компания Sun выбрала реализацию, которая не требует изменения Виртуальной машины Java.

S>>И не думаю, что нечто подобное не изыскивает и Борланд в С++ Builder они есть и не составляет труда все перенести и в Delphi + перегрузку операторов и Inline.

WH>BCB это глюкалово страшное. Если все это перенести в дельфи то точно хана дельфе.


S>>При всей твоей рекламе шаблонов, лично я совершенно безболзненно обхожусь без них,

WH>Ну некоторые и на С безболезненно пишут, а некоторые и на асме.
Еще на 1С и С++. Шутка, но многое писалось о других универсальных способах правда с потерей типизации и скорости но один на все.
S>>но от возможности их применения не отказался бы. Еще раз давай совсем немного подождем,а на данном этапе Delphi уже исчерпал себя.
WH>Вот я и говоряю что .НЕТ2 ждать надо.
А зачем ее ждать, кроме шаблонов, там копать неперекопать, а там и твои шаблоны подойдут.
WH>>> Вот только очередного С++глюка от багландов мне и не хватало...
WH>>>Я очень сильно удивлюсь если это будет нормальный компилятор.
S>> "Каждому Свое". А я очень сильно удивлюсь если ты когда нибудь вообще удивишься продуктам Борланда, в том числе и J Builder
WH>Я не знаю про J Builder но С++билдер это глюкалово сплошное.
и солнце б утром не вставало, когда бы не было меня
Re[35]: По просьбам трудящихся: Delphi vs C++(VS)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.03 11:47
Оценка:
Здравствуйте, mihailik, Вы писали:

WH>>Да ни хрена ты не понял. Посошник САМ совободит память и вызовет деструкторы у объектов если в процессе заполнения произойдет сбой.


M>В Дельфи объекты нельзя распределить в какой-то особенной памяти, кроме как в стандартной куче. Да я и не вижу необходимости.


Небольшая поправочка в менеджере памяти, так как от обычного Heap имеют большое различие и скорость удаления в 10 раз выше чем при удалении из хиппа за счет не возврата памяти а вторичного использования. Хорошо продуманная индексация и объединения неиспользуемых блоков памяти. Почти идеал.
и солнце б утром не вставало, когда бы не было меня
Re[11]: Некоторые итоги:
От: Sergey Россия  
Дата: 18.09.03 11:55
Оценка:
Hello, Serginio1!
You wrote on Thu, 18 Sep 2003 11:37:33 GMT:

S> "Шаблоны С++ существенно отличаются от C# шаблонов. Там где C# шаблоны

S> компилируются в IL, что приводит к тому, что для каждого типа значения
S> специализация разумно происходит во время выполнения и однажды только
S> для ссылочных типов, шаблоны С++ являются по существу макросом
S> расширения кода, которые генерируют специализированный тип для каждого
S> параметра типа, поставляемого в шаблон.

Ага, только вот совершенно забыли про template template parameters и non-type template parameters в С++ И про то, что шаблоны С++ умеют рекурсивные функции во время компиляции считать

S> Кроме того, когда компилятор С++

S> сталкивается с шаблоном, таким как Stack целых, он расширяет код шаблона
S> в класс Stack, содержащий целые как собственный тип. В зависимости от
S> того, является ли параметр типа типом значения или ссылочным типом, за
S> исключением компоновщика, специально разработанного для уменьшения
S> количества кода, каждый раз компилятор С++ создает специализированный
S> класс, в результате чего возникает существенное увеличение размера кода
S> в сравнении C# шаблонами.

Цирк... Где такой убогий компоновщик взять? Даже VC 6.0 понимает, что std::vector<long> и std::vector<int*> — одно и то же.

S> Более того, шаблоны С++ не могут определять ограничения.


Щаз.

S> Они могут

S> только неявно задать ограничения, просто используя член, который должен
S> или не должен принадлежать параметру типа. Если в параметре типа,
S> который в итоге передается в шаблонный класс, этот член существует,
S> программа будет работать правильно. Если член не существует, программа
S> даст сбой и, возможно, будет возвращено непонятное сообщение об ошибке.

Вот этот абзац применительно к C++ — полный бред. Если член не существует, программа просто не скомпилируется — о каких сбоях может идти речь?

Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[36]: По просьбам трудящихся: Delphi vs C++(VS)
От: desperado_gmbh http://www.livejournal.com/users/tolstopuz
Дата: 18.09.03 11:55
Оценка:
Здравствуйте, Serginio1, Вы писали:

M>>В Дельфи объекты нельзя распределить в какой-то особенной памяти, кроме как в стандартной куче. Да я и не вижу необходимости.

S> Небольшая поправочка в менеджере памяти, так как от обычного Heap имеют большое различие и скорость удаления в 10 раз выше чем при удалении из хиппа за счет не возврата памяти а вторичного использования. Хорошо продуманная индексация и объединения неиспользуемых блоков памяти. Почти идеал.

А разве есть другой серьезный компилятор, скажем, C++, в котором нет аналогичного менеджера? sbheap.c из VC, например, весит больше ста килобайт. И в любом случае выделение в стеке дешевле.
Re[11]: Некоторые итоги:
От: AlexK Украина  
Дата: 18.09.03 12:00
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, WolfHound, Вы писали:


WH>>Здравствуйте, Serginio1, Вы писали:


WH>>>> copy-paste-replace. Еще раз повторю шаблоны С++ значительно мощьнее чем copy-paste-replace.

S>>> Ну я и не спорю. И ведутся поиски альтернативных аналогов шаблонов С++ , в том числе присоединения на этапе выполнения программы, а не только компиляции. В Net как как они планируют будет так.
WH>>В .НЕТ это простой copy-paste-replace. Там даже шаблонных функций нет
S> Еще раз http://www.dotsite.ru/Publications/PublicationDetails.aspx?ID=115

... skipped ...

S>Более того, шаблоны С++ не могут определять ограничения. Они могут только неявно задать ограничения, просто используя член, который должен или не должен принадлежать параметру типа. Если в параметре типа, который в итоге передается в шаблонный класс, этот член существует, программа будет работать правильно. Если член не существует, программа даст сбой и, возможно, будет возвращено непонятное сообщение об ошибке. Поскольку C# шаблоны могут объявлять ограничения и строго типизированы, таких потенциальных ошибок нет.


... skipped ...

не стоит приписывать ограничения там где их быть не должно.
Если вникнуть в проблему, то все ограничения которые наложит на код c# будут следствием RTTI или методанных, которые НЕТом сгенерились для себя самого... так что тут С++ на порядок позволяет поднять гибкость и скорость по сравнению с c# — не нужны тебе ограничения ты о них и забыл... нужны прикрутил... а то что c# на порядок надежнее будет, так это скажеться на производительности... надо же куда-то Гигагерцы девать, а то застоялись без дела то...

скоро это будет выглядить приблизительно так: надо тормоза — пиши на НЕТ... увольте... не хочу так жить...
они своей надежностью воспитают еще одно поколение псведо-программеров, который будет считать что умение кинуть на формочку кнопку — делает его прогарммером...

на счет непонятных ошибок так ты ее и в НЕТ получиш... не смотрел как дебугер показывает часть кода от макрософта?

с++ — путь к силе духа! и ясности ума!
отредактировано модератором. _MM_
Re[42]: По просьбам трудящихся: Delphi vs C++(VS)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.03 12:09
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Serginio1, Вы писали:


AD>>>8. Глобальная фабрика объектов.

S>> Если это касается СОМ, то наследоваников от TComObjectFactory великое множество.
WH>Ну и нафига этот геморой? В С++ все ATL делает. Ни разу фабрику ручками не писал.
S>> Set (очень удобно с побитовыми операциями)
WH>Ну и нафига это на уровне языка надо?
Очень удобно и просто. На ассемблере тоже BitBlt существует, но только на регистр.
S>> Встроенная поддержка Строк (в том числе и WideString),Интерфейсов,Вариантов**
WH>Ну интерфейсы еще куда ни шло, а вот строки и темболие варианты на уровне языка
Тоже очень удобно особенно с IDispatch итд.
S>> Классы поддерживающие интерфейсы c автоматическим подсчетом ссылок и приведение к интерфейсу через As

WH>Ну и нафига во все интерфейсы подсчет ссылок запихивать? В С++ это делается на раз, а для привидения типов служит dynamic_cast.

В классы а не в интерфейсы. И работа с приведением через интерфейсы как в Net очень удобна.

S>> Динамические массивы (умные)

WH>И чтоже в них такого умного чего не может std::vector?
S>> Единая иерархия классов а также Is и As *
WH>Вот уж нафиг не упало все классы от одного наследовать. И dynamic_cast никто не отменял.
Аналог dynamic_cast Is плиз ???
Единая информация об объекте. Не прав.
А вот структуры объекты действительно нужны, но с возможность боксинга в объект как в Net

S>> Явное разделение структур и объектов ( хотя записи с методами и не помешали)+-

WH>А смысл?
Смысл в организации хранения данных. Если в С++ практически нет различия, то в Delphi все объекты ссылочные. Ну не знал, что реализованное в Net разграничение между объектами и структурами, а так же единая иерархия классов подвергаются сомнению. Глупые они там наверное, забыли WolfHound спросить. Не в обиду, может действительно правда.
и солнце б утром не вставало, когда бы не было меня
Re[11]: Некоторые итоги:
От: WolfHound  
Дата: 18.09.03 12:11
Оценка: 2 (1)
Здравствуйте, Serginio1, Вы писали:

WH>>В .НЕТ это простой copy-paste-replace. Там даже шаблонных функций нет

S> Еще раз http://www.dotsite.ru/Publications/PublicationDetails.aspx?ID=115
Ну и что ты этим постоянно сказать пытаешься? Для валью типов все тоже дублирование кода, а для ссылочных один код на всех. И что с того?
Мне чесно говоря вобще наплевать на то как это реализовано.
Мне нужно на уровне языка иметь возможности для реализации:
1)Обобщенных строготипизированых контейнеров. Это все на что способны .НЕТ шаблоны в том виде как они описаны в статье. Причем опять же не дотягивают до С++. Что касается ограничений то это они либо по незнанию либо террористы. В С++ можно тАкие проверки на параметры шаблона задать что шарпу и не снилось.
2)Обобщенные, адаптивные алгоритмы.
3)Мощьный codereusing
Причем 2 и 3 они только выглядат скромно, а на самом деле каждый из них будет побольше чем 1.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: Некоторые итоги:
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.03 12:19
Оценка: :))
Здравствуйте, AlexK, Вы писали:

AK>скоро это будет выглядить приблизительно так: надо тормоза — пиши на НЕТ... увольте... не хочу так жить...

Ну да Native компиляторы доживают свой век или уйдут в Linux, т.к. там уже на конкретной машине под камень и операционку компилируют, а не толко программы.
Живи по старому....
AK>они своей надежностью воспитают еще одно поколение псведо-программеров, который будет считать что умение кинуть на формочку кнопку — делает его прогарммером...
Хехе уже давно воспитаны на Васиках и 1С.
AK>на счет непонятных ошибок так ты ее и в НЕТ получиш... не смотрел как дебугер показывает часть кода от макрософта?

AK>с++ — путь к силе духа! и ясности ума!

Программирование это не профессия, а Смысл Жизни!!!!
и солнце б утром не вставало, когда бы не было меня
Re[43]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 12:22
Оценка:
Здравствуйте, Serginio1, Вы писали:

WH>>Ну и нафига во все интерфейсы подсчет ссылок запихивать? В С++ это делается на раз, а для привидения типов служит dynamic_cast.

S> В классы а не в интерфейсы. И работа с приведением через интерфейсы как в Net очень удобна.
А чем чисто абстрактный класс без данных отличается от интерфейса?

WH>>Вот уж нафиг не упало все классы от одного наследовать. И dynamic_cast никто не отменял.

S>Аналог dynamic_cast Is плиз ???
typeid
S> Единая информация об объекте. Не прав.
S> А вот структуры объекты действительно нужны, но с возможность боксинга в объект как в Net
НАФИГА? Создал в стеке пусть лежит в стеке, создал в хипе пусть будет в хипе. Нафига это разделение?
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[36]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 12:25
Оценка:
Здравствуйте, Serginio1, Вы писали:

WH>>>Да ни хрена ты не понял. Посошник САМ совободит память и вызовет деструкторы у объектов если в процессе заполнения произойдет сбой.

M>>В Дельфи объекты нельзя распределить в какой-то особенной памяти, кроме как в стандартной куче. Да я и не вижу необходимости.
S> Небольшая поправочка в менеджере памяти, так как от обычного Heap имеют большое различие и скорость удаления в 10 раз выше чем при удалении из хиппа за счет не возврата памяти а вторичного использования. Хорошо продуманная индексация и объединения неиспользуемых блоков памяти. Почти идеал.
Пишем аллокатор на пуле и он что хочешь уделает. Вот только всегда ли оно надо?
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[37]: По просьбам трудящихся: Delphi vs C++(VS)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.03 12:41
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Serginio1, Вы писали:


WH>>>>Да ни хрена ты не понял. Посошник САМ совободит память и вызовет деструкторы у объектов если в процессе заполнения произойдет сбой.

M>>>В Дельфи объекты нельзя распределить в какой-то особенной памяти, кроме как в стандартной куче. Да я и не вижу необходимости.
S>> Небольшая поправочка в менеджере памяти, так как от обычного Heap имеют большое различие и скорость удаления в 10 раз выше чем при удалении из хиппа за счет не возврата памяти а вторичного использования. Хорошо продуманная индексация и объединения неиспользуемых блоков памяти. Почти идеал.
WH>Пишем аллокатор на пуле и он что хочешь уделает. Вот только всегда ли оно надо?
Не знаю как в M$ но МП в Delphi покрывает 99.9%. Хиппы, аллоки применяю только для списков для быстрого удаления всей кучи,или для связанных страниц большого размера например для отхода от изменяющейся непрерывной памяти и их проблемах с реалоками. Там МП не нужен.
http://www.rsdn.ru/article/Delphi/memmanager.xml
Автор(ы): Андрей Мистик
Дата: 21.02.2003
В данной статье я постараюсь в общих чертах описать принципы работы менеджера памяти Delphi.
Зачем это нужно? Ведь, казалось бы, работает себе и работает, зачем его трогать? Это нужно по нескольким причинам. Во-первых, никогда не помешает разбор чужого кода, особенно если это грамотный код. Это возможность научиться чему-либо новому, а также получить эстетическое наслаждение. Во-вторых, никогда не лишне поглубже разобраться в чем-то, убедиться в тех вещах, в которых вы ранее не были уверены или же, наоборот, найти слабые места, о которых вы ранее и не подозревали, чтобы в будущем писать более эффективный код.

Может нечто подобное и реализованио в С++.
Но я получил огромное удовольствие от изучения GetMem.inc
и солнце б утром не вставало, когда бы не было меня
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.