| 
	
		
		
			| Переход на новый язык программирования! |  |  |  | 
| 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 тут - фактически костыль
   
 
 Цитата (Undead) С одной стороны да, но когда нужно взаимодействовать с натвиным кодом, то другого выхода нет.PInvoke же + маршалинг. Ибо все таки маршалинг и голые указатели внутри managed кода - это разные вещи. И тут скорее даже не взаимодействие с "нативным кодом", а взаимодействие между managed и unmanaged кодом (ну и native по умолчанию unmanaged). В случае с маршалингом - в коде нет торчащих наружу " аля void* ", все типы являются managed типами, и обычно этого достаточно для "общения" с native.
 
 
 Цитата (Undead) Нужно. Если писать чисто на шарпе, то скорость будет ужасной.
 Цитата (Undead) Да и пробежаться указателем по коллекции быстрее, чем foreach использовать.Так и надо к этому более комплексно подходить. Не делать постоянно костыльные указатели повсеместно и мешать кашу из safе/unsafe кода, а брать, скажем, цельный алгоритм или вообще какую-либо систему (для движка актуально) и выносить отдельно в unmanaged native код (С++), где уже все заоптимизируется как надо.
 
 Насчет "пробежаться указателем по коллекции быстрее", а за счет чего оно станет быстрее? После того как отработает JIT компилятор, foreach сам превратится в нативное "пробежаться по указателям" и усе. В Managed языках вообще не надо думать о указателях и о какой-то там памяти
  , иначе все концепция таких языков нарушается. Хотите "поработать" с памятью? Тогда только С++, только хардкор. 
 
 Цитата (Undead) Я же имел ввиду движки написанные на .Net языках. Это по идее не возможно, т.к. на данный момент все GAPI нативные. Для тех, кто скажет про XNA: Там внутри вызывается нативный DirectX.Ну, с такой постановкой вопроса на .Net языках писать вообще невозможно
  . Банальное создание окна - уже вызов нативной ф-ции внутри фреймворка, и так почти на каждый чих. 
 P.S. Имхо, конечно, многое
  . Но за указатели в managed я бы руки отрывал   
 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) закорененный С++-ник, который с дрожью в пальцах считает байты оперативки, которые расходует программа и каждую МС исполнения кода.А это плохо?
  Добавлено (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.Лично у нас в городе нет ни одной конторки, где бы работали программисты.
   
 Вcем зла.
 
 
 Сообщение отредактировал Undead - Суббота, 27 Апреля 2013, 19:41 |  |  |  |  |  | 
| Archido | Дата: Воскресенье, 28 Апреля 2013, 09:50 | Сообщение # 50 |  |   Сэнсэй Сейчас нет на сайте | Цитата (Undead) В своём проекте же стараюсь всё оптимизировать на столько, на скольно возможно.Про зло под названием "преждевременная оптимизация" слышал?
  Оптимизировать таки надо, то что уже хорошо и отлажено работает, и действительно тормозит. На ранних стадиях разработки иногда приходится многое переписывать и, в таком случае, оптимизировать по новой. Но это так, к слову  А вообще если нравится все оптимайзить и весь процесс контролировать, то язык похоже надо и правда менять. 
 
 Цитата (Undead) Ну unsafe,а не так много, в основном же Pinvoke, да маршалинг, т.к. часть кода на плюсах. Думаю о том, что бы проценитов 70 на плюсы переписать.Ну PInvoke это то нормально, а вот unsafe все таки не очень. А после 70-ти процентов со временем и оставшееся перепишешь
   
 
 Цитата (Undead) Я всё чаще склоняюсь к мысли, что .Net - один большой костыль.Все может быть
   
 C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
 |  |  |  |  |  | 
| Vinchensoo | Дата: Воскресенье, 28 Апреля 2013, 11:29 | Сообщение # 51 |  |   Злобный социопат с комплексом Бога Сейчас нет на сайте | Цитата (Undead) Лично у нас в городе нет ни одной конторки, где бы работали программисты. 
Грусть)
 
 
   |  |  |  |  |  | 
| Undead | Дата: Воскресенье, 28 Апреля 2013, 13:17 | Сообщение # 52 |  |   NeoAxis User Сейчас нет на сайте | Цитата (Vinchensoo) Грусть)И не говори. Тот, кто может поставить винду или зарегаться в социалках, считается крутым программером-хакером.
  Добавлено (28.04.2013, 13:17)---------------------------------------------
 
 Цитата (Archido) Про зло под названием "преждевременная оптимизация" слышал? Оптимизировать таки надо, то что уже хорошо и отлажено работает, и действительно тормозит. На ранних стадиях разработки иногда приходится многое переписывать и, в таком случае, оптимизировать по новой. Но это так, к слову А вообще если нравится все оптимайзить и весь процесс контролировать, то язык похоже надо и правда менять.Оптимизировать стараюсь только уже готовое. Часто доходит до того, что декомпилю и ищу, чего бы ещё урезать
   
 Цитата (Archido) Ну PInvoke это то нормально, а вот unsafe все таки не очень. А после 70-ти процентов со временем и оставшееся перепишешьМеня остановит лень. Надеюсь.
 
 Вcем зла.
 |  |  |  |  |  | 
| First | Дата: Воскресенье, 28 Апреля 2013, 23:04 | Сообщение # 53 |  |   Уолтер Брайт Сейчас нет на сайте | -Mikle-, а насколько vb.net быстрее vb6? 
 
 Цитата (Undead) И не говори. Тот, кто может поставить винду или зарегаться в социалках, считается крутым программером-хакером. 
 Правильно, пусть не создают конкуренцию.
   |  |  |  |  |  | 
| -Mikle- | Дата: Понедельник, 29 Апреля 2013, 19:38 | Сообщение # 54 |  |   Изобретатель велосипедов Сейчас нет на сайте | VB6 немного (процентов на 5-10) отстаёт на современных процессорах, особенно на Интелах, на Атлонах уже спорно, а на более старых вообще почти всех рвёт, кроме некоторых C++ компиляторов. Но это с применением стиля программирования, учитывающего специфику VB6 (могу перечислить по пунктам), с учётом, что недоступны потоки, 64-разрядные целые, битовые сдвиги. |  |  |  |  |  
 |