Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi - приемущества и недостатки, принимаются различные высказывания 
:(
    Опции темы
Daevaorn
Дата 27.1.2007, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(Romikgy @  27.1.2007,  19:42 Найти цитируемый пост)
 и не всегда код написанный для работы со строками в одном компиляторе компилируется в другом 

можно пример? просто интересно, я ещё таких компиляторов не встречал.
Цитата(Romikgy @  27.1.2007,  19:42 Найти цитируемый пост)
Я те удивляюсь , ты вцепился в эти шаблоны и ничего вокруг больше не видишь, имхо показывает твою ограниченность 

я что, где-то в том посте упоминул "шаблоны"?
Не дают покая они дельфинам, которые их во-первых не знают и не понимают, а во-вторых всячески хают. Хотя их удобство не признать нельзя. Они сокращают время разработки и позволяют применять особые идиомы, которые благоприятно сказываются на дизайне кода и производительности.
PM MAIL WWW   Вверх
nerezus
Дата 27.1.2007, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

строки в си тоже нормальные , только одно плохо что строковые классы
 строковые классы в си? ) что-то новое =)

P.S. не пишу на C++, только иногда C.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Romikgy
Дата 27.1.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Daevaorn @  27.1.2007,  17:50 Найти цитируемый пост)
можно пример? просто интересно, я ещё таких компиляторов не встречал.

в понедельник дам пример, ибо он не дома, писалось на билдере в  gcc не захотел компилится smile
Цитата(Daevaorn @  27.1.2007,  17:50 Найти цитируемый пост)
я что, где-то в том посте упоминул "шаблоны"?

ибо класс строк в С++ это шаблоный класс, или я не прав?
Цитата(nerezus @  27.1.2007,  17:52 Найти цитируемый пост)
строковые классы в си? ) что-то новое =)

в си имхо и классов нет , а в С++ это именно класс и он шаблонный


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
nerezus
Дата 27.1.2007, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



Цитата

в си имхо и классов нет
 Не "имхо", а точно нету ;) Поэтому и отписал то ;)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Romikgy
Дата 27.1.2007, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(nerezus @  27.1.2007,  21:30 Найти цитируемый пост)
оэтому и отписал то ;) 

зато терь мне непонятно , зачем отписал , если знал , что нет классов?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Beltar
Дата 28.1.2007, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

какую строку А и на какую Б?


ValueT на истинное название типа. ВСЕ!!

Цитата

Тут уже обсуждали, что строковой тип в С++ удобнее и лучше чем в Pascal/Delphi


В жизни своей ничего более бредового не слышал. :-|
PChar годится только для работы с устройствами, которые шлют короткие сообщения и не имеет даже там никакого преимущества перед паскалевским ShortSring.
Если ты написал над PChar класс, то это само по себе его гниль не устраняет, упаси бог, если придется получать длину очень большой строки, считай ты нашел, чем занять процессор. Тебе надо реализовывать хранение длины, возможно, счетчик ссылок как у ANSIString. На выходе ты получишь тот же ANSIString, но для работы с которым надо натирать на пальцах мозоли, обращаясь к классу. И я не понимаю, почему необходимые в каждой программе операции не должны реализовываться на уровня синтаксаса и компилятора, а всякая мелочевка позволяющая сэкономить 0,01% от занимающего 1% времени набора кода просто обязана присутствовать, даже, если ее можно реализовать с помощью IDE.

Цитата

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


Ну покажи, как шаблон поднимает производительность. Самый производительный вариант, это все методы инлайном.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Daevaorn
Дата 28.1.2007, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(Beltar @  28.1.2007,  01:06 Найти цитируемый пост)
ValueT на истинное название типа. ВСЕ!!

какое истинное значение типа может  быть,  если препроцессор ничего не знает о типах вообще!? Так что тут логика гораздо глубже чем просто подстановка.
Цитата(Beltar @  28.1.2007,  01:06 Найти цитируемый пост)
В жизни своей ничего более бредового не слышал. :-|
PChar годится только для работы с устройствами, которые шлют короткие сообщения и не имеет даже там никакого преимущества перед паскалевским ShortSring.

Ну если для тебя строки в С++ это PChar, то мне тебя жалко. Читай книги!
Цитата(Beltar @  28.1.2007,  01:06 Найти цитируемый пост)
Ну покажи, как шаблон поднимает производительность. Самый производительный вариант, это все методы инлайном

Статический полиморфизм тебе знаком?
PM MAIL WWW   Вверх
Romikgy
Дата 28.1.2007, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Daevaorn @  27.1.2007,  23:14 Найти цитируемый пост)
Статический полиморфизм тебе знаком? 

каким боком он относится к инлайнам? или шаблонам?
 и что за манера скакать по разным направлениям?
ксати весь полиморфизм, так же требует дополнительного времени на определения что к чему....
Цитата(Beltar @  27.1.2007,  23:06 Найти цитируемый пост)
Если ты написал над PChar класс, то это само по себе его гниль не устраняет, упаси бог, если придется получать длину очень большой строки, считай ты нашел, чем занять процессор. Тебе надо реализовывать хранение длины, возможно, счетчик ссылок как у ANSIString. На выходе ты получишь тот же ANSIString, но для работы с которым надо натирать на пальцах мозоли, обращаясь к классу. И я не понимаю, почему необходимые в каждой программе операции не должны реализовываться на уровня синтаксаса и компилятора, а всякая мелочевка позволяющая сэкономить 0,01% от занимающего 1% времени набора кода просто обязана присутствовать, даже, если ее можно реализовать с помощью IDE.


Beltar, давай не будем так критичны, ведь ANSIString это встроеная надстройка над PChar .....


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Daevaorn
Дата 28.1.2007, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(Romikgy @  28.1.2007,  02:08 Найти цитируемый пост)
каким боком он относится к инлайнам? или шаблонам?
 и что за манера скакать по разным направлениям?

Меня спросили про поднятие производительности, я и ответил. И это направление напрямую относится к теме. Если ты не знаешь, что это такое, то я не виноват.
PM MAIL WWW   Вверх
skyboy
Дата 28.1.2007, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



Цитата(Daevaorn @  27.1.2007,  23:14 Найти цитируемый пост)
какое истинное значение типа может  быть,  если препроцессор ничего не знает о типах вообще!?

IDE для выдачи "умной подсказки" компилирует чего? smile препроцессор != макросы(наследие С). препроцессинг - это любой синтаксический анализ текста. если уж раньше из-за низких рассчетных мощностей препроцессинг был только линейный поиск/замена, то сейчас можно уже реализовывать что-нить пошустрее. Хотя бы на регулярках замену. Конечно, сейчас такого нет(или мне не попадалось - с С++ знаком без году неделя). Но это реализовать несложно, а мощность достигла бы уровня, когда шаблоны тоже обрабатывались бы таким вот "пропроцессором". 
P.S. Я не пытаюсь в чем-либо умалить достоинство шаблонов. Тем более, с моей низкой С++-квалификацией. Просто не думаю, что стОит выражаться так категорично smile
PM MAIL   Вверх
Romikgy
Дата 28.1.2007, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Daevaorn @  28.1.2007,  00:13 Найти цитируемый пост)
Меня спросили про поднятие производительности, я и ответил. 

производительность == полиморфизм
хммм.... прикольно...
Цитата(Daevaorn @  28.1.2007,  00:13 Найти цитируемый пост)
Если ты не знаешь, что это такое, то я не виноват. 

вах, вах, одни мы такие умные и все знаем , до ужасти......


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Daevaorn
Дата 28.1.2007, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(Romikgy @  28.1.2007,  02:20 Найти цитируемый пост)
производительность == полиморфизм

compile-time polimorphism. Советую обратиться в google.
PM MAIL WWW   Вверх
Beltar
Дата 28.1.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Ой блин.

Цитата

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


Tсть 3 способа использования шаблона:

1) Язык содержит шаблоны и синтаксическую конструкцию CreateByTemplate. Чисто препроцессорная задача.
2) По образу и подобию класса\функции можно налепить средствами IDE аналогов для разных типов, что я считаю наиболее правильным, т. к. никаких препроцессоров нет и программист видит именно тот код, который уйдет компилятору и может его править. Например сделать какую-то функцию inline, если она вызывается в длинном цикле.
3) Копилятор обнаружив вызов шаблонной функции генерирует ее код для соответствующих типов. А вот как вызов ее будет осуществляться уже вопрос, компилятор сам должен решить, вызов или inline.
Если даже компилятор решил, что будет inline (в Delphi, например, введен автоматический inline функций не более 32 байт размером), то каким местом это будет быстрее набранной вручную аналогичной фунции с директивой inline?

Цитата

Ну если для тебя строки в С++ это PChar, то мне тебя жалко. Читай книги!


А внутри твоих классов что работает? ANSIString, если хочешь знать можно рассматривать как примерно такой класс:
Код

ANSIString=class
  Length:Intrger;
  Links:Integer;
  Str:PChar;//Да-да у нее есть завершающий нулик.
//Методы
end;


Если строка пустая, то указатель на него nil.
Недавно прочитав статьи Joel'а пришел к выводу, что C++ программисты в основной массе ничуть не лучше Delphi'нов понимают, что там внутри классов происходит.
Разница только в том, что "класс" этот встроенный и 100 раз отлаженный и только полному идиоту придет в голову писать свой, рискуя привнести в код вагон проблем.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Daevaorn
Дата 28.1.2007, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 5
Всего: 70



Цитата(skyboy @  28.1.2007,  02:16 Найти цитируемый пост)
препроцессинг - это любой синтаксический анализ текста. если уж раньше из-за низких рассчетных мощностей препроцессинг был только линейный поиск/замена, то сейчас можно уже реализовывать что-нить пошустрее. 

Не надо путать понятия, препрцессор он на то и "пре", что не знанимается глубоким анализом текста. Всё что связано с типами и сложными языковыми структурами, это уже компилирование. И иной раз вывод типа совсем не очевиден. А если учесть мерджинг уже инстанцированных шаблонов для оптимизации, то это вообще к задаче препроцессора не относится совсем. Так что так.
Цитата(Beltar @  28.1.2007,  12:54 Найти цитируемый пост)
1) Язык содержит шаблоны и синтаксическую конструкцию CreateByTemplate. Чисто препроцессорная задача.

нет. см. выше
Цитата(Beltar @  28.1.2007,  12:54 Найти цитируемый пост)
2) По образу и подобию класса\функции можно налепить средствами IDE аналогов для разных типов, что я считаю наиболее правильным, т. к. никаких препроцессоров нет и программист видит именно тот код, который уйдет компилятору и может его править. Например сделать какую-то функцию inline, если она вызывается в длинном цикле.

когда я вижу что -то типа "средствами IDE", то мне становится смешно. Такое может написать только дельфинsmile У некоторых компиляторов вообще нет стандартных IDE.
Цитата(Beltar @  28.1.2007,  12:54 Найти цитируемый пост)
3) Копилятор обнаружив вызов шаблонной функции генерирует ее код для соответствующих типов. А вот как вызов ее будет осуществляться уже вопрос, компилятор сам должен решить, вызов или inline.

Если для тебя оптимизация это только inline, то тут говорить нечего. Опять совет, читай книги.
Цитата(Beltar @  28.1.2007,  12:54 Найти цитируемый пост)
А внутри твоих классов что работает? 

Мне всё равно что внутри, я просто беру std::string и им пользуюсь. И получаю кучу функционала практически бесплатно. И ещё имею возможность кастомизировать их в очень широких пределах.
А то что под всеми строками скрывается массив байт, то это уже проза жизни.
Но разумных С++ программистов гораздо больше.
PM MAIL WWW   Вверх
MAKCim
Дата 28.1.2007, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



Цитата(Romikgy @  28.1.2007,  01:08 Найти цитируемый пост)
каким боком он относится к инлайнам? или шаблонам?

Код

template<bool K, class T1, class T2> struct compile_time_if {
    typedef T2 type;
};
template<class T1, class T2> struct compile_time_if<true, T1, T2> {
    typedef T1 type;
};

template<class T> class is_class {
    typedef char T1;
    typedef { char __a[2]; } T2;
    template<class C> static T1 what(int C::*);
    template<class C> static T2 what(...);
public:
    enum {value = sizeof(is_class<T> :: what<T>(0)) == sizeof(T1) };
};

template<class T> class wrapper {
...
};

template<class T> class example
    : public typename compile_time_if<is_class<T> :: value, T, wrapper<T> > :: type {
...
};



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0795 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.