Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 436 437 [438] 439 440 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6556
,
|
|
|
|
--Ins--, да. Но речь-то не об этом. Речь о ваших (наших?) расхождениям о смысле использованного термина.
|
|
Сообщ.
#6557
,
|
|
|
|
Цитата D_KEY @ --Ins--, современные тенденции несколько иные. Посмотри, например, на google protocol buffers, где имеется некоторый универсальный язык описания данных, компилятор из этого языка в целовой язык программирования и API для разных языков для сериализации/десериализации. Будет время - гляну Цитата D_KEY @ Ну а так, для С++ есть библиотеки для сериализации, вроде boost::serialization, есть Qt и т.п. Странно, оно ж не нужно, зачем сделали? |
|
Сообщ.
#6558
,
|
|
|
|
Цитата --Ins-- @ А, ну это да, это ж столько писанины в дельфи один раз в объявлении класса слово published написать Ну, давайте "на пальцах". Вот есть класс ![]() ![]() class gps_position { int degrees; int minutes; float seconds; public: gps_position(){} gps_position(int _d, int _m, float _s) : degrees(_d), minutes(_m), seconds(_s) {} }; Можно его же на дельфях с атрибутами, необходимыми сериализатору/десериализатору? Добавлено Цитата --Ins-- @ Странно, оно ж не нужно, зачем сделали? Не нужна "автоматическая" сериализация на основе рефлексии... |
|
Сообщ.
#6559
,
|
|
|
|
Цитата --Ins-- @ Еще раз: в большинстве случаев (в моей практике) человекочасы стоят дороже, чем микросекунды процессорного времени. Во-первых, тогда не ясен твой выбор в пользу Delphi. Мягко скажем, не самый быстрый инструмент разработки. Во-вторых, человекочасы действительно стоят дороже, но это не имеет никакого отношения к вопросу, т.к. все зависит от требований ТЗ. Если программа не удовлетворяет ТЗ, то она и не существует и потраченные на нее человекочасы не стоят ровным счетом ничего. |
|
Сообщ.
#6560
,
|
|
|
|
Цитата MyNameIsIgor @ Можно его же на дельфях с атрибутами, необходимыми сериализатору/десериализатору? ![]() ![]() TGPSPosition = class private FDegrees: Integer; FMinutes: Integer; FSeconds: Extended; published property Degrees: Integer read FDegrees write FDegrees; property Minutes: Integer read FMinutes write FMinutes; property Seconds: Extended read FSeconds write FSeconds; end; Цитата Qraizer @ Но речь-то не об этом. Речь о ваших (наших?) расхождениям о смысле использованного термина. Какого именно термина? Размер кода? Я под размером кода подразумеваю масштабы писанины, имелось в виду что-то другое? |
|
Сообщ.
#6561
,
|
|
|
|
Цитата MyNameIsIgor @ Ну, давайте "на пальцах". Вот есть класс ![]() ![]() class gps_position { int degrees; int minutes; float seconds; public: gps_position(){} gps_position(int _d, int _m, float _s) : degrees(_d), minutes(_m), seconds(_s) {} }; Можно его же на дельфях с атрибутами, необходимыми сериализатору/десериализатору? Я так понимаю, что все свойства из "раздела" published будут считаны/записаны сериализатором: ![]() ![]() class gps_position { // ... public: gps_position(){} gps_position(int _d, int _m, float _s) : degrees(_d), minutes(_m), seconds(_s) {} published: property<int> degres; property<int> minutes; property<float> seconds; }; |
|
Сообщ.
#6562
,
|
|
|
|
--Ins--, ok, с boost::serialization получается вот так
![]() ![]() class gps_position { friend class boost::serialization::access; int degrees; int minutes; float seconds; template<class Archive> void serialize(Archive & ar, const unsigned int) { ar & degrees & minutes & seconds; } public: gps_position(){}; gps_position(int _d, int _m, float _s) : degrees(_d), minutes(_m), seconds(_s) {} }; Да, мне так много кода пришлось добавить - бида-пичаль |
|
Сообщ.
#6563
,
|
|
|
|
Цитата --Ins-- @ Помечаешь член как сериализуемый и все, вметсо того чтобы явно писать код сериализации/десериализации Что мешает делать такое статически без рефлексии? А в Хаскелле достаточно приписать "deriving (Show, Read)" к определению типа... =) |
|
Сообщ.
#6564
,
|
|
|
|
Цитата D_KEY @ Во-первых, тогда не ясен твой выбор в пользу Delphi. Мой выбор был сделан 10 лет назад или даже больше, когда этот выбор был оптимальным если рассматривать все с нуля. Ну а что сейчас - сейчас с нуля рассматривать нельзя, ибо на Delphi у меня 10 лет опыта и масса готовых наработок, и это значит что все остальные инструменты сливают по определению. Пока у меня не будет достаточного количества наработок в других языках Цитата D_KEY @ Во-вторых, человекочасы действительно стоят дороже, но это не имеет никакого отношения к вопросу, т.к. все зависит от требований ТЗ. Если программа не удовлетворяет ТЗ, то она и не существует и потраченные на нее человекочасы не стоят ровным счетом ничего. Это такой новый вид троллинга? |
|
Сообщ.
#6565
,
|
|
|
|
Цитата korvin @ Что мешает делать такое статически без рефлексии? А в Хаскелле достаточно приписать "deriving (Show, Read)" к определению типа... =) Эхххх...Когда-то давно я ещё шарпистам объяснял, что рефлексия в дотнете - один большой костыль, заставляющий run-time делать то, что можно и нужно делать статически - освистали и закидали Добавлено Цитата --Ins-- @ Это такой новый вид троллинга? Это реалии разработки ПО. |
|
Сообщ.
#6566
,
|
|
|
|
Цитата --Ins-- @ Пока у меня не будет достаточного количества наработок в других языках Так откуда они у тебя возьмуться, если ты настолько предан Delphi? Цитата Это такой новый вид троллинга? А кому нужен софт, неудовлетворяющий ТЗ? |
|
Сообщ.
#6567
,
|
|
|
|
Цитата korvin @ Что мешает делать такое статически без рефлексии? Эээ, это как? Тебе передается для сериализации объект, класс которого не известен на этапе компиляции. Как это можно сделать без рефлексии и без того, чтобы для каждого класса отдельно писать свой код? Добавлено Цитата D_KEY @ Так откуда они у тебя возьмуться, если ты настолько предан Delphi? Откуда возьмутся - известно откуда, и ты похоже не совсем внимательно меня слушал раньше, когда мы об этом говорили. Ну и да, предан, нет никаких оснований прямо здесь и сейчас его бросать Цитата D_KEY @ А кому нужен софт, неудовлетворяющий ТЗ? Не, это точно троллинг Я говорю, когда микросекунды не имеют значения (а в моей практике - это 95% случаев) сэкономленное время важнее производительности. А ты приводишь пример из 5% и споришь со мной, как будто бы я тоже имел в виду эти 5% |
|
Сообщ.
#6568
,
|
|
|
|
Цитата --Ins-- @ Эээ, это как? Тебе передается для сериализации объект, класс которого не известен на этапе компиляции. Как это можно сделать без рефлексии и без того, чтобы для каждого класса отдельно писать свой код? Ты немного не понял, конечно метод сериализации придется вызывать динамически, спасибо наследованию. Однако вместо одной универсальной процедуры, которая считывает рантайм-информацию о типе можно было бы для каждого класса генерировать методы сериализации/десериализации на основе описания класса во время компиляции. Добавлено Минус -- больший объем объектного кода. Плюс -- выше скорость операции. |
|
Сообщ.
#6569
,
|
|
|
|
Цитата korvin @ Однако вместо одной универсальной процедуры, которая считывает рантайм-информацию о типе можно было бы для каждого класса генерировать методы сериализации/десериализации на основе описания класса во время компиляции. Тру! |
|
Сообщ.
#6570
,
|
|
|
|
Цитата --Ins-- @ Я говорю, когда микросекунды не имеют значения (а в моей практике - это 95% случаев) сэкономленное время важнее производительности. А тебе говорю, что сэкономленное время всегда важнее производительности. А софт всегда должен удовлетворять ТЗ. Поэтому мне не ясно, с чем ты споришь и зачем ты постоянно повторяешь одну и ту же фразу |