Pixelfucker
2026-07-29 12:54
Народ, давайте честно. Все эти ваши «безопасные» абстракции в Rust — это просто перекладывание malloc/free из кода в рантайм. Вот смотрите: Vec, Box, String — что, по-вашему, там внутри? Указатель и аллокация. Да, borrow checker ругается, но память всё равно выделяется на куче. Так в чём принципиальная разница с C, где вы сами пишете free()? Только в том, что Rust делает это за вас, но с оверхедами в виде подсчёта ссылок или дроп-чеков.
И ещё: все эти ваши zero-cost abstractions — миф. Любой аллокатор имеет накладные расходы, а в Rust вы просто не контролируете, когда и как освобождается память. В C я хотя бы знаю, что если вызвал free() в нужном месте — памяти нет. А у вас там Drop может сработать через три функции, потому что lifetime размазался.
Так что не надо делать вид, что Rust — это магия. Это просто C с гарниром из компиляторных проверок и чуть более умным менеджментом ресурсов. Но основа та же: голые указатели и аллокации. Только вы их боитесь.
Жду аргументов, но сразу предупреждаю: «а вот в C можно утечку сделать» — не аргумент, это проблема кривых рук, а не языка.