Re[15]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 18.09.03 16:20
Оценка:
M>>Если я тебя правильно понял, ты считаешь, что драйвера нужно писать на продвинутом C++ с STL и прочими наворотами?

WH>А почему нет?


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

В некоторых местах в драйвере нельзя никакой лишней работы делать. Чтобы не дай бог ни подкачки, ни задержки никакой не было. Ну, закрепишь ты свой собственный код в памяти от свопирования. Но служебные библиотеки мало ли как там закреплять — это отдельно тестировать нужно.
... << RSDN@Home 1.1 beta 1 >>
Re[36]: По просьбам трудящихся: Delphi vs C++(VS)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.09.03 16:31
Оценка:
Здравствуйте, mihailik, Вы писали:

S>> а учитывая кроме всего прочего что SQL еще и интерпретатор то....


M>В MS SQL точно компилятор, а не интерпретатор.


M>Думаю, и в других "больших" серверах то же самое.

http://www.rsdn.ru/Forum/Message.aspx?mid=370720&amp;only=1
Автор: Serginio1
Дата: 01.09.03
и солнце б утром не вставало, когда бы не было меня
Re[37]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 18:14
Оценка:
Здравствуйте, mihailik, Вы писали:

WH>>Ты нет а вот те кто придумывал COM почемуто видят.

M>Те, кто придумывал COM, сейчас стараются его как можно скорее забыть.
Да. Но он еще живее всех живых.

WH>>А варианты? А строки их к стати тоже нужно в COM аллокатором размещать если вернуть хочешь.

M>Ну, разве что строки. O.K., напишем отдельный классик для строк. Пока ничего серьёзного.
Да еще нужна типизированые массивы...

M>Замечаем разницу, но я пример приводил

M>В том же C++ не всегда можно забить на время жизни.
В 99.999999% случаев. В то время как в дельфе надо в 100% случаев ручками.

WH>>Вот мне недавно надо было просканить папку и вернуть файлы удвалетворяющие маске.

M>Это всё хорошо. Ручной труд — он ведь облагораживает
Мое решение разгрузило алгоритм а это многого стоит.

M>Ну что я тебе могу сказать про этот народ и этот сервер. Я ни того ни другого не знаю

Ну народ там нормальный, а вто OPC протокол хорошо что я на С++ пишу.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[41]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 18:14
Оценка:
Здравствуйте, mihailik, Вы писали:

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

M>Иногда этот "каждый раз" означает в точности "один раз".
Даже если и так то как правило основная логики становится прозрачней ибо не замусорена логикой работы с ресурсом, а работы практически столькоже но учитывая что алгоритм получился болие прозрачный с поддержкой будет меньше проблем. Факт.
M>Но в остальном тенденция, конечно, полезная. Если меру знать
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[39]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 18:14
Оценка: +1
Здравствуйте, mihailik, Вы писали:

WH>>Ну и нахрена это надо?

M>Для однообразности и простоты. Все объекты ведут себя с памятью одинаково. Мозги не парятся.
Супер аргумент.

WH>>Вот и приходится городить try/finally постоянно.

M>Не постоянно. В Дельфи тоже есть способ уйти от ручного вызова деструкторов к подсчёту ссылок. Интерфейсы всегда работают по учёту ссылок.
Ага это мне для каждого объекта придется писать интерфейсы... и всегда через них таскать
А слабо integer by ref сделать? Я не знаю зачем но в С++ это делается на раз boost::shared_ptr<int>

WH>>Это еще почему?

M>А вот чтобы приколисты вроде Страуструпа не выдумывали разных новых значений оператора сдвига. Сдвиг — он в Дельфи всегда сдвиг.
Хм. А я уже не помню когда последней раз использовал << как сдвиг.
Но если тебя это не устраивает то не используй стандартные потоки и все.
К томуже под это попадают вектора для которых прегрузить + сам бог велел...

WH>>В том то и засада что не всегда объект можно просто скопировать.

M>А все объекты byref, то есть ничего и не копируется. Чтобы сделать копию, нужно как и в .NET вызвать какой-нибудь Clone.
Да ради бога. В С++ можно тоже пользоваться только by ref и что? Просто я предпочитаю иметь выбор.

WH>>Ага. И использование полиморвных контейнеров ведет к чистоте, простоте и надежности

M>Тут ты прав. Действительно удобно.
Тормоза, отсутствие контроля типов со стороны компилятора это без сомнения очень практично.

WH>>При написании ГУИ к БД согласен, а вот на счет всего остального.

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

WH>>А теперь представь что на разработка жабы или .НЕТ пришлось бы потратить примерно в двое больше ресурсов

M>А причём здесь .NET? На .NET шаблоны себя не заставили ждать.

M>>Ага. Компилятор Java написали. Интерпретатор и JIT'тер написали. А шаблоны — нет, тут сложность невероятно высока.

M>А вот Java давно написана, а о шаблонах всё разговоры да разговоры.
Вот по тому и разговоры что задаче не тривиальная.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[39]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 18:14
Оценка:
Здравствуйте, mihailik, Вы писали:

M>>>RTTI (aka Reflection)

WH>>Рефлекшен в дельфе... Бедные мои тапочки... Ну не надо сравнивать бумажный самолетик с истребителем пятого поколения.
M>Почему не надо сравнивать?

M>RTTI решает те же проблемы, что и Reflection. Сериализация и ремотинг. Конечно, RTTI похилее Reflection'а, ну и что? Работает, функции выполняет.

см разговор с Синклером на счет сериализыции.

M>Свойства — это важная архитектурная особенность.


M>Языки, в которых поддерживаются свойства являются компонент-ориентированными. Ну вот не могу сказать почему так выходит, а реальность такова.
Это ни как не связано. В С++ я могу эмулировать свойства, а некоторые компиляторы поддерживают их в качестве расширения.

M>А я не вижу ничего хорошего в том, что C++ не понимают люди без образования.

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

M>Если тебе непонятны эти преимущества, возможно они тебе и не нужны.

Преймущества .НЕТ это Reflection и Reflection.Emit это сильно, а все остальное фигня.

M>Мало ли у кого какая отрасль работы. А мне вот нужно, чтобы мой код был понятен [censured]'ам, и свойство-ориентированность тоже удобна.

Вот это действительно круто.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 18.09.03 18:14
Оценка:
Здравствуйте, mihailik, Вы писали:

WH>>Что такое исключение? Это ФАТАЛЬНЫЙ сбой в алгоритме. Следовательно алгоритм не отработал.

WH>>Вопрос нафига записывать мусор если надо просто сообщить о провале и подчистить ресурсы?
M>А вот надо. Лог вести, или ещё какие предсмертные действия совершить.
Лог кидающий исключения. Гениально.

M>Ну и кто по твоему должен что сказать? Или для всех локальных объектов Dispose делать?

M>
M>FileStream CreateFileStream(string filename)
M>{
M>    return new FileStream(filename, bla, bla, bla);
M>}
M>

Вот и я о томже. На С++ это будет так
boost::shared_ptr<FileStream> CreateFileStream(string filename)
{
    return boost::shared_ptr<FileStream>(new FileStream(filename, bla, bla, bla));
}

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

WH>>А почему нет?

M>Потому, что рантайм-библиотеки не писались для этого применения. Мало ли, каким образом там память выделяется, какие дополнительные функции вызываются.
STL и CRT это немного разные вещи не находишь?
M>В некоторых местах в драйвере нельзя никакой лишней работы делать. Чтобы не дай бог ни подкачки, ни задержки никакой не было. Ну, закрепишь ты свой собственный код в памяти от свопирования. Но служебные библиотеки мало ли как там закреплять — это отдельно тестировать нужно.
Слова человека не знающего о существовании такого понятия в STL как allocator.
Но даже если забить на STL то ни что не мешает просто пользоваться всеми благами шаблонов.
... << RSDN@Home 1.1 beta 2 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[39]: По просьбам трудящихся: Delphi vs C++(VS)
От: WFrag США  
Дата: 19.09.03 01:29
Оценка:
Здравствуйте, mihailik, Вы писали:

M>А причём здесь .NET? На .NET шаблоны себя не заставили ждать.

M>А вот Java давно написана, а о шаблонах всё разговоры да разговоры.

Судя по тому компилятору, который они сейчас попробовать дают, в Java будут на редкость отстойные шаблоны .
Re[38]: По просьбам трудящихся: Delphi vs C++(VS)
От: FWP Россия  
Дата: 19.09.03 05:07
Оценка:
M>>В том же C++ не всегда можно забить на время жизни.
WH>В 99.999999% случаев. В то время как в дельфе надо в 100% случаев ручками.
Ошибаешься слегка!

WH>Ага это мне для каждого объекта придется писать интерфейсы... и всегда через них таскать

Ну да, все время забываю, что ты знаток Delphi !
Re[41]: По просьбам трудящихся: Delphi vs C++(VS)
От: ArtDenis Россия  
Дата: 19.09.03 06:46
Оценка:
Здравствуйте, mihailik, Вы писали:

AD>>3. функции *

M>Почему в Дельфи Процедуры и функции, причём даже "в т.ч. вложенные" не удостоились звезды, а в C++ простые функции удостоились?
Каюсь, забыл.

AD>>4. Классы *

M>Почему в Дельфи Классы не удостоились звезды, а в C++ удостоились?
Ещё раз извиняюсь

AD>>7. Нормальная(!) перегрузка функций *

M>В Дельфи, значит, ненормальная?
Да.

AD>>9. Понятие "объект класса" *

M>Что такое за понятие?
Это значит, что объявляя переменную с типом класса, вот так:
ClassName variable;

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

AD>>10. Поименованные области *

AD>>11. Шаблоны и STL:

M>Ну да, а для Дельфи есть VirtualTreeView — очень удобный компонент. Если уж пошли библиотеки сравнивать.



AD>> — типизированные контейнеры и массивы *

Какую-то я фигню написал про массивы. Любой массив типизирован, т.к. все его элементы имеют один и тот же тип. Сорри, видимо торопился. Но это к делу не относится.

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



Ага, значит, если мы объявляем массив
  arr : array[1..200] of Integer;

то получаем массив неизвестно чего Ты бы, сначала, паскаль подучил, прежде чем спорить.

Да кстати, о шаблонах, забыл добавить в список одну замечательную вещь — стратегии, которые позволяют конструировать объекты с желанным типом поведения. Короче, Александреску рулит!
... << RSDN@Home 1.1 beta 1 >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[36]: По просьбам трудящихся: Delphi vs C++(VS)
От: akasoft Россия  
Дата: 19.09.03 07:52
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>А слабо на дельфях нарисовать ГУЙ в ХР стиле?


Нет, не слабо. Даже задумываться не надо.
... << RSDN@Home 1.1 beta 2 >>
Re[41]: По просьбам трудящихся: Delphi vs C++(VS)
От: akasoft Россия  
Дата: 19.09.03 07:53
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Если архитектура нормальная для C++, то на C++ работы меньше. Если архитектура нормальная для Дельфи — соотвественно.


Просто разные "архитектурные" подходы.
... << RSDN@Home 1.1 beta 2 >>
Re[39]: По просьбам трудящихся: Delphi vs C++(VS)
От: akasoft Россия  
Дата: 19.09.03 07:53
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Ладно, ладно, семь — магическое число. Согласен. Тут C++ переплюнул, у него число более знатное.


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

А если я скажу: SysUtils/Math/Classes/System — то перекроет это функционал STL? Я сомневаюсь... Но ведь эти 4 модуля никто не обозвал Delphi STL, а ведь могли бы.

И, например, уже написанной библиотеки с подобным функционалом невизуальным и для Дельфи я пока не вспомню. Вот и гнёт он нас этим STL.

А вот раньше помню приходилось делать свои PInteger, IntegerArray и др. В D6/D7 эти вещи завраппены, и можно пользоваться "стандартными" типами...
... << RSDN@Home 1.1 beta 2 >>
Re[40]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 19.09.03 08:05
Оценка:
Здравствуйте, akasoft, Вы писали:

A>И, например, уже написанной библиотеки с подобным функционалом невизуальным и для Дельфи я пока не вспомню. Вот и гнёт он нас этим STL.

И не вспомнишь. Ибо не возможно.

A>А вот раньше помню приходилось делать свои PInteger, IntegerArray и др. В D6/D7 эти вещи завраппены, и можно пользоваться "стандартными" типами...

В том то и дело что в дельфе на каждый тип приходится писать враперы в то время как в С++ один раз шаблон.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
от модератора
От: _MarlboroMan_ Россия  
Дата: 19.09.03 08:08
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD> Ты бы, сначала, паскаль подучил, прежде чем спорить.


а я бы на твоем месте таких заяв не делал... бо чревато боком.
... << RSDN@Home 1.1 beta 2 >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[41]: По просьбам трудящихся: Delphi vs C++(VS)
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 19.09.03 12:17
Оценка:
Здравствуйте, mihailik, Вы писали:

M>>>Есть COM-объект. Необходимо вызывать какие-то его методы, использовать свойства при помощи позднего связывания, т.е. методов IDispatch. В скриптовых языках, в VB, в Дельфи это очень просто.

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

Ну дык. Сабжект топика такой.

ГВ>>Конечно, если накатать набор врапперов, то можно сделать и "по позднему связыванию". В результате код пользователя будет примерно таким:

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

Если относительно таких задач рассуждать, то для них и вовсе никакого враппера не нужно. Что ты будешь на каждом вызове HRESULT обрабатывать, что свой обработчик сделаешь; что напрямую через VMT-интерфейс, что через IDispatch — монопенисуально.

M>Кроме того, работа по позднему связыванию отличается от работы по интерфейсам тем, что освобождает от привязки к версиям. Если на C++ импортировать Office XP TLB, то с Office 2000 вполне полезут проблемы.


Проблемы и на VB иногда лезут. А с другой стороны, никто не мешает внутри С++ — врапперов сделать вызовы через IDispatch и вообще навернуть всё что угодно, хоть динамическое построение vmt, благо она там не ахти какая сложная — без множественного наследования-то.

ГВ>>Ну и наконец, если в твоей программе логики помимо подключения COM-объектов мало, то кой чёрт тогда тебе C++ использовать? Бери тот же VB и полный вперёд!

M>Ага. Согласен. Для OLE Automation лучше использовать более соответствующий язык.

Правильно, только обрати внимание — для использования COM/OLE-объектов.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[44]: По просьбам трудящихся: Delphi vs C++(VS)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.09.03 13:10
Оценка: -2 :)
Здравствуйте, WolfHound, Вы писали:

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


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

S>> В классы а не в интерфейсы. И работа с приведением через интерфейсы как в Net очень удобна.
WH>А чем чисто абстрактный класс без данных отличается от интерфейса?
Чем ??? Посмотри на реализацию придуманную M$. Дла каждого объекта (не класса) генерятся в памяти функции заглушки, которые генерят вызов методов класса с передачей данных объекта (Self) в методы класса.
Вот и поймешь в чем причина. Не прав.
WH>>>Вот уж нафиг не упало все классы от одного наследовать. И dynamic_cast никто не отменял.
S>>Аналог dynamic_cast Is плиз ???
WH>typeid
Гхы-Гхы. WolfHound хоть ты и RSDN но рассыждаешь как зеленоротый птенец. По сути объекты 1С++ схожи со структурами. Но виртуальность накладывает на обязательное поле ссылки на VMT, в Delphi с отрицательным смещение хранится куча информации о типе , интерфейсах итд. Кроме всего прочего вариантный подход, тоже требует определенных методов по преобразованию. Я лично ну ни как не пойму какие проблемы у С++ с БД.
А как насчет InheritedForm,,,,
S>> Единая информация об объекте. Не прав.
S>> А вот структуры объекты действительно нужны, но с возможность боксинга в объект как в Net
WH>НАФИГА? Создал в стеке пусть лежит в стеке, создал в хипе пусть будет в хипе. Нафига это разделение?
Создал структуру как в Net и пусть себе лежит. Какие проблемы. Неотвечаешь на предыдущие вопросы. Единственный аргумент Шаблоны. И все???
Честно говоря, как оппонент Вы WolfHound, очень не интересны. Абсолютно нет никакого конструктивизма и анализа. Уперся рогом и все. Извини за столь резкие высказывания, но это Правда. Не важно на чем программируешь. Мне лично по барабану. Но в Net Я нашел, то что искал и ищу.
С++ умрет, а Виртовский Паскаль останется. И уже доказал свою состоятельнось, не взирая на свой возраст. Главное фундамент.
Если Ты в Москве готов в личном поединке обсудить общеязыковые проблемы за кружечкой Водки.
и солнце б утром не вставало, когда бы не было меня
Re[39]: По просьбам трудящихся: Delphi vs C++(VS)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.09.03 14:05
Оценка:
Здравствуйте, mihailik, Вы писали:

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


L>>А как по твоему передаются параметры? По воздуху?


M>Все ОБЪЕКТЫ by ref. В C++ объекты (экземпляры классов) могут располагаться как в стеке, так и по адресу в памяти.


M>А в Дельфи переменная типа TObject — на самом деле указатель.

Спасибо. А причем тут Я???? А вот с FPU действительно Борланд покачал.
и солнце б утром не вставало, когда бы не было меня
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.