Здравствуйте, itslave, Вы писали:
ARK>>Опять высокомерие. I>это снисходительность
А снисходительность вас тоже не красит.
ARK>>Да уж, разжевал так разжевал. Ну а по сути это просто личное мнение, не имееющее отношения к реальности. Никакого "баланса" в играх нет, их как писали на С/С++, так и пишут. Не так давно стали ограниченно применять C#, ограниченно — по причине его тормознутости для данной области. Будет нативная компиляция, будет больше скорость — будет больше применений. Так что жуйте дальше. I>Сколько лет Unity? Xamarin?
Unity — 10, Xamarin — 5. Когда в Unity появился C#, не знаю, изначально этот движок вообще был только под мак.
I>Из старичков могу вспомнить космических рейнджеров, написанных (в основном) на делфи.
Дельфи — нативный язык.
Опять же, игры играм рознь. Одно дело текстовый квест, другое — 3д-шутер. В контексте опровержения тезиса "производительность не нужна" (с) очевидно, имеется в виду второй вариант.
I>А серверная часть современных сетевых игрух сплошь и рядом на java &.NET.
Java — да, про .NET ничего не слышал. Ну и серверный код для сетевых игор — это все же другое направление, хотя и там производительность совсем не помешает (кто-то тут уже писал про перевод серверов StackOverflow с C# на C++).
I>Ну и главное — кроме игр будут примеры?
Игры — самое большое направление, где нужна производительность. Другие примеры привести можно, но сильно распространенными я бы их не назвал.
ARK>>NET Native — это новая версия старого управляемого компилятора? I>Именно. Раньше можно было запустить прекомпиляцию на конечной машине, сейчас — на серваке перед скачиванием апликухи. Ничего революционного.
.NET Native это не прекомпиляция, а нативный компилятор, использующий бекенд C++. Называть это "очередной версией старого" — это в чистом виде натягивать сову на глобус.
Re[41]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, AlexRK, Вы писали:
ARK>Unity — 10, Xamarin — 5. Когда в Unity появился C#, не знаю, изначально этот движок вообще был только под мак.
Видишь — оказывается C# на мобильном рынке уже давно. И отсутсвие нативной компиляции (точней ограниченаня поддержка) совсем ему там не мешал.
I>>Из старичков могу вспомнить космических рейнджеров, написанных (в основном) на делфи.
ARK>Дельфи — нативный язык.
Я в курсе. Просто в свое время Делфи считался кривым и тормознутым языком, который и в подметки не годится С++. По перфомансу, ога.
ARK>Опять же, игры играм рознь. Одно дело текстовый квест, другое — 3д-шутер. В контексте опровержения тезиса "производительность не нужна" (с) очевидно, имеется в виду второй вариант.
Вот видишь — оказывается что рынок то сегментирован, и С++ рулит только в одной из ниш этого рынка. Немножко не то что ты декларировал раньше.
ARK>Java — да, про .NET ничего не слышал. Ну и серверный код для сетевых игор — это все же другое направление, хотя и там производительность совсем не помешает
Ну если ты не слышал, это не значит что этого нет. Навскидку, Есть такая игровая контора — плариум, у них серверсайд всех игр на дотнете.
ARK>(кто-то тут уже писал про перевод серверов StackOverflow с C# на C++). ЛПП
ARK>Игры — самое большое направление, где нужна производительность. Другие примеры привести можно, но сильно распространенными я бы их не назвал.
Тоесть получается, что C# не годится только дял разработки одного сегмента одной отрасли индустрии — 3д шутерам. Именно то о чем я писАл много страниц назад: управляемые языки вытеснили С++ в маргинальные отрасли. Пусть там и дальше живет.
ARK>.NET Native это не прекомпиляция, а нативный компилятор, использующий бекенд C++. Называть это "очередной версией старого" — это в чистом виде натягивать сову на глобус.
смишно. Ну я наверное тебе секрет открою, если скажу что NGEN тоже использовал "бекенд С++".
Здравствуйте, alex_public, Вы писали:
_>2. Соответственно гетерогенные решения (где удобные короткие скрипты управляют производительным нативным кодом) будут обходить данное компромиссное решение и по производительности и по простоте разработки. Это сейчас уже видно во многих направлениях и дальше тенденция будет только нарастать. Кстати, это уже давно увидели и в той же MS, так что сменили свой бывший приоритет разработки "всё на .Net" на равномерное (ну это пока) распределение между .Net/C++/JS.
Вот тут инетерсно. С однйо стороны пожалуй соглашусь, что скриптовый язык и c++ в теории могут быть интересными. Тот же Node.js демонстрирует это. С другой стороны, js — это боль, питон так и не взлетел, typescript вполне годный вариант, но он сыроват и молод.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Serginio1, Вы писали:
S>> Я к тому же, что этот пример приводит постоянно один человек, и считает это доказательством дефекта .Net.
V>А ну ясно, аргументы оппонента тебе не нравятся. V>Бывает.
При этом я тебе постоянно привожу пример где это уже реализовано без лишних приседаний и кодогенерации.
Смысл в том, что люди решили сэкономить на фильтре (where(=>x!= null)). Но я тебе привел пример где все инлайнится.
Это не дефект .Net, а дефект Мойши.
Но вы все равно ссылаетесь на одно и тоже.
Все течет и все меняется. Следите за прогрессом.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, itslave, Вы писали:
ARK>>Опять же, игры играм рознь. Одно дело текстовый квест, другое — 3д-шутер. В контексте опровержения тезиса "производительность не нужна" (с) очевидно, имеется в виду второй вариант. I>Вот видишь — оказывается что рынок то сегментирован, и С++ рулит только в одной из ниш этого рынка. Немножко не то что ты декларировал раньше. I>Тоесть получается, что C# не годится только дял разработки одного сегмента одной отрасли индустрии — 3д шутерам. Именно то о чем я писАл много страниц назад: управляемые языки вытеснили С++ в маргинальные отрасли. Пусть там и дальше живет.
Шутеры это просто пример. Сейчас большинство игр использует 3Д-движки, а там без производительности никуда. Не говоря уже о консолях с их слабым железом и, при этом, большим рынком.
ARK>>(кто-то тут уже писал про перевод серверов StackOverflow с C# на C++). I>ЛПП
Тем не менее, по факту производительность веб-сервера на C# оказалась недостаточна.
ARK>>.NET Native это не прекомпиляция, а нативный компилятор, использующий бекенд C++. Называть это "очередной версией старого" — это в чистом виде натягивать сову на глобус. I>смишно.
Смишно, угу. Сова трещит.
I>Ну я наверное тебе секрет открою, если скажу что NGEN тоже использовал "бекенд С++".
Да, действительно. Подтвердить ссылкой можете?
Re[43]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, AlexRK, Вы писали:
ARK>Шутеры это просто пример. Сейчас большинство игр использует 3Д-движки, а там без производительности никуда. Не говоря уже о консолях с их слабым железом и, при этом, большим рынком.
Вот о чем я и говорю — С++ вытеснили в экзотику а-ля движки для оптимизации критических кусков кода, экзотическое железо и так далее. Во всех остальных отраслях он не нужен. Точка.
ARK>Тем не менее, по факту производительность веб-сервера на C# оказалась недостаточна.
достаточно. Более чем достаточно, почитай про их железо и их нагрузку.
ARK>Да, действительно. Подтвердить ссылкой можете?
Ну я не знаю, открой ngen.exe и увидь что там нет IL кода, даже скорей всего MZ первыми символами ))
Здравствуйте, itslave, Вы писали:
ARK>>Игры — самое большое направление, где нужна производительность. Другие примеры привести можно, но сильно распространенными я бы их не назвал. I>Тоесть получается, что C# не годится только дял разработки одного сегмента одной отрасли индустрии — 3д шутерам.
Сегмент ещё уже — 3D-шутеры AAA-класса на десктопе. Мобильные 3D-шутеры (без ультрареалистичной графики) вполне себе делаются на Unity, и даже входят в топгроссинг-списки.
ARK>>.NET Native это не прекомпиляция, а нативный компилятор, использующий бекенд C++. Называть это "очередной версией старого" — это в чистом виде натягивать сову на глобус. I>смишно. Ну я наверное тебе секрет открою, если скажу что NGEN тоже использовал "бекенд С++".
Ну ты хоть ссылки то читаешь, NGEN это просто предварительный JIT. При этом без оптимизаций из -за рефлексии.
В .Net Native с рефлексией не побалуешь Отражение и машинный код .NET
и солнце б утром не вставало, когда бы не было меня
Re[44]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, itslave, Вы писали:
ARK>>Да, действительно. Подтвердить ссылкой можете? I>Ну я не знаю, открой ngen.exe и увидь что там нет IL кода, даже скорей всего MZ первыми символами ))
"Нет IL кода" совершенно не эквивалентно "использует бекенд C++" (и особенно к месту пафос "наверное открою секрет" ).
"Ничего нового", "улучшенный NGEN и ничо более"
Re[45]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, AlexRK, Вы писали:
ARK>"Нет IL кода" совершенно не эквивалентно "использует бекенд C++" (и особенно к месту пафос "наверное открою секрет" ).
Именно, Ngen написан на С++, соответсвтенно сам является "бекендом С++". Не больше и не меньше.
Re[43]: Visual C# vs C++. Надо сравнить перспективы.
S> Ну ты хоть ссылки то читаешь, NGEN это просто предварительный JIT. При этом без оптимизаций из -за рефлексии.
Я читаю.
The (Native Image Generator (NGEN) compiles assemblies to native code and installs them in the native image cache on the local computer. However, although NGEN, like .NET Native, produces native code, it differs from .NET Native in some significant ways:
If no native image is available for a particular method, NGEN falls back to JITing code.
Тоесть так и напсиано — предназначение одинаково, рефлексию выпиляли. Ngen генерит машинный код когда может и делает предварительный JIT когда не может. Тоесть принципиально ничо нового, равзе что clr gc и кастрированный clr запихнули в одну сборку.
Это революция какая то?
Re[44]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, itslave, Вы писали:
I>Здравствуйте, Serginio1, Вы писали:
S>> Ну ты хоть ссылки то читаешь, NGEN это просто предварительный JIT. При этом без оптимизаций из -за рефлексии. I>Я читаю. I>
The (Native Image Generator (NGEN) compiles assemblies to native code and installs them in the native image cache on the local computer. However, although NGEN, like .NET Native, produces native code, it differs from .NET Native in some significant ways:
I>If no native image is available for a particular method, NGEN falls back to JITing code.
I>Тоесть так и напсиано — предназначение одинаково, рефлексию выпиляли. Ngen генерит машинный код когда может и делает предварительный JIT когда не может. Тоесть принципиально ничо нового, равзе что clr gc и кастрированный clr запихнули в одну сборку. I>Это революция какая то?
Принципиально новое это оптимизация компилированного кода, CLR не нужен. Там только один сервис для сборки мусора.
А принципиально там куча чего ибо это совсем другой компилятор. А NGEN это тот же JIT
и солнце б утром не вставало, когда бы не было меня
Re[45]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, Serginio1, Вы писали:
S> Принципиально новое это оптимизация компилированного кода, CLR не нужен. Там только один сервис для сборки мусора.
It replaces the full CLR with a refactored runtime that primarily contains the garbage collector.
Нужен. Просто его кастрировали по самое немогу и запихнули в одну длл.
S>А принципиально там куча чего ибо это совсем другой компилятор.
Ну вот о чемя и говорю — когда мелкософт свой С++ компилятор переписало(vs2003 емнип, никот же не кричал что это ореволюция в С++)? S>А NGEN это тот же JIT
Не совсем.
Re[46]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, itslave, Вы писали:
I>Здравствуйте, Serginio1, Вы писали:
S>> Принципиально новое это оптимизация компилированного кода, CLR не нужен. Там только один сервис для сборки мусора. I>
I>It replaces the full CLR with a refactored runtime that primarily contains the garbage collector.
I>Нужен. Просто его кастрировали по самое немогу и запихнули в одну длл.
А теперь сравни размер CLR и этой дллки. И ты считаешь, что это одно и тоже? S>>А принципиально там куча чего ибо это совсем другой компилятор. I>Ну вот о чемя и говорю — когда мелкософт свой С++ компилятор переписало(vs2003 емнип, никот же не кричал что это ореволюция в С++)? S>>А NGEN это тот же JIT I>Не совсем.
А что? Его использует CLR и джитит если нужно. Так что они не могут быть разными. Там вся проблема в рефлексии.
В Net Natve такой проблемы нет. Можно использовать регистры, Simd по полной. И только нужно расставить точки останова для сборки мусора.
Плюс JIT у не до оптимизаций по нескольку нет у него лишних минут или часов.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, AlexRK, Вы писали: ARK>>Unity — 10, Xamarin — 5. Когда в Unity появился C#, не знаю, изначально этот движок вообще был только под мак.
C# там был с начала.
ARK>>Игры — самое большое направление, где нужна производительность. Другие примеры привести можно, но сильно распространенными я бы их не назвал. I>Тоесть получается, что C# не годится только дял разработки одного сегмента одной отрасли индустрии — 3д шутерам. Именно то о чем я писАл много страниц назад: управляемые языки вытеснили С++ в маргинальные отрасли. Пусть там и дальше живет.
Честно говоря, я не очень понимаю, зачем среднестатистическому шутеру C++. В них нагрузка больше на графику, чем на игровую логику. Тут скорее С++ нужен не для шутеров, а просто для движков. Рендер, физика, анимация на C++, а игровая логика в зависимости от требований проекта на C++, C#, Lua, Python, что там ещё есть...
Если у тебя специфический проект, типа Total War, Factorio, какой-нибудь открытый мир невообразимых размеров вроде Just Cause 3, то ты его пишешь с нуля на С++ именно под этот проект. Если проект менее амбициозный, берёшь существующий движок и, независимо от жанра, пишешь логику на том, на чём этот движок предлагает. Причём в скорость скорее упрутся игры с тяжёлой симуляцией, типа Cities Skylines, чем шутеры.
Здравствуйте, Qbit86, Вы писали:
Q>Слушайте alexzzzz'а, он шарит, и вобоще вкорячивает C# 6.0 в богомерзкий Unity.
Не слушайте меня, я тут мимо проходил.
Q>Адептам же C++ предлагаю поднять тему il2cpp — еретическое движение ЮниТеков. (Я тут пока в треде тихонько посижу.)
Не слышал, когда они его, наконец, выкатят как доступный скриптовый backend для десктопа? Не жду от il2cpp никакого заметного ускорения, но поковырять палочкой хочется.