Re[18]: C++ versus C#
От: naje  
Дата: 26.02.04 16:04
Оценка:
Здравствуйте, VladD2, Вы писали:

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


N>>я ж тебе не разказываю про наши проекты, ты дай мне то на что посмотреть можно


VD>Кстати, очень показательным примером является эволюция АСП. Первое АСП было написано на С/С++. АСП.НЭТ написано на Шарпе. При этом оно и работает быстрее, и функциональнее, и надежнее.


осталось только винду на шарпе переписать
Re[6]: Вопрос слегка не в тему
От: naje  
Дата: 26.02.04 16:09
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Хотел было что-то ответить, но умер со смежу. В общем, 5 балов... Я плякаль...


лично мне твоё психическое состояние знать совсем не интересно, это помоему форум не по той теме форум
Re[6]: Вопрос слегка не в тему
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.04 16:10
Оценка: +1
Здравствуйте, naje, Вы писали:

Да, мужик. У тебя еще и с юмором плохо.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Вопрос слегка не в тему
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.04 16:10
Оценка: +1
Здравствуйте, naje, Вы писали:

N>я имел ввиду как описывается в пресрелизах микрософт


В пресрелизах МС дотнет — это средство создания вэб-сервисов. Их вообще читать не стоит.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Вопрос слегка не в тему
От: Sergey Россия  
Дата: 26.02.04 16:36
Оценка: :)
Hello, AndrewVK!
You wrote on Thu, 26 Feb 2004 10:37:06 GMT:

A> А у меня есть примеры когда сделали. Далеко ходить не надо — этот сайт,

A> янус, RSDN NNTP.

Последний — замечательный пример Чаще не работает, чем работает.

Best regards,
Sergey.
Posted via RSDN NNTP Server 1.8 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[19]: C++ versus C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.04 16:46
Оценка:
Здравствуйте, naje, Вы писали:

N>осталось только винду на шарпе переписать


Будешь смеяться, но над этим уже работают.

В Лонгхорне почти все новые АПИ будут на дотнете. И вообще огромная часть ОС станет менеджед.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: C++ versus C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.04 16:46
Оценка:
Здравствуйте, naje, Вы писали:

N>spart это переписанный boost::spirit


N>это генератор парсеров с ct, для того чтоб написать парсер не нужены кокоры, яки и бизоны, всё делается с ct (в варианте C++ конечно), таким же образом можно и idl заменить (вспоминался в этом топике), а на C# этого сделать нельзя, прийдётся ждать когда в С# встроят генератор парсеров


Понял. Ну, мне как-то коко больше нравится. И синтаксис по-чище и скорость приличная. А главное, писать на Шарпе неимеверно проще. Плюс почти нет отладки.

N>так проверь, может и не чушь? напиши статью по этому поводу, как обманывают, враги


Враги? А статья кое-какая давное есть: http://rsdn.ru/?summary/590.xml

Да и опыт работы и на там, и на другом. На плюсах пишу уже лет 10, на Шарпе два года (даже больше, с появления первой бэты).

N>И конечно все самые несравненные проекты на C# написал Ты.


Не все. Но аналог Хоума мы искали и ничего приличного не нашли. За то за время существования этого проекта сто раз слышали о том, как Вася Пупкин завтра перепишет его на: С++, Дельфи (нужное подчеркнуть/вписать). Но все эти слова так и остались словами.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Вопрос слегка не в тему
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.04 16:46
Оценка:
Здравствуйте, naje, Вы писали:

VD>>Хотел было что-то ответить, но умер со смежу. В общем, 5 балов... Я плякаль...


N>лично мне твоё психическое состояние знать совсем не интересно, это помоему форум не по той теме форум


Я как бы не тебе отвечал.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.02.04 16:47
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Теперь зайдем с другого конца. Возьмем тест на C#-е и попытаемся переписать его на С++ без ручных оптимизаций. Как бы поступил средний программист встань пред ним подобная задача? Да очень просто... он воспользовался бы готовым классом. B VC предоставляет нам такой класс — это CString. Его ATL-версия как раз имеет вариант CStringW (работающий с Юникодом). Переписываем тест:


Сравнивать нетовский стринг с CStringT (который уже потом CStringW) есть жульничество.
Нетовский стринг очень сильно отличается от CString, хоть и похож организацией данных.

Для конкатенации в нетовском стринге перегружено куча методов. На два аргумента, на три, на четыре и на мессив.
А что мы имеем в CStringT в этом случае?

Для компарации испоьзуется также особо хитрый механизм. А что с CStringT ?
Там вызывается ::CompareStringW исходный код которой на порядки!!! больше из за ее универсальности. Размер файла строкового АПИ в выне 132 килобайта.

Посему уместно сравнить нетовскую реализацию строк с такой же, выдраной из ротора, но на нативном С++.
Для этого надо взять и адаптировать файлы comstring.h и comstring.cpp. Из этих файлов выбросить весь лишний, читай нетовский, мусор и тогда, думаю, разница нас всех удивит.
Еще можно соптимизировать — развернуть циклы, как это делается в выне, на 8 итераций.
Re[8]: Вопрос слегка не в тему
От: naje  
Дата: 26.02.04 16:49
Оценка: :)
Здравствуйте, VladD2, Вы писали:

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

VD>>>Хотел было что-то ответить, но умер со смежу. В общем, 5 балов... Я плякаль...


N>>лично мне твоё психическое состояние знать совсем не интересно, это помоему форум не по той теме форум


VD>Я как бы не тебе отвечал.


странно
Re[20]: C++ versus C#
От: naje  
Дата: 26.02.04 16:50
Оценка:
Здравствуйте, VladD2, Вы писали:

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


N>>осталось только винду на шарпе переписать


VD>Будешь смеяться, но над этим уже работают.


VD>В Лонгхорне почти все новые АПИ будут на дотнете. И вообще огромная часть ОС станет менеджед.


вот тогда и посмотрим
Re[16]: C++ versus C#
От: naje  
Дата: 26.02.04 16:58
Оценка:
Здравствуйте, VladD2, Вы писали:

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


N>>spart это переписанный boost::spirit


N>>это генератор парсеров с ct, для того чтоб написать парсер не нужены кокоры, яки и бизоны, всё делается с ct (в варианте C++ конечно), таким же образом можно и idl заменить (вспоминался в этом топике), а на C# этого сделать нельзя, прийдётся ждать когда в С# встроят генератор парсеров


VD>Понял. Ну, мне как-то коко больше нравится. И синтаксис по-чище и скорость приличная. А главное, писать на Шарпе неимеверно проще. Плюс почти нет отладки.


а некоторым idl больше нравится (не мне)
на C++ если в ct побольше запихать то тоже отладчик не нужен будет

N>>так проверь, может и не чушь? напиши статью по этому поводу, как обманывают, враги


VD>Враги? А статья кое-какая давное есть: http://rsdn.ru/?summary/590.xml


VD>Да и опыт работы и на там, и на другом. На плюсах пишу уже лет 10, на Шарпе два года (даже больше, с появления первой бэты).


у меня опыт на шарпе маленький, могу поделится своим вариантом ощущений, ощущения можно сравнить с теми когда нужно что-то от руки написать, и когда психологически чуствуешь что на клавиатуре всё это можно написать быстрее и это немного напрягает
Re[9]: Вопрос слегка не в тему
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.04 18:36
Оценка:
Здравствуйте, naje, Вы писали:

N>странно


Ты на дерево погляди... Я вот на это Re[4]: Вопрос слегка не в тему
Автор: voxel3d
Дата: 26.02.04
отвечал.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: C++ versus C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.04 18:36
Оценка:
Здравствуйте, naje, Вы писали:

N>а некоторым idl больше нравится (не мне)

N>на C++ если в ct побольше запихать то тоже отладчик не нужен будет

А если еще по больше, то и компьютер.

N>у меня опыт на шарпе маленький, могу поделится своим вариантом ощущений, ощущения можно сравнить с теми когда нужно что-то от руки написать, и когда психологически чуствуешь что на клавиатуре всё это можно написать быстрее и это немного напрягает


Это с непривычки.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: C++ versus C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.04 18:36
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Посему уместно сравнить нетовскую реализацию строк с такой же, выдраной из ротора, но на нативном С++.

PE>Для этого надо взять и адаптировать файлы comstring.h и comstring.cpp. Из этих файлов выбросить весь лишний, читай нетовский, мусор и тогда, думаю, разница нас всех удивит.

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

PE>Еще можно соптимизировать — развернуть циклы, как это делается в выне, на 8 итераций.


Может просто сравнить с временем создания константы?
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[23]: C++ versus C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.02.04 06:26
Оценка:
Здравствуйте, Kluev, Вы писали:
K>Я имел ввиду не конкретную поделку от микровсоса, а сам способ. Можно и самому написать что нибудь подобное или выбрать между тем-же MIDL-СОМ или СОRBA и т.п.
О боже. Я имел в виду как раз вообще концепцию IDL и промежуточные компиляторы. Стоимость подобного генератора для custom-задачи настолько высока, что их практически никогда не разрабатывают. Конечно, если ты работаешь в NASA, и решаешь сверхзадачи, то и С++ и .NET выглядят настолько маленькими, что можно сразу начинать писать свой язык — на финальную стоимость это почти не повлияет. Но мы-то живем в реальном мире!
K>В С++ вообще все user-defined. Конечно метаданные как в НЕТ не сделаешь, но ИМХО и потребности нет.
Вот-вот. То же самое сорок лет назад говорили ассемблерщики про C.
S>>Ну щас прям. И сразу получи платформенную зависимость. Как минимум. А также необходимость таскать с собой запас хидеров для того, чтобы генеренный код мог взаимодействовать с другим кодом. В общем, ребята, солюшн с Ц-компилером даже на шутку не тянет. Потому его и не применяет никто и никогда. В отличие от той самой генерации кода в .Net.
K>В научной среде сплошь и к ряду, сам видел когда ишшо в институте учился. А чем плохо? быстродействие будет — закачаешься. А остальные проблемы при грамотном подходе и не проблеммы вообще. К тому же есть компилеры и кроссплатформенные.
Вот именно — в научной среде. Практического применения эта техника не имеет. От быстродействия я действительно закачаюсь. Сколько времени у меня займет компиляция нового класса в рантайме? Учитывая, что в него придется скормить тысяч двести строк хидеров? И не пойдет ли пользователь курить? Обрати внимание — в JSP и ASP применяют compile on demand. Как ты думаешь, почему не существует C++SP?
K>А если быстродействие особое не нужно, то прикрутить скрипт-машину к плюсовой программе нет проблемм. Генери в скрипт и не жалуйся. ИМХО, надуманная проблемма вообще.
Ребята, это тупиковый подход. Прикручивание скрипт-машины к плюсовой программе имеет несколько существенных недостатков, основной из которых — высокая стоимость.
K>Мультиметоды, в основном.
Тем не менее, трудоемкость прикручивания даже мультиметодов по сравнению с .Net слишком высока.

Короче, я никого не заставляю. .Net предлагает способ дешево делать хорошие программы. Альтернативы ему есть — та же Java. Более старые технологии позволяют делать либо хорошие, либо дешевые программы. Точка. Не хотите — не надо.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[21]: C++ versus C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.02.04 06:26
Оценка:
Здравствуйте, naje, Вы писали:
N>я не имел ввиду idl, можно всё сделать на чистом С++ без тулзов кодогенерации, правда стиль програмирования будет похож на функциональный (но что в этом плохого, плохо что только похож) (кстати буква M в слове MIDL уже говорит о многом, у тебя всё замыкается на ms)
Может я чего не знаю, но что-то я не вижу способа просто и изящно передать параметры маршалинга в С++ библиотеку в непроцедурном стиле. Как ты объяснишь, что вот этот параметр надо маршалить по ссылке, а этот — по значению?
N>я спрашивал что нового в .Net, как вобще можно сравнивать язык с фреймворком?
Как хочешь — так и сравнивай. С++ тоже не только язык. Без стандартной библиотеки и рантайма он мертв.
N>причём тут это
N>я хотел скахать что ничево в .net выдающегося нет
Да. Внутри там то же самое что и в других системах. Это не серебряная пуля, это просто способ повысить производительность и качество труда программистов.
N>можно сделать, есть немеренно всяких промежуточных представлений для програм (это тоже не микрософтовская технология)
Нету этого. Нету. Где оно? Покажите мне такую систему. Ни один из популярных компиляторов этого не умеет. А непопулярные — извините, ребята, низкое качество их кода съест все преимущества от специализации.
N>объясни чем могут помочь частичные вычисления в rt, это можно и в ct делать в большинстве случаев, именно для повышения производительности, не хочешь?, тогда спасёт компилятор с промежуточным представлением, но это не особенность языка, а мы обсуждаем C++ против C#
Да нет проблем. Просто в C# делается все, что делается в .Net. В С++ этого нет. В нем нет делегатов, нет автоматического управления памятью, нет гарантий, что везде, где можно написать a<b можно написать и b>a, нет Reflection, нет модели безопасности, нет встроенной поддержки компонентности.
Да, все это можно эмулировать. Впрочем, наследование тоже можно эмулировать на С. Проблема в том, что в рамках С++ нельзя научить компилятор валидировать введенные пользователем правила. И из-за отсутствия рефлексии нельзя это сделать и в рантайме. Поэтому у Versant есть свой препроцессор, который проверяет persistent классы на целостность и генерирует метаданные. Но это фактически другой язык. В C# работу, выполняемую этим препроцессором, можно делать в рамках языка. См. Rsdn.Framework.Data. Почему-то никто не написал подобного для С++!
N>>>по поводу JIT , я не пойму почему микрософт сделала такой упор на него, почему во всех системах в которых есть возможность JIT'а и VM, выбор делается в пользу VM, я в этом вопросе не специалист, может ты специалист, так расскажи
N>погугли по JIT и VM (без microsoft и java)
Честно попробовал. Времени нет особо сканировать google. Тенденция ясна — слово Virtual Machine встречается в контексте либо распределенных вычислений, либо VMWare и прочих эмуляторов железа. Да, там где JIT недоступен, его не применяют. Ты можешь показать хоть на одну коммерчески применимую реализацию, в которой сознательно выбрали VM? Из двух известных мне систем обе выбрали JIT. Вообще говоря, уже этого достаточно для опровержения твоего всеобъемлющего утверждения. А поскольку исходная посылка неверна, вопрос придется снять.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[22]: C++ versus C#
От: naje  
Дата: 27.02.04 07:12
Оценка:
Здравствуйте, Sinclair, Вы писали:

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

N>>я не имел ввиду idl, можно всё сделать на чистом С++ без тулзов кодогенерации, правда стиль програмирования будет похож на функциональный (но что в этом плохого, плохо что только похож) (кстати буква M в слове MIDL уже говорит о многом, у тебя всё замыкается на ms)
по поводу idl
S>Может я чего не знаю, но что-то я не вижу способа просто и изящно передать параметры маршалинга в С++ библиотеку в непроцедурном стиле. Как ты объяснишь, что вот этот параметр надо маршалить по ссылке, а этот — по значению?
что-то типа boost::tuples поможет?

N>>можно сделать, есть немеренно всяких промежуточных представлений для програм (это тоже не микрософтовская технология)

S>Нету этого. Нету. Где оно? Покажите мне такую систему. Ни один из популярных компиляторов этого не умеет. А непопулярные — извините, ребята, низкое качество их кода съест все преимущества от специализации.
gcc не популярный компилятор? (gnu rtl даже в микрософтовских лекциях по созданию компиляторов на .net упоминается)
N>>объясни чем могут помочь частичные вычисления в rt, это можно и в ct делать в большинстве случаев, именно для повышения производительности, не хочешь?, тогда спасёт компилятор с промежуточным представлением, но это не особенность языка, а мы обсуждаем C++ против C#
S>Да нет проблем. Просто в C# делается все, что делается в .Net. В С++ этого нет. В нем нет делегатов, нет автоматического управления памятью, нет гарантий, что везде, где можно написать a<b можно написать и b>a, нет Reflection, нет модели безопасности, нет встроенной поддержки компонентности.
S>Да, все это можно эмулировать. Впрочем, наследование тоже можно эмулировать на С. Проблема в том, что в рамках С++ нельзя научить компилятор валидировать введенные пользователем правила. И из-за отсутствия рефлексии нельзя это сделать и в рантайме. Поэтому у Versant есть свой препроцессор, который проверяет persistent классы на целостность и генерирует метаданные. Но это фактически другой язык. В C# работу, выполняемую этим препроцессором, можно делать в рамках языка. См. Rsdn.Framework.Data. Почему-то никто не написал подобного для С++!
какие правила? boost::concept_check поможет?
или это тоже другой язык?
по поводу других языков немного, я тут уже приводил пример с генераторами парсеров, когда генераторы парсеров появятся в C#?, это просто один из примеров

N>>>>по поводу JIT , я не пойму почему микрософт сделала такой упор на него, почему во всех системах в которых есть возможность JIT'а и VM, выбор делается в пользу VM, я в этом вопросе не специалист, может ты специалист, так расскажи

N>>погугли по JIT и VM (без microsoft и java)
S>Честно попробовал. Времени нет особо сканировать google. Тенденция ясна — слово Virtual Machine встречается в контексте либо распределенных вычислений, либо VMWare и прочих эмуляторов железа. Да, там где JIT недоступен, его не применяют. Ты можешь показать хоть на одну коммерчески применимую реализацию, в которой сознательно выбрали VM? Из двух известных мне систем обе выбрали JIT. Вообще говоря, уже этого достаточно для опровержения твоего всеобъемлющего утверждения. А поскольку исходная посылка неверна, вопрос придется снять.

комерческие реализации не ограничиваются этими двумя
впринципе наверное смог бы показать, но тоже времени особо нет, поэтому отложим
Re[24]: C++ versus C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.02.04 07:40
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Как ты думаешь, почему не существует C++SP?


Не, в 1.2 вроде бы МС++ можно для страничек пользовать.
... << RSDN@Home 1.1.3 stable >>
AVK Blog
Re[4]: C++ versus C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.02.04 08:12
Оценка:
Здравствуйте, VladD2, Вы писали:

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


PE>>Еще можно соптимизировать — развернуть циклы, как это делается в выне, на 8 итераций.


VD>Может просто сравнить с временем создания константы?


В виндовских исходниках частенько присутсвует оптимизация в таком и другом виде.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.