Переход на новый язык программирования!
| |
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-разрядные целые, битовые сдвиги.
|
|
| |
|