Re[28]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 06:52
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Вот оветь на такой вопрос? Если С++ почти мертв как ты утверждаешь то почему МС вкладывает в развитие С++ компилятора кучу денег? Я не могу оценить изменения фреймворка но могу оценить изменения в С++ компиляторе и у меня такой чувство что вложения в него измеряются мегабаксами как минимум.


А если сравнить с вложениями в дотнет?
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[30]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 07:02
Оценка:
Здравствуйте, Nose, Вы писали:

AVK>>Кому как. Написателям библиотек например очень часто приходиться

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

Привыкнуть можно к примеру каждый день добираться до работы пешком, проходя километров десять. Однако почему то подавляющее большинство пользуется транспортом.

N>он не так страшен, хотя очень не похож на классический код c++


Страшен он, еще как страшен.
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[21]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 07:02
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>и к дженерикам джавы.


VD>Кстати, ты уверен что в Яве их тоже дженериками назвали?


Причем раньше чем в дотнете. Речь о дженериках шла еще в 2000 году, а в 2001 уже была по моему пробная реализация.
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[27]: Будущее C#
От: Sergey Россия  
Дата: 04.07.03 07:02
Оценка:
Здравствуйте, VladD2, Вы писали:

S>>Вот такой стиль устраивает?


S>>[ccode]

S>>class TestA : public ddx::controller<TestA, Loki::NullType>, public CDialog
S>>{
S>> typedef ddx::controller<derived_type, base_type> parent_t;
S>>protected:
S>> typedef ddx::member<CString, IDC_SERVER, Ser, &DDX_CBString> m_Server;
S>> typedef ddx::member<CString, IDC_PROCESS_NAME, Ser, &DDX_Text> m_ProcessName;
S>> typedef ddx::members<TYPELIST_2(m_Server, m_ProcessName)> members_info;
S>>public:
S>> TestA(CWnd *wnd) {}
S>> members_info ddxMembers;
S>>};


VD>


VD>О том и нечь что нет! Ни в коем случе не устривает. Это мазохизм.


Что именно тебя тут пугает? Угловые скобки не нравятся, предпочитаешь квадратные?

VD>Да и этот код использует ртти (как я понимаю).


Неправильно понимаешь. Вся генерация кода делается в компил-тайме.

VD>Вот такой стиль намного лучше:


VD>
VD>[Serialize]
VD>class TestA
VD>{
VD>    public TestA(CWnd wnd) {}
VD>    public string m_Server;
VD>    public string m_ProcessName;
VD>};

VD>[Serialize]
VD>class TestC : TestA
VD>{
VD>    public TestC(CWnd wnd) : bsae(wnd)
VD>};

VD>...
VD>    TestC с = new TestC(xxx);
VD>    ... // Что-то тварим с объектом...
VD>    // Это весь код необходимый для сериализации!
VD>    MemoryStream ms = new MemoryStream(1024);
VD>    BinaryFormatter bf = new BinaryFormatter();
VD>    bf.Serialize(ms, ds);
VD>


Угу, только у класса TestC есть десяток членов, которые сериализовать не надо. По этому атрибут [Serializable] придется для каждого члена указывать, во вторых — для каждого члена, вовлеченного в другие операции (у меня это — DoDataExchange), придется другие атрибуты добавлять. Получится еще страшнее, чем у меня.

VD>Собственно главное код сериализации который в самом конце. Вот это красиво. К сожелению не так быстро как хотелось бы, но красиво.


Собственно, код сериализации сидит в библиотеке — в обоих случаях.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[25]: Будущее C#
От: desperado_gmbh http://www.livejournal.com/users/tolstopuz
Дата: 04.07.03 07:06
Оценка:
Здравствуйте, VladD2, Вы писали:

_>>REGISTER_CLASS("CategoryInfo", CategoryInfo)

_>> REGISTER_MEMBER("CategoryID", CategoryID)
VD>А что теперь если содержимое запроса изменится?

В исходном примере та же проблема — структура данных отдельно, select отдельно, и имена дублируются. Мы в таких случаях передаем в Command вместо списка полей специальную пиндюшку, которая внутри превращается в список, но с COUNT и прочими вычисляемыми полями это, конечно, не поможет.
Re[18]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.07.03 07:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Короче, у меня нет желания бесполезно дискутировать о значении термина менеджед-код. Думаю, то и все остальные все поняли как надо.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.07.03 07:08
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Да фиг с ней, с сериализацией. Вопрос не в сериализации самой по себе. Предположим, что речь идёт не о сериализации,


Нет, ну почему же? Это хороший пример демонстрирующий приемущества наличия полноценной информации.

ГВ> а о чём-то ещё, что так же, как и сериализация, строится по прнципу вызова специфического кода для каждого поля объекта.


Еще раз повторяю. Отойди от привычный тебе концепций. В дотнете богатство информации о типах позволяет во многих случаях писать универсальный код. В том числе и для сериализации.

ГВ> Ну, к примеру, визуализация.


Визуализация слишком абстрактный термин.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.07.03 07:08
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

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


Ошибаешся. В дотнете предусмотрена полноценная информация о типах позволяющая создать универсальный код.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[28]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.07.03 07:08
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Хммм... похоже, ты меня совсем не понял.


Нет. Это ты нас не понимашь. И по всей видимости не попробовав рефлекшон прочувтвовать всей его мощи нелья.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[32]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.07.03 07:08
Оценка: :)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Ну нет, почему же? Если сопоставление метаинформации реализуется для его дальнейшего использования, то чтение будет удобным. По-моему, это очевидно.


Тогда попробуй предствить, что вся метаинформация делается именно для того, чтобы ее читали.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.07.03 07:08
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Что-то ты странное говоришь. Что ты подразумеваешь под словом "дыра"?


Думаю, ты и сам понимаешь. Дыры — это отсуствие в языке/рантайме простых конструкций решающих стоящие перед тобой задачи. Например, когда стоит задача вызывать метод у абстрактного объекта... или когда стоит задача сделать что-то на сосновании описания типа.

Все примеры приведенные в том посте делаются на Шарпе элегантно и просто. При этом Шарп ведь не обладает такими мощными средствами самомодификации. Мысль ясна?
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[32]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.07.03 07:08
Оценка:
Здравствуйте, Nose, Вы писали:

N>Я и не спорю. Есть такой недостаток у обобщенного кода. Но принимая во внимание его полезность (хотя для меня сейчас — она теоретическая ), это не фатальный недостаток. А читать его все-таки можно привыкнуть.


Можно. Но очень не хочется. А такие примитивы как делегаты хочется иметь на уровне языка. Все же не ясно почему я должен часами смотреть на компиляцию базовых вщей.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.07.03 07:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Шарп по идеологии весьма серьезно отличается от плюсов, максимум что можно использовать это похожий синтаксис. С шарпом я таких наблюдений не проводил, но зачастую для получения качественного кода на джаве новичков приходится учить меньше, нежели зубров, писавших на плюсах и дельфи.


Это уже снобизм и шовинизм. Мне почему-то знание С++ не мешает писать на шарпе. Я еще и С знаю. И на нем много писал. Этак мы дойдем, что все кто знают старые зыки на новые уже могзги переглючить не могут.

Принцыпы программирования одни и те же. Есть различия которые нжно осозновать и учитывать. Только и всего.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[22]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 07:12
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А про невозможность работы шаблонов с приметивами — это они сильно дурака сваляли. Если МС не сваляет так же, то дотнет будет делать Яву по скорости из любого положения.


У сана вобще очень странная политика, больше похожая на политику комитета по плюсам. Они с радостью стандартизируют библиотеки, причем выделяя на доведение этих библиотек своих спецов, но вот когда дело заходит об изменении языка и jvm то они упираются рогом. Если бы не МС то они наверное так бы никаких изменений в jvm и язык вносить не стали бы, хотя кое что напрашивается еще с древних версий. Возможно что виновато в этом то что сану приходится писать 3 jvm, а не одну, как МС.
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[23]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 07:12
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>Боксить тока надо ручками. Что же касается перфоманса, то в отличие от С++ и джава и дотнет должны производить кастинг в рантайме даже для совместимых типов, поскольку неясно что тебе в итоге могут подсунуть, поэтому шаблоны избавляют от определенной части этого кастинга и тем самым увеличивают эффективность полиморфных алгоритмов.


VD>Снижают ты хотел сказать. Полиморфизм и без шаблонов неплохо работал. Грамотная реализация шаблонов как раз могла бы избавить от лишних кастов и боксингов.


Ну я именно это и хотел сказать. Т.е. то что путем замены полиморфных алгоритмов шаблонами можно повысить эффективность за счет уменьшения количества кастингов.
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[24]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 07:12
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Если они так тупо будут делать, то тормоза будут жуткие.


Им надо начинать править не с этого, а с добавления пользовательских value-типов в язык.
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[25]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 07:12
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Дык у них мудренный генератор. Они сожают 1000 китайцев и те генерят, генерят... А шаблон пищется на бумаге.


Скорее индийцев, но в целом ты прав.
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[25]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 07:12
Оценка:
Здравствуйте, VladD2, Вы писали:

AVK>>Мой вариант делегатов? Ты о чем?


VD>Не. Твой вариант динамической подключалки реализаций.


А при чем тут она? Разговор то о делегатах
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[24]: Будущее C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.07.03 07:12
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Так что для сохранения настроек такая технология подходит очень хорошо, а для сохранения реальных данных (по крайней мере в моем случае) как то не катит


А для сохранения реальных данных предназначена не сериализация, а СУБД.
... << RSDN@Home 1.1 beta 1 >>
AVK Blog
Re[30]: Будущее C#
От: desperado_gmbh http://www.livejournal.com/users/tolstopuz
Дата: 04.07.03 07:14
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

AVK>>Атрибуты без rtti невозможны в принципе

ГВ>Если такие же, как в .Net, то да. Но они не всегда такие и нужны. А реализовать сопоставление метаинформации экземпляру можно и без rtti.

При объектном подходе информацию как-то привычнее представлять классами. Метаинформация ничем не волшебнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.