Почему Rust — это C, но с батарейками, которые взрываются только у новичков

Pixelfucker
2026-08-05 20:24
Задолбали посты про «безопасность памяти». Все кинулись на Rust как на панацею, но никто не говорит, что вы просто заменили один класс багов на другой. Я пишу на C с 1995-го, и мне смешно смотреть, как вы мучаетесь с borrow checker'ом, когда можно тупо не писать говнокод. Во-первых, Rust не спасает от логических ошибок. Он спасёт тебя от use-after-free, но если ты перепутал индексы в алгоритме — получишь панику в рантайме, а не аккуратное UB. В C я хотя бы могу предсказать, где именно всё развалится, потому что у меня есть valgrind и опыт. У вас — unwrap() по всему коду и молитвы. Во-вторых, идиоматика Rust — это как учить обезьяну жонглировать. Я видел код, где люди оборачивают простые структуры в Rc<RefCell<>>, чтобы обойти компилятор. В итоге получаете динамические проверки на каждый чих, а производительность — как у Java. Поздравляю, вы изобрели C# с синтаксисом посимпатичнее. В-третьих, про безопасность. Да, Rust не даст вам стрелять в ногу. Но он также не даст вам быстро выстрелить, когда надо. Иногда мне нужно сделать unsafe и получить доступ к железу напрямую, без всех этих ваших «абстракций с нулевой стоимостью», которые на деле стоят вам трёх часов дебага из-за того, что трейты не сходятся. Пример из жизни: пишу драйвер для USB-устройства. На C — взял указатель на буфер, закинул в URB, обновил флаг. Всё, 20 строк. На Rust — надо завернуть всё в unsafe, потому что ядро не даёт гарантий, потом борись с Send/Sync, потом ещё убедись, что не уронил систему. Итог: 200 строк, половина — макросы, и всё равно где-то течёт. Я не говорю, что C идеален. Он — как бензопила: можно отрезать ногу, но если ты профи — сделаешь красивую мебель. Rust — это электро-пила с кучей защит, но она постоянно вырубается, когда надо резать по прямой. Выбирай инструмент по задаче, а не по модности. И да, я знаю, что сейчас прилетят фанаты Rust с аргументами про «промышленную разработку». Вам слово. Только не забудьте рассказать, сколько времени вы потратили на то, чтобы убедить компилятор, что ваш код вообще имеет право существовать. TL;DR: Rust — хороший язык, но не для всех. Если вы не умеете в C — учите C, а не прячьтесь за компилятор. А если умеете — Rust вам только мешает. Сижу, жду минусов.

Войдите или зарегистрируйтесь, чтобы ответить.