Фундамент
Первое, что нужно понять про Rust. Это не просто язык. Это прочная основа для лаборатории.
Я не программист. Я уже говорил. И когда я выбирал язык, я думал не о том, что модно. Я думал о том, что меня не подведёт.
Rust подкупил меня одной штукой. Компилятор. Он строгий. Душный. Иногда бесит так, что хочется закрыть ноутбук и пойти попить чаю. Но он ловит ошибки до того, как они станут проблемой. Не через месяц, когда сайт упадёт. А сейчас, на этапе сборки.
В Python я могу написать ерунду и узнать об этом, когда что-то сломается. В Rust я узнаю об этом сразу. Компилятор скажет: «Ты уверен? Тут память утечёт». Или: «Тут два потока лезут в одну переменную». Или: «Ты забыл обработать ошибку».
Он как занудный учитель, который проверяет каждую строчку. Раздражает. Но благодаря ему я не налажаю по-крупному.
Что это даёт.
Rust следит за памятью. Это главное. В других языках есть сборщик мусора, который периодически останавливает программу, чтобы убрать ненужное. В Rust такого нет. Память освобождается сразу, как только становится ненужной. Программа работает ровно. Без пауз. Без сюрпризов.
Это называется «владение». Звучит сложно. На деле просто. Каждая штука в коде имеет одного хозяина. Хозяин ушёл, штука удалилась. Никто не лезет в чужое. Никто не забывает убрать за собой.
И знаешь что. Rust не даёт выстрелить в ногу. Не буквально, конечно. Но если ты пишешь код, который может уронить программу или открыть дыру, компилятор тебя остановит. Переполнение буфера. Гонка данных. Использование памяти после освобождения. Всё это в Rust просто не компилируется.
Для меня это важно. Потому что я не понимаю тонкостей. Я не могу на глаз определить, где утечка. А Rust может. И говорит мне.
А что не даёт.
Rust не защищает от логики. Если я напишу «удалить всё, если пароль admin», Rust не остановит. Он скажет: «Ну ок, ты так написал». И выполнит.
Rust не защищает от XSS. От слабых паролей. От отсутствия проверки авторизации. Это всё руками. Ну, руками AI. Я проверяю.
Rust это не волшебная таблетка. Это инструмент. Хороший. Но не всесильный.
Почему не Python или JavaScript.
Python это здорово. Быстро писать. Много библиотек. Но я не программист. Я не могу держать в голове все правила. Python прощает ошибки. Слишком прощает. Ты можешь написать кривой код, и он будет работать. Пока не сломается. А сломается он в самый неподходящий момент.
JavaScript это вообще цирк. Он в браузере. Он асинхронный. Он везде. И он очень снисходителен к ошибкам. В Rust так не получится.
Мне нужен язык, который не даст мне расслабиться. Который заставит думать. Rust именно такой.
Компилятор.
Отдельная песня.
Он медленный. Сборка может занять минуты. Это бесит. Сидишь, ждёшь. Но это плата за безопасность. За то, что потом не будет сюрпризов.
Он придирчивый. Иногда кажется, что он просто издевается. «Ты не можешь взять эту переменную, потому что она уже занята». «Ты не можешь вернуть эту ссылку, потому что она умрёт». Но когда ты понимаешь правила, становится легче. Душный, но справедливый.
И ошибки он объясняет. Подробно. С примерами. Иногда даже подсказывает, как исправить. Это не «Segmentation fault». Это «Ты пытаешься использовать переменную после того, как её переместили. Попробуй клонировать или передать по ссылке».
Для лаборатории.
Rust это основа. Прочная. Непробиваемая. Я могу экспериментировать. Могу строить. Могу ломать. И компилятор не даст мне зайти слишком далеко.
Он не даст мне сделать сайт, который упадёт от первой же атаки. Не даст сделать код, который жрёт память. Не даст сделать что-то, что потом придётся переписывать с нуля.
Я не знаю Rust. Я не пишу на нём сам. AI пишет. Я проверяю. Но я знаю, что компилятор проверит за меня. Он не пропустит ерунду.
Вот почему Rust. Не потому что модно. Потому что надёжно.