Rust идеально подходит для агентной разработки — и вот почему
What agents mean for Rust (and vice versa)

Автор, дизайнер языков программирования, размышляет о влиянии LLM на разработку. Он утверждает, что Rust особенно хорош для агентного кодинга благодаря производительности по умолчанию, системе типов, которая удерживает агентов от ошибок, и возможностям доказательства корректности. Статья призывает развивать эти сильные стороны, делая Rust ещё более приспособленным для агентов.
Type systems can show the absence of bugs, but not the presence of correctness.
- gregwebs
У Rust есть один вопиющий недостаток: время компиляции. Подозреваю, что в эпоху LLM мы увидим расцвет языка или, возможно, некоего переосмысления Rust, которое достигнет того же, что и Rust — высокой производительности и отличной типобезопасности, — но при этом будет лучше поддерживать быструю компиляцию.
Я обнаружил, что агенты хорошо пишут доказательства на Verus в кодовой базе на Rust, и эти доказательства оказывают лишь минимальное негативное влияние на обычный процесс компиляции. У меня есть навык использования Verus: https://github.com/gregwebs/skills-sdlc/blob/main/skills/rus...
- kubb
Интересно, вернутся ли «сложные» языки вроде Haskell с приходом LLM, ведь краткосрочные затраты на изучение языка теперь не так значительны по сравнению с долгосрочными преимуществами системы типов и лучшей структуры.
- xscott
Думаю, можно отступить на шаг назад и составить список особенностей языков программирования, которые помогают или мешают LLM писать код. У меня нет полного списка, но вот о чём я думал:
Полезные сообщения об ошибках во время компиляции
Быстрая компиляция для итераций и исправления этих ошибок
Эффективное использование памяти, CPU и, возможно, GPU во время выполнения
Знакомство по обучающим данным [0]
Один очевидный/предпочтительный способ делать вещи
Явные типы
Rust соответствует некоторым из них, но не всем. Не могу вспомнить язык, который соответствовал бы всем, но многие люди обожают рационализировать, почему их любимый язык — лучший выбор. LLM не нужен синтаксический сахар и прочие приятные мелочи, а любые ошибки, отложенные до времени выполнения, — это бремя для вас, а не для модели.
Можно добавить ещё несколько редко встречающихся возможностей, чтобы повысить уверенность в результатах и улучшить будущие модификации или смену моделей:
Обязательные предусловия и постусловия
Принудительные ограничения на длину функций или методов
Обязательные тестовые случаи
Принудительные соглашения об именовании
Доказательства корректности в стиле Lean? (вероятно, нет)
Я колеблюсь насчёт таких вещей, как линейные/аффинные типы для управления памятью против сборки мусора. Очевидно, вы хотите безопасности памяти, но есть более одного способа её добиться, и я не знаю, хотите ли вы принудительно идти на ухищрения, чтобы построить простые структуры данных.
[0] LLM вполне способны программировать на языках, которых никогда не видели. Я заставлял их писать программы, используя мои собственные игрушечные компиляторы […]
- Depurator
Я пишу на Rust уже лет шесть, и я очень рад, что начал до того, как на сцену вышли LLM, так что мне пришлось сражаться с borrow checker и всей этой штукой.
Сейчас скажу, что я чрезвычайно продуктивен с Rust и LLM, и также приятно сознавать, что мне не придётся ничего переписывать на новый язык — Rust уже лучший.
Один известный шведский комик говорит о героине как о «лучшем наркотике». Туда люди обычно и попадают и не хотят прекращать принимать.
- antoineMoPa
Я недавно «кодил» пару приложений с агентами + Rust и осознал, насколько чудовищно огромной может вырасти папка target/. Потом запускаешь cargo clean, получаешь чистый диск, но компиляция снова занимает вечность. Я регулярно сталкиваюсь с нехваткой места на диске.
В целом опыт нравится, кроме этой части.