Size: a a a

pro.graphon (and gamedev)

2020 February 13

AB

Alexander Busarov in pro.graphon (and gamedev)
Забаньте уже кто-нибудь этого @lain_dono . Оно заебало, чес слово. Хуже вегана.
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Lain-dono
В rust с этим проблем не будет.
Это пока ты один пишешь
источник

L

Lain-dono in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Это пока ты один пишешь
Это то тут при чём?
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Lain-dono
Это то тут при чём?
Ссылочками ошибки не ограничиваются, особенно в огромной архитектуре
источник

L

Lain-dono in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Ссылочками ошибки не ограничиваются, особенно в огромной архитектуре
Так это не единственный класс ошибок, от которых rust избавляет.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Lain-dono
Я сказал, что плохо понял, что ты имел ввиду.
Так внемли. Дальше следует цепочка утверждений. Вряд ли спорных.
Плюсы имеют тридцатилетнее легаси в синтаксисе и прочих аспектах. Это и преимущество (обратная совместимость) и недостаток (множество небезопасных практик и конструкций приходится поддерживать/нельзя выпиливать, меньшая свобода при внесении новых изменений/фич).
То же самое относится и к совместимости с C. Тоже огромный плюс и огромный минус.
C++ core guidelines — это некоторые правила. Изначально не для человека, а для компилятора. Если ты герой — прочти их все и запомни. И следуй им. Если нет — то полагайся на компилятор. Он даст тебе ворнинги/подсказки. Везде есть аналог -Werror/-Werror-*.
Нужны они для того, чтобы при сохранении обратной совместимости и всего багажа, который приводит к небезопасным конструкциям, в Стандарте надёжно определить то, что является таковыми (небезопасными конструкциями) и не использовать их.
Можно использовать подмножество языка так, что написанное будет безопасным. И следить за тем, что ты не вышел из этого подмножества будет компилятор (т.е. это надёжно). Некоторых вещей не хватает и их добавляют через GSL (Guidelines Support Library, там всякие обёртки для указателей и прочие, обычно zero-cost, утилиты, которые или убирают небезопасные практики, или являются подсказками компилятору).
Получается безопасность (как минимум) Rust (с твоих слов, сам не разбирался) и мощность C++ в части поддержки всего старого кода и прочих общеизвестных плюсов C++.
источник

L

Lain-dono in pro.graphon (and gamedev)
Anatoly Tomilov
Так внемли. Дальше следует цепочка утверждений. Вряд ли спорных.
Плюсы имеют тридцатилетнее легаси в синтаксисе и прочих аспектах. Это и преимущество (обратная совместимость) и недостаток (множество небезопасных практик и конструкций приходится поддерживать/нельзя выпиливать, меньшая свобода при внесении новых изменений/фич).
То же самое относится и к совместимости с C. Тоже огромный плюс и огромный минус.
C++ core guidelines — это некоторые правила. Изначально не для человека, а для компилятора. Если ты герой — прочти их все и запомни. И следуй им. Если нет — то полагайся на компилятор. Он даст тебе ворнинги/подсказки. Везде есть аналог -Werror/-Werror-*.
Нужны они для того, чтобы при сохранении обратной совместимости и всего багажа, который приводит к небезопасным конструкциям, в Стандарте надёжно определить то, что является таковыми (небезопасными конструкциями) и не использовать их.
Можно использовать подмножество языка так, что написанное будет безопасным. И следить за тем, что ты не вышел из этого подмножества будет компилятор (т.е. это надёжно). Некоторых вещей не хватает и их добавляют через GSL (Guidelines Support Library, там всякие обёртки для указателей и прочие, обычно zero-cost, утилиты, которые или убирают небезопасные практики, или являются подсказками компилятору).
Получается безопасность (как минимум) Rust (с твоих слов, сам не разбирался) и мощность C++ в части поддержки всего старого кода и прочих общеизвестных плюсов C++.
Полностью согласен с этим.
Разве что добавлю: Rust не только про безопасность/скорость, но и про удобство.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
удобство — это опять пакетный менеджер? Вряд ли он возможен в мире C/C++ и всего легаси. Это фантастика ненаучная.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Возможен, но не такой хороший как в молодых языках, имеющих инфраструктуру сразу заточенную под такой способ распространения/получения библиотек.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Они даже есть и их много
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Anatoly Tomilov
удобство — это опять пакетный менеджер? Вряд ли он возможен в мире C/C++ и всего легаси. Это фантастика ненаучная.
Это всё кроссплатформенность долбаная
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
У одних библиотеки принято класть в проект, у других — глобально в систему ставить (но хоть в одну папку), а ещё приходят всякие хроносы со своими вулкан сдк, которые ставятся вообще в левые папки
источник

L

Lain-dono in pro.graphon (and gamedev)
Anatoly Tomilov
удобство — это опять пакетный менеджер? Вряд ли он возможен в мире C/C++ и всего легаси. Это фантастика ненаучная.
Документация ещё. Чуть ли не самая лучшая в индустрии (по крайней мере я не видел лучше). Форматирование кода одно на всех. Очень хорошее качество ошибок компилятора.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
тоже на это не жалуюсь в плюсах
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
в части форматирования плюсы дают свободу
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
некоторые вещи не понятно как вообще форматировать. Например конструкторы со списком инициализаторов и try catch блоком
источник

L

Lain-dono in pro.graphon (and gamedev)
Anatoly Tomilov
в части форматирования плюсы дают свободу
У нас тоже свобода (в отличии от golang например). Но есть нюанс. У нас есть "стиль по умолчанию". Большинству лень там чё-то менять. По итогам получается, что читаешь любой код в одном стиле. Это мелочь, но приятно. Я потому и говорю про удобства. Без всех этих мелочей можно жить, но когда они у тебя есть, от них очень сложно отказаться.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Lain-dono
У нас тоже свобода (в отличии от golang например). Но есть нюанс. У нас есть "стиль по умолчанию". Большинству лень там чё-то менять. По итогам получается, что читаешь любой код в одном стиле. Это мелочь, но приятно. Я потому и говорю про удобства. Без всех этих мелочей можно жить, но когда они у тебя есть, от них очень сложно отказаться.
не ньюанс, а нюанс. И вообще в приличном обществе не принято говорить "но есть (один) нюанс", обрывая фразу, т.к. это цитата из одного пошлого анекдота
источник

TW

Tony Werner in pro.graphon (and gamedev)
Anatoly Tomilov
не ньюанс, а нюанс. И вообще в приличном обществе не принято говорить "но есть (один) нюанс", обрывая фразу, т.к. это цитата из одного пошлого анекдота
Кек, очень даже принято
источник

L

Lain-dono in pro.graphon (and gamedev)
Anatoly Tomilov
не ньюанс, а нюанс. И вообще в приличном обществе не принято говорить "но есть (один) нюанс", обрывая фразу, т.к. это цитата из одного пошлого анекдота
Пофиксил. Про анекдот знаю, потому и применяю.
источник