Здравствуйте, naje, Вы писали: N>Да причём тут всё это? мы же языки сравниваем?
И? На С++ нельзя написать библиотеку, которая даст мне возможность двумя строчками кода опубликовать объект в сети. А на .Net не только можно, но она уже написана! N>Скажи мне хоть одну действительно новую технологию которая есть в .net
JIT, Metadata, User-Defined Metadata. Этого в С++ нет и быть не может. Некоторые из моментов поддаются эмуляции. Да и то она выглядит достаточно бледно по сравнению с тем, что есть в .Net. Одна возможность генерации кода на лету открывает совершенно новое измерение гибкости и комфорту.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, naje, Вы писали: N>>Да причём тут всё это? мы же языки сравниваем? S>И? На С++ нельзя написать библиотеку, которая даст мне возможность двумя строчками кода опубликовать объект в сети. А на .Net не только можно, но она уже написана!
можно N>>Скажи мне хоть одну действительно новую технологию которая есть в .net S>JIT, Metadata, User-Defined Metadata. Этого в С++ нет и быть не может. Некоторые из моментов поддаются эмуляции. Да и то она выглядит достаточно бледно по сравнению с тем, что есть в .Net. Одна возможность генерации кода на лету открывает совершенно новое измерение гибкости и комфорту.
Эти технологии придумал не микрософт, а я спрашивал именно про то что придумал микософт.
Одна возможность генерации кода на лету открывает совершенно новое измерение в генерации ошибок. Один из плюсов С++ это работа которая делается в ct, и ты узнаешь об ошибках когда компилируешь программку, а не когда на твою техподдержку звонит оч нервный и разгневанный пользователь и читает тебе цифорки из окошка эксепшина.
Metadata и User-Defined Metadata легко и ярко реализуются в С++, причём и генерацию кода можно сделать, только зачем?
по поводу JIT , я не пойму почему микрософт сделала такой упор на него, почему во всех системах в которых есть возможность JIT'а и VM, выбор делается в пользу VM, я в этом вопросе не специалист, может ты специалист, так расскажи
Здравствуйте, naje, Вы писали:
AVK>>А у меня есть примеры когда сделали. Далеко ходить не надо — этот сайт, янус, RSDN NNTP.
N>ну наверное там были не "средние" программисты
В случае януса были всякие.
N>просто это не так просто как описывается
Здравствуйте, naje, Вы писали: N>я ж тебе не разказываю про наши проекты, ты дай мне то на что посмотреть можно
А как я дам тебе взглянуть внутрь того, чего у меня нету? Я как-то не занимался анализом путей совершенствования opensource проектов при помощи перехода на .Net
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, naje, Вы писали:
N>>>просто это не так просто как описывается
AVK>>Ну то есть я тебя обманываю, так? Зачем?
N>где я тебя в чём обвинял?
Просто логический вывод. После моих слов о том что на шарпе проще создавать проекты вот эти слова:
N>я не хотел сказать что на C# невозможно сделать что-то стоещее, просто это не так просто как описывается
явно подразумевают что я тебя обманул.
N>я может даже хочу чтоб меня переубедили
А как тебя переубедить? Я привел тебе примеры готовых проектов. По результатам могу сказать что на .NET в целом удалось затратить заметно меньше усилий чем если бы эти проекты писались на С++ или Дельфи.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, naje, Вы писали:
N>>>>просто это не так просто как описывается
AVK>>>Ну то есть я тебя обманываю, так? Зачем?
N>>где я тебя в чём обвинял?
AVK>Просто логический вывод. После моих слов о том что на шарпе проще создавать проекты вот эти слова:
N>>я не хотел сказать что на C# невозможно сделать что-то стоещее, просто это не так просто как описывается
AVK>явно подразумевают что я тебя обманул.
я имел ввиду как описывается в пресрелизах микрософт
N>>я может даже хочу чтоб меня переубедили
AVK>А как тебя переубедить? Я привел тебе примеры готовых проектов. По результатам могу сказать что на .NET в целом удалось затратить заметно меньше усилий чем если бы эти проекты писались на С++ или Дельфи.
ну я хочу знать почему, какие такие особенности позволяют сделать такие выводы
сразу говорю что я не согласен что скорость разработки сильно увеличивает CLR, remouting, reflection (так сразу всё и не вспомню)
то что много чего переложено на рантайм помоему замедляет разработку приложения(ну и его производительность), конечно даёт кучу преимуществ, но зачем они все нужны? это всё похоже больше на дешёвые пряники которыми программистов заманивают в .net
Здравствуйте, naje, Вы писали:
N>я имел ввиду как описывается в пресрелизах микрософт
Ну пресс-релизы всегда "слегка" преувеличивают. Не только у МС.
N>ну я хочу знать почему, какие такие особенности позволяют сделать такие выводы
Там целый комплекс особенностей. В янусе скажем максимально удалось съэкономить благодаря метаданным и веб-сервисам, благодаря внятным и по месту сообщениям об ошибках.
N>сразу говорю что я не согласен что скорость разработки сильно увеличивает CLR, remouting, reflection (так сразу всё и не вспомню) N>то что много чего переложено на рантайм помоему замедляет разработку приложения(ну и его производительность), конечно даёт кучу преимуществ, но зачем они все нужны? это всё похоже больше на дешёвые пряники которыми программистов заманивают в .net
Ну что тут можно сказать. Практика показала что все это реально работает, естественно если уметь применять. Так что тут таки вопрос доверия — либо ты мне веришь, либо нет .
Здравствуйте, naje, Вы писали: N>можно
Неправда. В этом языке нет метаданных. Ты не сможешь сделать, например, маршалинг автоматически. Существующие для С++ решения опираются на инструменты автоматической генерации исходного кода. MIDL — suxx. N>>>Скажи мне хоть одну действительно новую технологию которая есть в .net S>>JIT, Metadata, User-Defined Metadata. Этого в С++ нет и быть не может. Некоторые из моментов поддаются эмуляции. Да и то она выглядит достаточно бледно по сравнению с тем, что есть в .Net. Одна возможность генерации кода на лету открывает совершенно новое измерение гибкости и комфорту.
N>Эти технологии придумал не микрософт, а я спрашивал именно про то что придумал микософт.
Ага, давай теперь вопрос подменять. Ты спрашивал совершенно конкретно — чего нет в С++, а есть в .Net. Я тебе ответил. Если тебе интересна история программирования — это не сюда. Это туда, где обсуждают, кто же таки изобрел радио — Попов или Маркони. N>Metadata и User-Defined Metadata легко и ярко реализуются в С++, причём и генерацию кода можно сделать, только зачем?
Нельзя там сделать генерацию кода. Вся генерация кода заканчивается в compile-time. Оставаясь в рамках языка, ты не сможешь генерировать в рантайме исполняемый код. А зачем — для перформанса, вестимо. Ты про частичные вычисления слышал? Гуглить по фамилии "Ершов". Смысл в том, что компилятор ограничен знаниями, которые у него есть. В рантайме можно получить дополнительную информацию для семантической оптимизации. В рамках С++ ее использовать нельзя — код представляет собой монолит, и подправить его не выйдет.
Про легко и ярко — ну я бы не сказал. Вон, в RSDN #5 есть статья "МЕтаданные своими руками". Ага. Эмуляция того, что встроено в .Net. Сложность и неудобство видны невооруженным взглядом. N>по поводу JIT , я не пойму почему микрософт сделала такой упор на него, почему во всех системах в которых есть возможность JIT'а и VM, выбор делается в пользу VM, я в этом вопросе не специалист, может ты специалист, так расскажи
Это про какие такие системы ты говоришь? Я вот не знаю ни одной системы, которая бы выбрала VM.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Неправда. В этом языке нет метаданных. Ты не сможешь сделать, например, маршалинг автоматически. Существующие для С++ решения опираются на инструменты автоматической генерации исходного кода. MIDL — suxx.
Не так часто нужен маршаллинг, а когда нужен то ИМХО что-то типа MIDL в самый раз. Зачем собирать мусор со всего света и тащить его в язык?. Лучше узкоспециализированные веши порешать специальными заточенными тулзами. Тады все будет ОК. И свобода выбора останется. Вдруг понадобятся тебе специализированные метаданные и упресся ты в то, что намертво в НЕТ зашито, тады сразу вспомнишь старые добрые плюсы.
S>>>JIT, Metadata, User-Defined Metadata. Этого в С++ нет и быть не может. Некоторые из моментов поддаются эмуляции. Да и то она выглядит достаточно бледно по сравнению с тем, что есть в .Net. Одна возможность генерации кода на лету открывает совершенно новое измерение гибкости и комфорту.
S>Нельзя там сделать генерацию кода. Вся генерация кода заканчивается в compile-time. Оставаясь в рамках языка, ты не сможешь генерировать в рантайме исполняемый код. А зачем — для перформанса, вестимо. Ты про частичные вычисления слышал? Гуглить по фамилии "Ершов". Смысл в том, что компилятор ограничен знаниями, которые у него есть. В рантайме можно получить дополнительную информацию для семантической оптимизации. В рамках С++ ее использовать нельзя — код представляет собой монолит, и подправить его не выйдет.
В С++ тоже можно генерить код на лету. Таскай с собой бесплатный Ц-компилер. генери Ц-код, собирай в DLL грузи и выгружай. И не капассируй нам мозги про генерацию кода.
S>Про легко и ярко — ну я бы не сказал. Вон, в RSDN #5 есть статья "МЕтаданные своими руками". Ага. Эмуляция того, что встроено в .Net. Сложность и неудобство видны невооруженным взглядом.
Сложность где? Я вот идейку на вооружение взял, порешал то-что нужно и в макрос все завернул. Теперь добавляю в свои классцы по одной строчке на класс и не нарадуюсь. Все летает и гемороя не имею. И ограничений особых нет.
Здравствуйте, Kluev, Вы писали: K>Не так часто нужен маршаллинг, а когда нужен то ИМХО что-то типа MIDL в самый раз.
Э-э, парень... MIDL — сакс. После напишу почему. K>Зачем собирать мусор со всего света и тащить его в язык?. Лучше узкоспециализированные веши порешать специальными заточенными тулзами. Тады все будет ОК. И свобода выбора останется. Вдруг понадобятся тебе специализированные метаданные и упресся ты в то, что намертво в НЕТ зашито, тады сразу вспомнишь старые добрые плюсы.
Вот как раз для этого и сделали User-defined metadata! Так что лично я никогда не упрусь. K>В С++ тоже можно генерить код на лету. Таскай с собой бесплатный Ц-компилер. генери Ц-код, собирай в DLL грузи и выгружай. И не капассируй нам мозги про генерацию кода.
Ну щас прям. И сразу получи платформенную зависимость. Как минимум. А также необходимость таскать с собой запас хидеров для того, чтобы генеренный код мог взаимодействовать с другим кодом. В общем, ребята, солюшн с Ц-компилером даже на шутку не тянет. Потому его и не применяет никто и никогда. В отличие от той самой генерации кода в .Net.
K>Сложность где? Я вот идейку на вооружение взял, порешал то-что нужно и в макрос все завернул. Теперь добавляю в свои классцы по одной строчке на класс и не нарадуюсь. Все летает и гемороя не имею. И ограничений особых нет.
А что именно летает, позвольте спросить? Функционал какой?
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Kluev, Вы писали: K>>Не так часто нужен маршаллинг, а когда нужен то ИМХО что-то типа MIDL в самый раз. S>Э-э, парень... MIDL — сакс. После напишу почему.
Я имел ввиду не конкретную поделку от микровсоса, а сам способ. Можно и самому написать что нибудь подобное или выбрать между тем-же MIDL-СОМ или СОRBA и т.п.
S>Вот как раз для этого и сделали User-defined metadata! Так что лично я никогда не упрусь.
В С++ вообще все user-defined. Конечно метаданные как в НЕТ не сделаешь, но ИМХО и потребности нет.
K>>В С++ тоже можно генерить код на лету. Таскай с собой бесплатный Ц-компилер. генери Ц-код, собирай в DLL грузи и выгружай. И не капассируй нам мозги про генерацию кода. S>Ну щас прям. И сразу получи платформенную зависимость. Как минимум. А также необходимость таскать с собой запас хидеров для того, чтобы генеренный код мог взаимодействовать с другим кодом. В общем, ребята, солюшн с Ц-компилером даже на шутку не тянет. Потому его и не применяет никто и никогда. В отличие от той самой генерации кода в .Net.
В научной среде сплошь и к ряду, сам видел когда ишшо в институте учился. А чем плохо? быстродействие будет — закачаешься. А остальные проблемы при грамотном подходе и не проблеммы вообще. К тому же есть компилеры и кроссплатформенные.
А если быстродействие особое не нужно, то прикрутить скрипт-машину к плюсовой программе нет проблемм. Генери в скрипт и не жалуйся. ИМХО, надуманная проблемма вообще.
K>>Сложность где? Я вот идейку на вооружение взял, порешал то-что нужно и в макрос все завернул. Теперь добавляю в свои классцы по одной строчке на класс и не нарадуюсь. Все летает и гемороя не имею. И ограничений особых нет. S>А что именно летает, позвольте спросить? Функционал какой?
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, naje, Вы писали: N>>можно S>Неправда. В этом языке нет метаданных. Ты не сможешь сделать, например, маршалинг автоматически. Существующие для С++ решения опираются на инструменты автоматической генерации исходного кода. MIDL — suxx.
я не имел ввиду idl, можно всё сделать на чистом С++ без тулзов кодогенерации, правда стиль програмирования будет похож на функциональный (но что в этом плохого, плохо что только похож) (кстати буква M в слове MIDL уже говорит о многом, у тебя всё замыкается на ms)
N>>>>Скажи мне хоть одну действительно новую технологию которая есть в .net S>>>JIT, Metadata, User-Defined Metadata. Этого в С++ нет и быть не может. Некоторые из моментов поддаются эмуляции. Да и то она выглядит достаточно бледно по сравнению с тем, что есть в .Net. Одна возможность генерации кода на лету открывает совершенно новое измерение гибкости и комфорту.
N>>Эти технологии придумал не микрософт, а я спрашивал именно про то что придумал микософт. S>Ага, давай теперь вопрос подменять. Ты спрашивал совершенно конкретно — чего нет в С++, а есть в .Net.
я спрашивал что нового в .Net, как вобще можно сравнивать язык с фреймворком?
S> Я тебе ответил. Если тебе интересна история программирования — это не сюда. Это туда, где обсуждают, кто же таки изобрел радио — Попов или Маркони.
причём тут это
я хотел скахать что ничево в .net выдающегося нет
N>>Metadata и User-Defined Metadata легко и ярко реализуются в С++, причём и генерацию кода можно сделать, только зачем? S>Нельзя там сделать генерацию кода. Вся генерация кода заканчивается в compile-time. Оставаясь в рамках языка, ты не сможешь генерировать в рантайме исполняемый код. А зачем — для перформанса, вестимо. Ты про частичные вычисления слышал? Гуглить по фамилии "Ершов". Смысл в том, что компилятор ограничен знаниями, которые у него есть. В рантайме можно получить дополнительную информацию для семантической оптимизации. В рамках С++ ее использовать нельзя — код представляет собой монолит, и подправить его не выйдет.
можно сделать, есть немеренно всяких промежуточных представлений для програм (это тоже не микрософтовская технология)
объясни чем могут помочь частичные вычисления в rt, это можно и в ct делать в большинстве случаев, именно для повышения производительности, не хочешь?, тогда спасёт компилятор с промежуточным представлением, но это не особенность языка, а мы обсуждаем C++ против C#
S>Про легко и ярко — ну я бы не сказал. Вон, в RSDN #5 есть статья "МЕтаданные своими руками". Ага. Эмуляция того, что встроено в .Net. Сложность и неудобство видны невооруженным взглядом. N>>по поводу JIT , я не пойму почему микрософт сделала такой упор на него, почему во всех системах в которых есть возможность JIT'а и VM, выбор делается в пользу VM, я в этом вопросе не специалист, может ты специалист, так расскажи S>Это про какие такие системы ты говоришь? Я вот не знаю ни одной системы, которая бы выбрала VM.
Не, мне интересны просто аналоги... Их наличие и возможности...
N>можно сравнить один проект сделаный на С# и на C++ N>вот например boost::spirit
Не вижу что тут сравнивать.
N> и spart
К сожалению не знаком с таковым.
N>плюс в этом же топике давали ссылочку здесь
Ну, то что это чушь тут тоже не раз говорилось. Там даже Ява быстрее дотнета, а это просто бред.
N>покажи мне хоть один проект выполненный на С++ который бы при портировании на C# улучшился
Портировании? Да на С++ просто нет сравнимых проектов.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, naje, Вы писали:
N>я ж тебе не разказываю про наши проекты, ты дай мне то на что посмотреть можно
Кстати, очень показательным примером является эволюция АСП. Первое АСП было написано на С/С++. АСП.НЭТ написано на Шарпе. При этом оно и работает быстрее, и функциональнее, и надежнее.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Kluev, Вы писали:
K>Не так часто нужен маршаллинг, а когда нужен то ИМХО что-то типа MIDL в самый раз.
Правильно. Как бы раком не стоять, лиш бы нового не изучать.
K> Зачем собирать мусор со всего света и тащить его в язык?. Лучше узкоспециализированные веши порешать специальными заточенными тулзами. Тады все будет ОК. И свобода выбора останется. Вдруг понадобятся тебе специализированные метаданные и упресся ты в то, что намертво в НЕТ зашито, тады сразу вспомнишь старые добрые плюсы.
Ага. Ведь в С++ вообще нет метаданных. Вот простор то для творчиства. А в дотнете как раз для расширения метаданных есть механизм атрибутов.
K>В С++ тоже можно генерить код на лету. Таскай с собой бесплатный Ц-компилер. генери Ц-код, собирай в DLL грузи и выгружай. И не капассируй нам мозги про генерацию кода.
Ты пробовал? Скорость компиляции плюсов просто никакая. Ждать окончания компиляции скрипта по минуте... А тот же эмит работате молниеносно. Да и компиляторы Шарпа/ВБ летают.
K>Сложность где?
— Вот у нас на предприятии говорят что воздух грязный... А мы по многу лет работем и ничего не замечаем, ничего не замечам, ничего не замечам, ничего не замечам, ничего не замечам...
(с)
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, c-smile, Вы писали:
CS>С++ - 1692 ms (+/- 10) CS>С# — 2433 ms (+/- 50)
Со строками несколько проблем. Их тип — (ANSI или UNICODE) и оптимизации всякие.
Потому результаты будут разные. Строки в шарпе очень хитрые, больше всего похожи... ни на что !!!
Это действительно так. Гляньте в исходники ротора и все будет видно.
Потому строки дотнетовские успешно конкурируют со строками в С++.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, naje, Вы писали:
N>>мне стыдно, но я не знаю замечательных особенностей Хоума,
VD>Это не сложно: http://rsdn.ru/?janus/article/article.xml
N>> и я надеюсь мы не будем тут начинать мерятся проектами
VD>Не, мне интересны просто аналоги... Их наличие и возможности...
я никогда не занимался этим направлением
N>>можно сравнить один проект сделаный на С# и на C++ N>>вот например boost::spirit
VD>Не вижу что тут сравнивать.
N>> и spart
это генератор парсеров с ct, для того чтоб написать парсер не нужены кокоры, яки и бизоны, всё делается с ct (в варианте C++ конечно), таким же образом можно и idl заменить (вспоминался в этом топике), а на C# этого сделать нельзя, прийдётся ждать когда в С# встроят генератор парсеров
N>>плюс в этом же топике давали ссылочку здесь
VD>Ну, то что это чушь тут тоже не раз говорилось. Там даже Ява быстрее дотнета, а это просто бред.
так проверь, может и не чушь? напиши статью по этому поводу, как обманывают, враги
N>>покажи мне хоть один проект выполненный на С++ который бы при портировании на C# улучшился
VD>Портировании? Да на С++ просто нет сравнимых проектов.
И конечно все самые несравненные проекты на C# написал Ты.