Re
RAII сущетствует из-за эксепшенов в основном. + Ты сам заикнулся про арены, с которыми ничего освобождать не надо. (почти)
Ну для начала что бы юзать арены нужно две арены. Глобальная и скопная. Скопную внезапно надо как то автоматом высвобождать, иначе как система это будет детектить? Ну в общем есть много мелочей.
Re
В го нету деструкторов
Snusmumriken
Ужас какой. Тогда они тебе не нужны в плюсах, не используй.
Snusmumriken
Ты в го лажаешь с шаблонами?
Re
в го нету шаблонов
Snusmumriken
А что там вместо шаблонов?
UtoECat
но мне нужны шаблоны. RAII которое может выкинуть фокусы. Можем открыть спеку конечно и начать серьезные детали рассасывать. Но мне честно лень. Деструктора мне не хватит, точнее я могу налажать с ними. Шаблоны я могу налажить с ними. Потому что не знаю ряда вещей. От шаблонов я отказаться не могу.Потому что для моей системы они нужны. И для либ которые я использую нужны.Вообще там много мелочей
> RAII которое может выкинуть фокусы Если тебе надо много чего (больше 10 объектов в переменных) по цепочке создавать-удалять в пределах одной функции - стоит задуматься. И с RAII, и без. > Потому что не знаю ряда вещей. От шаблонов я отказаться не могу.Потому что для моей системы они нужны. 🤷‍♂️
Re
ну недавно что то типо дженериков появилось
Re
но только в функциях
Snusmumriken
А кто возвращает мутабельные указатели и кому? И что ты подразумеваешь под мутабельным указателем?
Re
указатель который может изменить данные, то есть не константный. кто кто угодно и кому угодно, это же приложение. ладно...вот все это хорошо конечно. Но как можно сравнивать 2 языка если в абсолютно равных условиях. Для получения +- одного и того же результата в одном надо. Не хило так ухитрится строчек на 50-100 + подключить либу + время компиляции. А в другом просто вызвать функцию.
Snusmumriken
Показывай конкретные примеры.
Snusmumriken
Потому что я сейчас буду так же сравнивать го и луашку, и луашка победит, потому что я подберу такой пример где луашка победит.
Re
ну смотри я хочу распарсить файл сохранений на TOML. Для Go нужно что? Ну создать структуру и закинуть в функцию. А на с++.
Snusmumriken
В го уже есть встроенная поддержка TOML?
Re
Ну для начала нам надо шаблон и шаблонный объект. Потом немного знаний и щепотку паттернов. Ну и писать писать писать.Молясь что не придется делать что то хитрое.
UtoECat
указатель который может изменить данные, то есть не константный. кто кто угодно и кому угодно, это же приложение. ладно...вот все это хорошо конечно. Но как можно сравнивать 2 языка если в абсолютно равных условиях. Для получения +- одного и того же результата в одном надо. Не хило так ухитрится строчек на 50-100 + подключить либу + время компиляции. А в другом просто вызвать функцию.
> указатель который может изменить данные, то есть не константный. > кто кто угодно и кому угодно, это же приложение В контексте ECS и игрового стейта вообще не понимаю каким образом какие-либо scope-guardы могут как-то изменить факт того, что весь игровой стейт - это большой глобальный стейт.
Re
На го мы просто добавляем импорт и дальше все как надо
Snusmumriken
И в чём проблема парсинга томла в плюсах? Мы просто добавляем инклюд и вперёд.
Re
в объект
Re
ну у тебя есть объект который меняется
Snusmumriken
Только не говори что голанг динамически создаёт новый тип из томла.
Re
нет зачем. ты делаешь тип и он в него запихивает все из томла.
Re
Ну я и в С++ сделаю класс. Но автоматом он мне все не запихнет.
Snusmumriken
Чел
UtoECat
в объект
есть либы для сериализации и десериализации, но там всё равно нужно будет писать функции какие конкретно поля сериализовывать а какие нет. (что не так уж и плохо...? могло быть хуже)
Snusmumriken
Ну я и в С++ сделаю класс. Но автоматом он мне все не запихнет.
То что в го какой-то чел с горы написал библиотеку для томла, которая пересобачивает данные из томла в объект — не является каким либо преимуществом голанга как языка. Для плюсов можно написать то же самое. То что этого ещё не написали за тебя — не значит ничего. Зато в плюсах полно либ с Json'ом, в том числе заполняющих объект.
Re
конечно нужно будет. даже для FMT надо писать код что бы вывести класс или структурку.
UtoECat
Ну я и в С++ сделаю класс. Но автоматом он мне все не запихнет.
тема сериализации чет далеко ушла от изначальной темы про RAII
Re
это другая тема. мне говорят что писать одинаково. но как 1 строчка , 2 строки с импортом.могут конкурировать с 100.
Re
И постоянными фиксами и лазаньями в макросы / шаблоны. Потому что структура сохранений постоянно меняется и даже если нет. Таких манипуляций на каждый чих полно
Snusmumriken
это другая тема. мне говорят что писать одинаково. но как 1 строчка , 2 строки с импортом.могут конкурировать с 100.
Обожемой, а я на плюсах такой инклюднул буст и получил гигамощный матпроцессор, который на голанге надо писать примерно 400 тысяч часов.
Re
от данных до обычных манипуляций с картами и массивами.
UtoECat
конечно нужно будет. даже для FMT надо писать код что бы вывести класс или структурку.
даже если завтра в c++ добавят интроспекцию, то тогда-же надо будет делать и кастомные атрибуты со свойствами, чтобы указывать какие поля сериализовывать а какие нет... И прочее... Что язык сделает ещё сложнее 😁
Re
так это заслуга языка.в го рефлексия, ты платишь скоростью взамен удобства. так где тебе не нужен перф. а в играх в таких местах перф не нужен, в моих точно
UtoECat
И постоянными фиксами и лазаньями в макросы / шаблоны. Потому что структура сохранений постоянно меняется и даже если нет. Таких манипуляций на каждый чих полно
а в других языках нет чтоль? Там тоже надо следить чтобы десериализация оставалась обратно совместимой когда это надо
Re
ну смотри. у меня есть структура да.в расте или го. да и в шарпах. она отвечает за некие данные. 1 функция сохранить. 1 функция загрузить. какая там структура ну пофигу.
Snusmumriken
так это заслуга языка.в го рефлексия, ты платишь скоростью взамен удобства. так где тебе не нужен перф. а в играх в таких местах перф не нужен, в моих точно
Так в томле тебе тоже надо описывать тип структуры и постоянно фиксить, вдруг полей в файлик томла добавил.
Re
функции главное не пихать в поля это да.
Re
А еще этот пиар плюсов.Мне даж писать на них захотелось. Я прям вспомнил как это интересно и весело, но не продуктивно(
Uni_X
Vi... Ты допустил одну огромную ошибку...
Re
Предлагаешь все таки на Одине писать? ну на чистом Си как то не удобненько(
Snusmumriken
Нет, были бы тут не плюсы а что-то ещё, жава, шарп, скриптики и далее — моя доказательная база бы не изменилась. Разницы принципиально нет.
Uni_X
Re
Да я не спорю я так. Он свой мир, я свой показываю.
Hello, World! 🎄
Re
Я то знаю. Что если буду писать на плюсах я получу 2 бонуса. Эмскриптен и нинтендо.
Re
А в остальном я получу попа боль(
Uni_X
Ну и вторая ошибка - ты попытался оспорить авторитет C++)
Re
Я до сих пор иногда забываю кое что в cmake...когда делаю нечто не тривиальное
UtoECat
Snusmumriken
Ну и вторая ошибка - ты попытался оспорить авторитет C++)
> были бы тут не плюсы а что-то ещё, жава, шарп, скриптики и далее — моя доказательная база бы не изменилась.
Re
Так не авторитет С++. Это просто язык для своей ниши. Топовый, но не для инди
Re
инди тяжело писать на чистых плюсах.
Snusmumriken
Выводы без нормального освоения — ложь.
Re
Статистика
Snusmumriken
Ложь.
Snusmumriken
Таки она самая.
Re
Сколько инди игр на чистых плюсах?
Snusmumriken
Много.
Igor
Некоторые индюшатники особо упоротые на асме пишут вообще
Snusmumriken
А ещё вопрос, что такое "чистые плюсы"?
Re
А сколько процентов из них не на плюсах?
Igor
Так что это не ново
Snusmumriken
А сколько процентов из них не на плюсах?
Тоже много. Но плюсы занимают около половины.
Re
Чел ты гонишь?
Re
Да там юнити процентов 80
Snusmumriken
А ещё, всё-таки, что такое "чистые плюсы"?
Snusmumriken
Да там юнити процентов 80
У тебя плохая статистика.
Re
Какие половина кек
Hello, World! 🎄
Какая разница на чем их пишут
Igor
А ещё, всё-таки, что такое "чистые плюсы"?
Это он похоже подразумевает без игровых двиглов