Цитата:
Сообщение от thsGeo
Я хочу добавить только одно. То, как и с какой скоростью работает программа, в большей степени зависит от "пряморукости" програмера, который ее написал, а потом уже от языка.
|
Не могу согласиться. Данное утверждение верно в отношении компилируемых языков, предоставляющих полный спектр возможностей вплоть до самых низкоуровневых. И то в настоящее время большинство компиляторов в той или иной степени оптимизируют код, и оптимизирующий код хуже заведомо медленнее.
Если же сравнивать C++ либо Pascal c C# (что и пытался делать автор данной темы), то говорить о главенстве пряморукости программера просто глупо. C++ - язык, компилируемый в машинный код. C# - язык, компилируемый в байт-код, а потом интерпритируемый Framework'ом, да ещё с автоматической очисткой памяти. Отсюда следует, что даже кривыми руками написанная программа, если только в ней нет явных ошибок, да ещё скомпилированная оптимизирующим процессором имеет все шансы оказаться быстрее, нежели на C#. Просто потому, что язык C# по-умолчанию включает в себя кучу замедляющих работу вещей.
И ещё давайте не будем забывать, что C++ предоставляет куда больше возможностей для оптимизации кода, нежели C# - опять же в силу низкоуровневых операций. Ну а повыкидывать ненужные блоки из кода и упростить нужные может, в принципе, и не такой крутой программист - если его заставят, конечно.
Цитата:
Сообщение от thsGeo
Gothic III, написанная на native, тормозила не хило, тоже было и с NWN2, написанной на managed, но вышли патчи, и все норм работает.
|
О, да! Как Gothic III "норм работает" я уже имел счастье наблюдать. Так и не поиграл дольше часу, ожидая "норм работающего" патча. Ну а каких-то ускорений в случае NWN2 не заметил.
Впрочем, к теме это не слишком относится. Как я уже говорил, C# замедляет программы сами по себе. Конечно, на нём есть возможность использовать unsafe-код, да. Но тогда какой смысл в использовании C# как такового?
Цитата:
Сообщение от thsGeo
Это вопрос удобства и скорости разработки. Большинство предпочитают C++ ассамблеру потому, что си УДОБНЕЕ и кодить под него БЫСТРЕЕ, чем под ассамблер.
|
И при этом просто C разрабатывался таким образом, чтобы предоставлять все даваемые ассемблером возможности для оптимизации, а C++ от него это унаследовал. Простите, но сравнивать по скорости пары C++/ассемблер и C#/C++ просто некорректно. Вы бы ещё Prolog/ассемблер сюда добавили. C# даёт в нагрузку к себе уборку памяти и framework, С++ не даёт в нагрузку к себе
ничего.
Цитата:
Сообщение от thsGeo
Пока, в чистом виде, xna пригоден для разработки казуальшины, но майкры двигают ее не из благих побуждений, а из-за наживы - xna работает на двух платформах: Win и XBOX360. И уж поверте, если майкрософт тянется за деньгами, она из получает. Через некоторое время разработчики перейдут на XNA хотя бы только потому, что она ЭКОНОМИЧЕСКИ эффективней, чем c++ и directX. Вот и все.
|
Да ну? Я как погляжу на современную игровую индустрию - почему-то ребята гонятся за скоростью своих приложений. Иными словами, намерено
затормаживать игру будет только глупый человек. Потому что те, кто код свой ради XBOX не затормаживал, обойдут его по всем критериям - и по графике, и по физике, и по AI.
Что же XNA удобнее и быстрее - попробуйте мне ещё доказать, ибо под C++ сейчас столько движков и наработок у всех имеется, что преимущества C# в скорости разработки мне не совсем понятны. Работа с памятью упрощена? И что? Нормальный программист delete где нужно и так писать не забывает, а не нормальный и в C# кучу ошибок наделает.
Microsoft, конечно, известна своим упорством в делании денег. Однако сейчас, похоже, уже не так ситуация, когда она может выиграть. Сравните продажи/использование Висты и XP. Ох, как M$ Висту продвигали! DirectX 10! Давайте все переходите под висту, пишите под Висту! И что? Да плюнули разработчики игр на Висту, к счастью! А некоторые и DirectX в гробу видали - под OpenGL пишут.
Так что M$ в кои-то веки дали по носу с её инициативами.
И ещё ответьте: Вы читали интервью Страуструпа чуть выше? В кратце - для C++ реализованы дополнительные примочки, добавляющие в него преимущества C#. А теперь вопрос - так ёлки-палки, почему ими никто не пользуется, если это так "удобно" и "экономически выгодно", а C#'пом все вдруг вдохновятся, выкинут все движки/библиотеки на C++ и строем пойдут под XNA писать, а? Из-за XBOX? А не слишком ли это глупо - писать заведомо тормознутые игры только из-за приставки, опять же заведомо более тормознутой, нежели компьтер?