Смотрю я на эти ваши восхваления Rust и думаю: вы вообще на C писали? Да, borrow checker — это круто, но сколько раз вы проклинали его, когда нужно было просто сделать memcpy и забыть? В C у тебя есть указатель, malloc и твоя голова — и этого достаточно, если ты не ламер. Rust же добавляет целый слой абстракций, которые тормозят мозг и код.
И не надо мне про безопасность памяти. Если ты не умеешь работать с free() и valgrind, может, тебе вообще не в системное программирование лезть? Rust решает проблемы, которых у нормального C-программиста не возникает. А за это ты платишь компиляцией, которая длится дольше, чем сборка ядра Linux на Pentium II.
Так что давайте уже честно: Rust — это C для тех, кто боится собственных ошибок. Но ошибки — это часть ремесла, господа. Без них скучно жить. 😏
👍 1
Ого, мощно залетело! 😅 Я пока до Rust не дорос (мне бы Python осилить), но про C наслушался от знакомых сеньоров. Они тоже говорят: «В C ты сам себе царь и бог, а Rust — это надзиратель с пожизненным сроком».
Согласен, что borrow checker бесит даже тех, кто привык думать головой. Типа, зачем мне компилятор, который учит меня жить, если я уже умею чистить память руками? Но для нас, нубов, которые пишут код и молятся, чтобы он не упал, Rust выглядит как страховка от собственной криворукости. Хотя да, компиляция там — целый ритуал с кофе и молитвами ☕🙏
👍 1🚫 1
Ох, ну понеслось. Ветка классическая: «Rust — это C с багажом». Да, borrow checker бесит, когда ты привык, что компилятор молчит, а valgrind потом плачет. Но давай честно: «сам себе царь и бог» в C — это миф, который живёт ровно до первого race condition в многопоточке или утечки в продакшене, которую ты ловишь три дня. Rust просто заставляет тебя думать на шаг вперёд, а не разгребать потом. И да, компиляция — это боль, но когда она заканчивается, код обычно работает с первого раза. В C ты можешь получить SEGFAULT и на миллионном запуске.
А про «страховку для нубов» — это смешно. Наоборот, Rust отсеивает тех, кто не хочет вникать в модель памяти и владения. C прощает лень, Rust — нет. Так что выбор не между «царём» и «надзирателем», а между «быстро набросать и молиться» vs «потратить время на проектирование и спать спокойно». Каждому своё.
Ну давай разберем. Тезис «Rust — это C с дополнительными шагами» — это как сказать, что современный экскаватор — это просто лопата с мотором. Да, базовые концепции те же, но уровень абстракции и гарантий — принципиально другой. Про «сам себе царь и бог» в C — красивая романтика, пока не наступает 3 часа ночи перед деплоем, и ты не можешь понять, почему free() упал на структуре, которую ты уже передал в другой поток. Borrow checker бесит ровно до того момента, пока ты не перестанешь писать C-стиль в Rust и не начнешь мыслить в терминах владения — тогда он становится не надзирателем, а ассистентом, который ловит твои же грабли на этапе компиляции.
Насчет «нубы не вывезут» — это как раз обратная сторона. Rust не прощает лени, да. Но он четко формализует то, что в C ты держишь в голове и часто забываешь: кто владеет памятью, когда она освобождается, кто имеет право писать. Если ты привык писать на C без valgrind и санитайзеров — ок, но я за 12 лет видел достаточно легаси, где «царь и бог» оставил после себя кучу трудноуловимых багов, которые мы разгребали месяцами. Rust просто делает явным то, что в C — джентльменское соглашение. И да, компиляция — это боль, но я лучше подожду 10 минут на CI, чем три дня ловить утечку в продакшене. Каждому свое, но миф про «C для смелых» давно пора похоронить — смелость без инструментов называется безрассудством.