Здравствуйте, iHateBrightVictories, Вы писали:
HBV>Здравствуйте, Разраб, Вы писали:
Р>>https://youtu.be/AH4V4M7R88k?si=LKVfBKaqx9NXXiPo
Р>>мне кажется rust хорошо для программистов среднего уровня, не владеющих C++.
Р>>Все же работа с памятью создает большую когнитивную нагрузку.
Р>>Возможно после этого можно переехать проще на ziglang. Он в чем то похож.
Р>>и к тому же позволяет интегрироваться с си(++).
Р>>но раст реально просто. не так ли?
HBV>Нету исключений.
Есть panic, как исключения, только без раскрутки стека.
HBV>Я не понимаю как писать на языках без исключений. Приходится на каждом уровне забоититься о пробросе ошибок наверх.
HBV>По моему это какой то бред.
В расте это делается одним символом в конце выражения.
HBV>Исключения же дают возможность писать в стиле "happy path" не заморачиваясь об ошибках — обработчики ставятся на верхних уровнях.
Именно так и работает panic handler
HBV>Rust же предлагает вручную тащить это наверх самому.
"Тащить" это громко сказано. Синтаксический оверхэед от "тащить" меньше чем от асинхронных вызовов. А вот мерж ошибок конечно доставляет.
HBV>соответсвенно надо мержить эти ошибки вручную если на уровне отдаются разнотипные ошибки от разных API и вот это вот все.
Для этого уже давно есть готовые либы, вроде anyhow
HBV>Соответвенно разработчику предоставляется выбор — либо заниматься этим гемором с ошибками, либо вообще забивать иногда типа "я знаю здесь никогда не стрельнет"
ИМХО проблема преувеличена. Это в Go с ошибками прям совсем все плохо, а в rust геморроя очень мало. В zig его изначально нет, так как есть anyerror изначально.
Современные языки способны делать нормальную обработку ошибок без исключений.