Четверг, 08 Декабря 2022, 22:55

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Форум игроделов » Программирование » Общие обсуждения программистов » Переход на новый язык программирования!
Переход на новый язык программирования!
AlexRabbitДата: Пятница, 26 Апреля 2013, 21:11 | Сообщение # 41
старожил
Сейчас нет на сайте
Цитата (Undead)
Да и где есть высокопроизводительные граф. или физ. двиги на шарпе?

DeltaEngine.net (доступен в C# (.NET) или C++ (native)
Это двиг от разработчиков ArenaWars, первого коммерческого game-продукта на С#.
Хотя согласен, это просто исключение, подтверждающее правило.


Нам требуются партнеры для продвижения и поддержки нашего ПО
UndeadДата: Пятница, 26 Апреля 2013, 21:24 | Сообщение # 42
NeoAxis User
Сейчас нет на сайте
AlexRabbit, Там всё равно используется нативный код.
Я же имел ввиду движки написанные на .Net языках. Это по идее не возможно, т.к. на данный момент все GAPI нативные.
Для тех, кто скажет про XNA:
Там внутри вызывается нативный DirectX.


Вcем зла.
FirstДата: Пятница, 26 Апреля 2013, 21:42 | Сообщение # 43
Уолтер Брайт
Сейчас нет на сайте
Цитата (Undead)
Я же имел ввиду движки написанные на .Net языках.


А чем они .net языки плохи для такого дела?
ArchidoДата: Суббота, 27 Апреля 2013, 09:27 | Сообщение # 44
Сэнсэй
Сейчас нет на сайте
Цитата (Vinchensoo)
Прекрасно представляю, что такое unsafe и маршалинг. Unsafe- это мейджик, он зло и не соответствует идеологии языка

+ 1. Unsafe тут - фактически костыль smile

Цитата (Undead)
С одной стороны да, но когда нужно взаимодействовать с натвиным кодом, то другого выхода нет.

PInvoke же + маршалинг. Ибо все таки маршалинг и голые указатели внутри managed кода - это разные вещи. И тут скорее даже не взаимодействие с "нативным кодом", а взаимодействие между managed и unmanaged кодом (ну и native по умолчанию unmanaged). В случае с маршалингом - в коде нет торчащих наружу " аля void* ", все типы являются managed типами, и обычно этого достаточно для "общения" с native.

Цитата (Undead)
Нужно. Если писать чисто на шарпе, то скорость будет ужасной.

Цитата (Undead)
Да и пробежаться указателем по коллекции быстрее, чем foreach использовать.

Так и надо к этому более комплексно подходить. Не делать постоянно костыльные указатели повсеместно и мешать кашу из safе/unsafe кода, а брать, скажем, цельный алгоритм или вообще какую-либо систему (для движка актуально) и выносить отдельно в unmanaged native код (С++), где уже все заоптимизируется как надо.

Насчет "пробежаться указателем по коллекции быстрее", а за счет чего оно станет быстрее? После того как отработает JIT компилятор, foreach сам превратится в нативное "пробежаться по указателям" и усе. В Managed языках вообще не надо думать о указателях и о какой-то там памяти smile , иначе все концепция таких языков нарушается. Хотите "поработать" с памятью? Тогда только С++, только хардкор.

Цитата (Undead)
Я же имел ввиду движки написанные на .Net языках. Это по идее не возможно, т.к. на данный момент все GAPI нативные. Для тех, кто скажет про XNA: Там внутри вызывается нативный DirectX.

Ну, с такой постановкой вопроса на .Net языках писать вообще невозможно smile . Банальное создание окна - уже вызов нативной ф-ции внутри фреймворка, и так почти на каждый чих.

P.S. Имхо, конечно, многое smile . Но за указатели в managed я бы руки отрывал happy


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Суббота, 27 Апреля 2013, 10:29
-Mikle-Дата: Суббота, 27 Апреля 2013, 10:39 | Сообщение # 45
Изобретатель велосипедов
Сейчас нет на сайте
Цитата (Undead)
С одной стороны да, но когда нужно взаимодействовать с натвиным кодом, то другого выхода нет.

Прекрасно взаимодействует. Мой софтверный двиг на C++ и ассемблере портируется на C# и vb.net так же легко, как и на vb6, производительность не теряется, никакого unsafe:
SR2D
Цитата (Undead)
Нужно. Если писать чисто на шарпе, то скорость будет ужасной.

Нет:
Физ. демка на C#
То есть C++, конечно, немного быстрее, но не катастрофично.
Archido
+1
VinchensooДата: Суббота, 27 Апреля 2013, 12:30 | Сообщение # 46
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Цитата (Undead)
Нужно. Если писать чисто на шарпе, то скорость будет ужасной.
Да и где есть высокопроизводительные граф. или физ. двиги на шарпе?
Да и WinAPI никто не отменял. .Net хоть и умеет многое, а мне мало)

Сдается мне, вы судите о возможностях дотнет по рассказам школьников на форуме с воспаленным воображением.
Если же нет, то вы- закорененный С++-ник, который с дрожью в пальцах считает байты оперативки, которые расходует программа и каждую МС исполнения кода.
Идеология C# не подразумевает написания на нем приложений, которым требуется управление памятью или молниеносное исполнение кода.
Опять же, как было замечено: существует JIT компиляция. Я не знаю, как дела обстоят в дотнете, но в Java JIT отрабатывает прекрасно и компилит код под конкретный процессор, в итоге потери в скорости исполнения с лихвой окупаются по скорости разработки приложения относительно С\С++. Думается, что в дотнет с JIT тоже все хорошо:)

Кстати, дотнет прекрасно умеет работать с большей частью winAPI, чего на нем только не написано. Если нужна слишком хардкорная работа с АПИ, то стоит подумать, мб и правда нужно использовать для этого С или С++?)


UndeadДата: Суббота, 27 Апреля 2013, 14:58 | Сообщение # 47
NeoAxis User
Сейчас нет на сайте
Цитата (Vinchensoo)
дотнет прекрасно умеет работать с большей частью winAPI, чего на нем только не написано.

Но там есть не всё.
Цитата (Vinchensoo)
Если нужна слишком хардкорная работа с АПИ, то стоит подумать, мб и правда нужно использовать для этого С или С++?)

Сам об этом думаю.
Цитата (Vinchensoo)
Сдается мне, вы судите о возможностях дотнет по рассказам школьников на форуме с воспаленным воображением.

Сам на нём пишу.
Цитата (Archido)
PInvoke же + маршалинг. Ибо все таки маршалинг и голые указатели внутри managed кода - это разные вещи. И тут скорее даже не взаимодействие с "нативным кодом", а взаимодействие между managed и unmanaged кодом (ну и native по умолчанию unmanaged). В случае с маршалингом - в коде нет торчащих наружу " аля void* ", все типы являются managed типами, и обычно этого достаточно для "общения" с native.

Ну unsafe,а не так много, в основном же Pinvoke, да маршалинг, т.к. часть кода на плюсах. Думаю о том, что бы проценитов 70 на плюсы переписать.
Цитата (Vinchensoo)
закорененный С++-ник, который с дрожью в пальцах считает байты оперативки, которые расходует программа и каждую МС исполнения кода.

А это плохо? biggrin

Добавлено (27.04.2013, 14:58)
---------------------------------------------

Цитата (Archido)
Unsafe тут - фактически костыль

Я всё чаще склоняюсь к мысли, что .Net - один большой костыль.


Вcем зла.
VinchensooДата: Суббота, 27 Апреля 2013, 17:17 | Сообщение # 48
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Цитата (Undead)
А это плохо?

Это плохо, когда вы судите о другой технологии, которая не предназначена для ваших задач на основе того, что не понимаете предназначения этой технологии.
Это как говорить, что iPhone- дно, потому что на вашей нокиа3310 кнопочки удобнее(а на айфоне их вообще нет).

Вы занимаетесь программированием профессионально? Лично у нас в городе не очень много контор, которые могут позволить себе писать на С\С++ те вещи, которые можно написать на дотнет\java.

Ибо сильно дороже.


UndeadДата: Суббота, 27 Апреля 2013, 19:30 | Сообщение # 49
NeoAxis User
Сейчас нет на сайте
Vinchensoo, Фрилансю. Когда пишу не для себя, то особо не задумываюсь и пишу, как удобнее и быстрее, главное, чтоб работало.
В своём проекте же стараюсь всё оптимизировать на столько, на скольно возможно.
Цитата (Vinchensoo)
Лично у нас в городе не очень много контор, которые могут позволить себе писать на С\С++ те вещи, которые можно написать на дотнет\java.

Лично у нас в городе нет ни одной конторки, где бы работали программисты. biggrin


Вcем зла.

Сообщение отредактировал Undead - Суббота, 27 Апреля 2013, 19:41
ArchidoДата: Воскресенье, 28 Апреля 2013, 09:50 | Сообщение # 50
Сэнсэй
Сейчас нет на сайте
Цитата (Undead)
В своём проекте же стараюсь всё оптимизировать на столько, на скольно возможно.

Про зло под названием "преждевременная оптимизация" слышал? smile Оптимизировать таки надо, то что уже хорошо и отлажено работает, и действительно тормозит. На ранних стадиях разработки иногда приходится многое переписывать и, в таком случае, оптимизировать по новой. Но это так, к слову smile А вообще если нравится все оптимайзить и весь процесс контролировать, то язык похоже надо и правда менять.

Цитата (Undead)
Ну unsafe,а не так много, в основном же Pinvoke, да маршалинг, т.к. часть кода на плюсах. Думаю о том, что бы проценитов 70 на плюсы переписать.

Ну PInvoke это то нормально, а вот unsafe все таки не очень. А после 70-ти процентов со временем и оставшееся перепишешь happy

Цитата (Undead)
Я всё чаще склоняюсь к мысли, что .Net - один большой костыль.

Все может быть biggrin


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
VinchensooДата: Воскресенье, 28 Апреля 2013, 11:29 | Сообщение # 51
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Цитата (Undead)
Лично у нас в городе нет ни одной конторки, где бы работали программисты.

Грусть)


UndeadДата: Воскресенье, 28 Апреля 2013, 13:17 | Сообщение # 52
NeoAxis User
Сейчас нет на сайте
Цитата (Vinchensoo)
Грусть)

И не говори. Тот, кто может поставить винду или зарегаться в социалках, считается крутым программером-хакером. biggrin

Добавлено (28.04.2013, 13:17)
---------------------------------------------

Цитата (Archido)
Про зло под названием "преждевременная оптимизация" слышал? Оптимизировать таки надо, то что уже хорошо и отлажено работает, и действительно тормозит. На ранних стадиях разработки иногда приходится многое переписывать и, в таком случае, оптимизировать по новой. Но это так, к слову А вообще если нравится все оптимайзить и весь процесс контролировать, то язык похоже надо и правда менять.

Оптимизировать стараюсь только уже готовое. Часто доходит до того, что декомпилю и ищу, чего бы ещё урезать biggrin
Цитата (Archido)
Ну PInvoke это то нормально, а вот unsafe все таки не очень. А после 70-ти процентов со временем и оставшееся перепишешь

Меня остановит лень. Надеюсь.


Вcем зла.
FirstДата: Воскресенье, 28 Апреля 2013, 23:04 | Сообщение # 53
Уолтер Брайт
Сейчас нет на сайте
-Mikle-, а насколько vb.net быстрее vb6?

Цитата (Undead)
И не говори. Тот, кто может поставить винду или зарегаться в социалках, считается крутым программером-хакером.


Правильно, пусть не создают конкуренцию. happy
-Mikle-Дата: Понедельник, 29 Апреля 2013, 19:38 | Сообщение # 54
Изобретатель велосипедов
Сейчас нет на сайте
VB6 немного (процентов на 5-10) отстаёт на современных процессорах, особенно на Интелах, на Атлонах уже спорно, а на более старых вообще почти всех рвёт, кроме некоторых C++ компиляторов. Но это с применением стиля программирования, учитывающего специфику VB6 (могу перечислить по пунктам), с учётом, что недоступны потоки, 64-разрядные целые, битовые сдвиги.
Форум игроделов » Программирование » Общие обсуждения программистов » Переход на новый язык программирования!
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг