ddv wrote:Ничего он не заменяет...не надо сравнивать языки которые компилируются в байт код и языки компилируемые в NATIVE код. И уровень производительности у них совсем разные...
Вообще-то CLR байт-код компилируется в нативный код перед исполнением. И при аналогичном качестве оптимизатора (сравнивая MS VC++ и MS VC++/CLR), скорость исполнения практически идентична, как ни удивительно (правда так было не всегда).
У C# выразительные средства победнее, наличие reflection и отсутствие const-ов выкручивает оптимизатору руки, и в итоге получается помедленнее процентов на 50-100%, если писал человек знающий особенности обоих языков. Что для очень многих приложений, которые не занимаются чисто вычислительной работой, а в основном ждут ответа у моря/пользователя/базы данных, некритично совершенно. Ну и да, с C++ часто больше оптимизационных возможностей, т.е. есть шанс сделать good enough до того как плюнуть и начинать писать на ассемблере.
Повторюсь, преимущества C#/Java начинают проявляться не в программе hello world, а когда есть множество библиотек и интерфейсов, которые надо собирать в кучу.
А уж про скорость я вообще молчу...когда на каждом шагу вы создаете десятки объектов, проверяете сотню типов на соответствие и т.п.
Где-то такие же аргументы и про C++ можно послушать от людей которые ну не осилили...
Как написано, так и будет. Можно создавать, можно не создавать. Если сравнивать код на C# написанный идиотом который и про boxing-unboxing не слыхивал, и чем отличается struct от class в C# не слыхивал, и то же написанное человеком представляющим что он делает, то отличия в производительности будут на порядки.