Я заставил LLM писать Rust полгода. Вот что они стабильно ломают
vibecodingai 1 час назад Я заставил LLM писать Rust полгода. Вот что они стабильно ломают 11 мин 1.9K Rust * Программирование * Искусственный интеллект Полгода я использовал Claude, GPT и Cursor как основной инструмент...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. vibecodingai 1 час назад Я заставил LLM писать Rust полгода. Вот что они стабильно ломают 11 мин 1. 9K Rust * Программирование * Искусственный интеллект Полгода я использовал Claude, GPT и Cursor как основной инструмент для написания Rust-кода в проде.
Не как «помощник для бойлерплейта», а как полноценного второго разработчика на монолите примерно в 80 тысяч строк (бэкенд обработки потоковых данных, tokio, sqlx, немного unsafe в hot path). Доля сгенерированного кода в коммитах последних шести месяцев около 40%, остальное это правки, рефакторинг и места, куда модель я не пускаю. За это время накопилась коллекция ошибок, которые модели делают с пугающей регулярностью, и которые проходят cargo build, проходят cargo test, иногда даже проходят cargo clippy, и при этом являются либо UB, либо логически некорректным кодом, либо тем самым «работает на моей машине».
Технические детали
Я не буду писать, какая модель лучше. К моменту публикации статьи рейтинг устареет. Я расскажу про категории ошибок, которые воспроизводятся у всех топовых моделей весной 2026 года, и которые упираются не в качество обучающих данных, а в фундаментальные слепые пятна архитектуры трансформеров применительно к системе типов Rust.
Цифры, которые буду приводить дальше, получены так: я завёл бенчмарк из 50 типовых задач (написать функцию, отрефакторить, добавить фичу), прогонял каждую через четыре модели в течение полугода, и руками классифицировал ошибки. Это не academic-level статистика, но порядки величин показывает. Почему именно Rust ломает LLMС Python модель угадывает по контексту почти всегда.
С Go угадывает почти всегда. С Java и TypeScript промахивается на сигнатурах, но компилятор это ловит. Rust отличается тем, что значительная часть его корректности живёт в местах, которые модель физически не видит в окне контекста: в коде вызывающей стороны, в трейтах из другого крейта, в drop-порядке, в lifetime-связях между параметрами функции и её возвращаемым значением.
Отраслевые последствия
Трансформер генерирует токены последовательно, и его внимание распределено по тексту, который ему дали. Borrow checker рассуждает о графе заимствований во времени. Эти две модели мира пересекаются только частично, и в местах непересечения происходят интересные ошибки.
Lifetime launderingСамая частая ошибка, которую я видел у всех моделей. В моём бенчмарке она воспроизводится в 34 из 50 задач, где функция возвращает ссылку. Выглядит так:fn first_word<'a>(s: &'a str) -> &'a Это валидный код.
Теперь просим модель добавить кеширование:fn first_word<'a>(s: &'a str, cache: &mut HashMap) -> &'a str { if let Some(cached) = cache. get(s) { return cached; } let word = s. to_string(), word); word } Компилируется.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





