Re[16]: По просьбам трудящихся: Delphi vs C++(VS)
От: Dimonka Верблюд  
Дата: 04.09.03 07:26
Оценка: -1
Здравствуйте, WolfHound, Вы писали:

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


FWP>>>>-На Delphi нет STL

D>>Что ж в этом STL такого, чего на Delphi не досягаемо?
WH>Нука изобрази аналог на дельфях.
WH>
WH>int main()
WH>{
WH>    enum{N=100};
WH>    int int_arr[N];
WH>    float float_arr[N];
WH>    double double_arr[N];
WH>    std::string string_arr[N];
WH>    //....
WH>    std::sort(int_arr, int_arr+N);
WH>    std::sort(float_arr, float_arr+N);
WH>    std::sort(double_arr, double_arr+N);
WH>    std::sort(string_arr, string_arr+N);
WH>    return 0;
WH>}
WH>

WH>Заметь объекты разного размера и природы. А тагже мы не получаем никакого оверхеда.
WH>Еще сюда
Автор: WolfHound
Дата: 28.08.03
глянь.

WH>И это только цветочки...

Сортировка, это конечно замечательно, но не так критично.

WH>Что? GC? Reflection? Runtime code generation? Или ты говоришь что окошки похожи?

WH>Ну окошки на дельфе рисовать это нормально но писать логику

А логика на Дельфи выглядит, имхо, гораздо более читаемо, чем на Си++, а это тоже немаловажно.
Re[19]: По просьбам трудящихся: Delphi vs C++(VS)
От: desperado_gmbh http://www.livejournal.com/users/tolstopuz
Дата: 04.09.03 08:44
Оценка: +2
Здравствуйте, FWP, Вы писали:

FWP>Ну зачем считать других глупее себя. Читай еще раз Берем библиотеку, в которой реализована сортировка для нужного типа и все.


Да-да. Пишем свой тип данных, а потом ищем в интернете, не написал ли уже кто-нибудь для него сортировку.
Re[19]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 04.09.03 09:21
Оценка: +2
Здравствуйте, FWP, Вы писали:

FWP>Ну зачем считать других глупее себя. Читай еще раз Берем библиотеку, в которой реализована сортировка для нужного типа и все.

В STL реализована сортировка не для нужного мне типа, а для ВСЕХ типов в том числе и еще не созданых.
Почувствуй разницу для ВСЕХ и для КОНКРЕТНОГО.
Другими словами один раз для всех или много раз для каждого.
И тоже для всех STL алгоритмов и контейнеров.
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[17]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 04.09.03 09:21
Оценка:
Здравствуйте, Dimonka, Вы писали:

D>Сортировка, это конечно замечательно, но не так критично.

Если ты считаешь что в STL есть только сортировка то ты ошибаешься.
STL это набор базовых алгоритмов и структур данных которых хватает на 99% случаев.
WH>>Что? GC? Reflection? Runtime code generation? Или ты говоришь что окошки похожи?
D>А логика на Дельфи выглядит, имхо, гораздо более читаемо, чем на Си++, а это тоже немаловажно.
Во первых не уходи от вопроса.
Во вторых нука приведи кусок кода не дельфях, а я посмотрю...
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: По просьбам трудящихся: Delphi vs C++(VS)
От: DOOM Россия  
Дата: 04.09.03 10:08
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


M>>Френдов-то? Да там все, кто внутри одного файла — френды.

WH>Плохо. Френдом должен быть только тот кого френдом назвали, а не все в одном модуле.
Это тоже из серии begin end vs {}. Кстати begin end прикольнее
Поскольку неприкольно описывать 10-ок функций друзьями для объекта. Проще их скидать в один файл.



По поводу STL. Ну сдох у меня дома CD-ROM, Дельфу не могу поставить и что-нибудь изобразить. Но ведь сам должен понимать, что используя указатели можно создать контейнер для произвольного типа данных, что используя функции сравнения можно отсортировать/найти элемент за log в массиве с любыми элементами. С ними же можно реализовать произвольный map. ЕДИНСТВЕННЫЙ минус это функции сравнения вместо перегруженных операторов. Но это тоже не принципиально.


P.S. И где это встречаются программы с такой хитрой логикой? Что прям таки 99% времени на реализауию подобных конструкций уходит?
Re[4]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 04.09.03 14:51
Оценка:
M>>Френдов-то? Да там все, кто внутри одного файла — френды.

WH>Плохо. Френдом должен быть только тот кого френдом назвали, а не все в одном модуле.


Конечно плохо. Это компромисс между простотой и изощрённостью. Плохо в одном аспекте — хорошо в другом.

В C++ можно много чего хитромудрого наворотить, только вот простоты в нём маловато. И человеку с этим синтаксисом нелегко, и компилятор долго колдует.

Конечно, есть люди, которым по долгу службы приходится на ассемблере писать. Слава богу, я к таким не принадлежу.
... << RSDN@Home 1.1 beta 1 >>
Re[10]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 04.09.03 14:51
Оценка:
C>> А драйвера и операционки тоже на Делфях писАть будем...

DOO>Разница-то в чем??? Я на Дельфи не только "окошки с клиентами БД" писал.


Дельфи-компилятор может генерировать только PE-формат на выходе. Это значит EXE или DLL. У файлов драйверов другой формат.

Соответственно, на Дельфи по любому драйвер не напишешь
... << RSDN@Home 1.1 beta 1 >>
Re[11]: По просьбам трудящихся: Delphi vs C++(VS)
От: Sergey Россия  
Дата: 04.09.03 15:12
Оценка:
Hello, mihailik!
You wrote on Thu, 04 Sep 2003 14:51:07 GMT:

m> Дельфи-компилятор может генерировать только PE-формат на выходе. Это

m> значит EXE или DLL. У файлов драйверов другой формат.

Этим вообще-то линкер занимается.

m> Соответственно, на Дельфи по любому драйвер не напишешь


Ну если MS'овским editbin OMF'ные объектники конвертнуть в COFF, а потом MS'овским же линкером попробовать собрать LE — может и получится. Хотя пробовать надо, конечно

Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[5]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 04.09.03 15:32
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>По поводу STL. Ну сдох у меня дома CD-ROM, Дельфу не могу поставить и что-нибудь изобразить. Но ведь сам должен понимать, что используя указатели можно создать контейнер для произвольного типа данных, что используя функции сравнения можно отсортировать/найти элемент за log в массиве с любыми элементами. С ними же можно реализовать произвольный map. ЕДИНСТВЕННЫЙ минус это функции сравнения вместо перегруженных операторов. Но это тоже не принципиально.

Вот только у тебя там все будет в злых кастах следовательно не типобезопасно следовательно куча ошибок....
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 04.09.03 16:17
Оценка:
M>>Запускаю компилироваться — не работает.
WH>Заходишь в студию, создаешь пустой Win32 DLL проект, создаешь cpp фаил, копируешь туда.

M>>Наверное, там ещё кучу всяких makefile и т.п. нужно? Вот так я о том и говорю.

WH>Все делает студия. Да и дельфя тоже проектные файлы генерит.

Ничего Дельфи не создаёт. Проект — этот файл на паскале, к примеру тот, что я привёл. Ну, когда формы используются ещё есть DFM.

А в этом случае просто берёшь тот текстик, что я накропал и вызываешь ему "dcc32 myfile.pas". Без всякой среды скоренько компилируется в добротную небольшую DLL.

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


WH>Вот только когда появляется необходимость в обобщенных контейнерах, в обобщенных алгоритмах, сильных и слабых ссылках,... без оверхеда и со сторогим контолем типов.

WH>Тогда в дельфе начинается ад, а в С++ нирвана. Не веришь? Нука изобрази мне обобщенную сортировку на дельфях. На С++ смотри std::sort.

Что есть обобщённая сортировка? TList.Sort, насколько я помню, всё отлично сортировал при помощи пользовательской реализации сравнения.

WH>Или сильные и слабые ссылки см boost::shared_ptr и boost::weak_ptr. И многое другое.


"И многое другое" — это да, тут ты прав. В каждом языке есть своё "многое другое". Но в данном случае я говорил о читабельности и простоте кодирования.

WH>А то что ты написал это из серии begin end vs {}...


Не совсем. Посмотри, сколько в твоём сишном коде "мусорных" словечек типа __declspec или #define. В конце концов те же LPVOID. А код на Дельфе читается без напряга. Каждое слово обозначает именно то, что подразумевается по названию.
... << RSDN@Home 1.1 beta 1 >>
Re[16]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 04.09.03 16:17
Оценка:
WH>Нука изобрази аналог на дельфях.
WH>
WH>    std::sort(int_arr, int_arr+N);
WH>    std::sort(float_arr, float_arr+N);
WH>    std::sort(double_arr, double_arr+N);
WH>    std::sort(string_arr, string_arr+N);
WH>    return 0;
WH>}
WH>


Я вот не знаком с std::sort. Что такое этот код?

Сортировка и в Дельфи есть. Если нужно сортировать объекты некоторого типа, пишем функцию сравнения — и передаём задачу в функции стандартной библиотеки.

Если ты имеешь ввиду именно простую форму записи, тогда да. В этом случае запись на C++ действительно компактнее и проще. Но это частный случай, в реальных программах сишный код наоборот очень забористый.

WH>Заметь объекты разного размера и природы. А тагже мы не получаем никакого оверхеда.


В Дельфе тоже никакого оверхеда. Разве что, возможно, лишний уровень indirection, который в случае с шаблонами, возможно, компилятор исключит.

Ну, это оверхед просто гигантский. Особенно будет заметно на реальных задачах.

WH>Ну окошки на дельфе рисовать это нормально но писать логику


Да уж, логику-то точно в сях писать хреново. Кто потом её читать будет, эту вот логику?

На сях нужно системные примочки делать, всякие критичные места. А логику нужно делать на таком языке, чтоб любой чужой человек прочитал с листа. К примеру, C#, Дельфи. На худой конец, VB.
... << RSDN@Home 1.1 beta 1 >>
Re[18]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 04.09.03 16:17
Оценка:
D>>Сортировка, это конечно замечательно, но не так критично.

WH>Если ты считаешь что в STL есть только сортировка то ты ошибаешься.

WH>STL это набор базовых алгоритмов и структур данных которых хватает на 99% случаев.

99% случаев чего?

Если тебя послушать, получается Дельфёвый софт можно сократить в сто раз, введи Борланд в Дельфю шаблоны?
... << RSDN@Home 1.1 beta 1 >>
Re[18]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 04.09.03 16:17
Оценка:
WH> а если хочешь отсортировать типы для которых не определен < просто пишешь свой компатор и все.

Во-во. То же, что и в Дельфи.

Как будто трудно сделать сортировку на компараторах без шаблонов. Бедные явщики, мучаются
... << RSDN@Home 1.1 beta 1 >>
Re[9]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 04.09.03 16:17
Оценка:
M>>Так я же и говорю — в Дельфи скорость компиляции примерно такая же, как пару раз нажать стрелочку вниз. Даже C# до этой скорости далеко. А уж C++ ни в жизнь не догонит.

VD>Ну, ну. У нас был проектик который компилировался минуту. Отлаживаться было очень не комфортно.


Вот оно, преимущество компилятора Дельфи в чистом виде.

Старый Дельфист, покопавшись в памяти, вспомнил проект, который компилировался аж МИНУТУ!
... << RSDN@Home 1.1 beta 1 >>
Re[16]: По просьбам трудящихся: Delphi vs C++(VS)
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.09.03 16:19
Оценка: :)
Здравствуйте, WolfHound, Вы писали:


FWP>>>>-На Delphi нет STL

D>>Что ж в этом STL такого, чего на Delphi не досягаемо?
WH>Нука изобрази аналог на дельфях.
WH>
WH>int main()
WH>{
WH>    enum{N=100};
WH>    int int_arr[N];
WH>    float float_arr[N];
WH>    double double_arr[N];
WH>    std::string string_arr[N];
WH>    //....
WH>    std::sort(int_arr, int_arr+N);
WH>    std::sort(float_arr, float_arr+N);
WH>    std::sort(double_arr, double_arr+N);
WH>    std::sort(string_arr, string_arr+N);
WH>    return 0;
WH>}
WH>

WH>Заметь объекты разного размера и природы. А тагже мы не получаем никакого оверхеда.
WH>Еще сюда
Автор: WolfHound
Дата: 28.08.03
глянь.

WH>И это только цветочки...
Данный пример очень легко решается смотри _DynArrayXXX и typeInfo правда Функцию сравнения нужно присваивать.
Проблема шаблонов в Delphi легко решается через обыкновенную замену (суть в шаблонах та же, только выполняется компилятором) но шаблоны явно не помешали бы. Перегрузка операторов тоже нет. С другой стороны очень много вещей которые компилятор берет на себя в Delphi (Динамические массивы,строки интерфейсы, диспинтерфейсы итд).

Тот же вариант легко решается и через TList, но не совсем красиво.

Я лично считаю, что будущее за Net и спор этот абсолютно бессмысленен и неуместен ввиду их (Native Delphi и VS C++) скорой гибели . Очень интересно посмотреть на Delphi.Net. А вот перспективы (опять же в моем понимании) C++ весьма туманны и ....
И связано прежде всего с выходом огромного количества по архитектуре процессоров да и сама идеалогия Net (отражение, динамическое создание объектов, продуманная структура объектов, единая платформа и языковая независимость) намного прогрессивнее, чем улучшать уже морально устаревшие Native компиляторы и языки на них базирующихся.

В любом случае Сишники должны быть только благодарны Delphi за одно только, что есть конкурент, а значит есть стимул развития продуктов от M$. Кстати здесь тоже интересно посмотреть на подводные камни
Например
Теория: MS .Net — продукт Borland
http://sumdu.edu.ua/~chekalov/teach/net_is_borland03.htm
это третья статья
http://sumdu.edu.ua/~chekalov/teach/net_is_borland01.htm
http://sumdu.edu.ua/~chekalov/teach/net_is_borland02.htm

Это только мое скромное личное мнение.
и солнце б утром не вставало, когда бы не было меня
Re[12]: По просьбам трудящихся: Delphi vs C++(VS)
От: mihailik Украина  
Дата: 04.09.03 16:57
Оценка:
m>> Дельфи-компилятор может генерировать только PE-формат на выходе. Это
m>> значит EXE или DLL. У файлов драйверов другой формат.

S>Этим вообще-то линкер занимается.


Это в сях — линкер. Устарелая технология.

А в Дельфе никакого линкера нету, тут всё сплошной компилятор делает.

m>> Соответственно, на Дельфи по любому драйвер не напишешь


S>Ну если MS'овским editbin OMF'ные объектники конвертнуть в COFF, а потом MS'овским же линкером попробовать собрать LE — может и получится. Хотя пробовать надо, конечно


Тогда уж лучше "голову" драйвера сделать на сях, а остальное грузить DLL-кой. Загрузить, проинициализировать и в памяти закрепить, чтоб не дай бог не свопанулось.

Хотя всё равно это фигня. Не Дельфёвое это дело — драйвера писать.
... << RSDN@Home 1.1 beta 1 >>
Re[19]: По просьбам трудящихся: Delphi vs C++(VS)
От: WolfHound  
Дата: 04.09.03 16:59
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Как будто трудно сделать сортировку на компараторах без шаблонов. Бедные явщики, мучаются


type
    my_cool_type=record
        w:word;
        r1, r2, r3:real;
        b:byte;
    end;
var
    arr_of_integer:array[0..4] of integer;
    arr_of_extended:array[0..7] of extended;
    arr_of_string:array[0..5] of string;
    arr_of_real:array[0..6] of real;
    arr_of_my_cool_type:array[0..7] of my_cool_type;
begin
{заполнили}
{А тут попрошу отсортировать.}
end.

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

M>Да уж, логику-то точно в сях писать хреново. Кто потом её читать будет, эту вот логику?

Ты мне это не втирай ладно. Я на паскакале и дельфях кучу кода написал.
Отсутствие автоматических объектов превращает жизнь в ад вернее в try finaly что тоже самое.
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[10]: По просьбам трудящихся: Delphi vs C++(VS)
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.09.03 00:48
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Старый Дельфист, покопавшись в памяти, вспомнил проект, который компилировался аж МИНУТУ!


Если бы ты был в досягаемости программистов которым приходилось мучится с этим, то в живых бы ты не остался.

На С++ компиляция может идти и долше. Но там 1) ошибки выдавали залпом, 2) был рогресс компиляции (а на дельфи он появился позже), 3) небыло психологического привыкания к такому долгому процессу компиляции.
... << RSDN@Home 1.1 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: По просьбам трудящихся: Delphi vs C++(VS)
От: FWP Россия  
Дата: 05.09.03 04:12
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Ты мне это не втирай ладно. Я на паскакале и дельфях кучу кода написал.


    arr_of_real:array[0..6] of real;

По этой строке это особенно заметно.

WH>Отсутствие автоматических объектов превращает жизнь в ад вернее в try finaly что тоже самое.

Борьба с неопределенным поведением автоматических объектов ничем ни лучше. Читай вашего любимого классика Б.Страуструпа.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.