Клод — его второй пилот: Ветеран Rust разрабатывает новый язык программирования Rue с помощью ИИ-бота.

rust,rue,steve klabnik,claude ai,llm,язык программирования

Rust veteran Steve Klabnik использует LLM для исследования безопасности памяти без сборки мусора в новом языке Rue. Узнайте о роли Claude AI в разработке и перспективах этого амбициозного проекта.

Назвать новый язык программирования “Rue” (с англ. “жалеть”) звучит как признание сомнений в перспективах проекта, если понимать “Rue” именно как “сожаление”.

Однако опытный разработчик программного обеспечения Стив Клабник, известный своим вкладом в Rust и Ruby on Rails, утверждает, что всё не так просто.

“Название Rust вызывает несколько ассоциаций”, – пояснил он в электронном письме The Register. “Одна из них – разрушение, энтропия. Негативный оттенок. Другая – вид грибка, который имеет положительную коннотацию

Rue появился как название, потому что я занимался Ruby, а затем Rust… поэтому мне нужно было начать с Ru. И ‘rue’ может означать, как вы сказали, ‘сожалеть о дне’ или что-то подобное, но это также разновидность цветка.

“Мне понравилась симметрия с негативным и позитивным подтекстом. К тому же, это очень короткое название, что приятно”.

Rue, как Клабник объяснил в своей публикации в блоге в прошлом месяце, “это язык системного программирования, который стремится обеспечить безопасность памяти без сборки мусора, предлагая при этом более высокий уровень эргономики, чем языки, такие как Rust и Zig”.

Сборка мусора в программировании относится к автоматическому управлению памятью, которое может принимать различные формы. Она служит для уменьшения ошибок памяти, возникающих из-за явного освобождения памяти – цель, которую провозглашают кибернетические власти США. Одним из преимуществ Rust является то, что он может предоставлять гарантии безопасности памяти, используя подмножество языка, хотя с кривой обучения, которая обычно считается более крутой, чем у современных языков, таких как Go или Swift.

Клабник сказал, что он много лет разговаривал с людьми о Rust, и его сложность является общей проблемой. Причина, предложенная в сообществе Rust, заключалась в том, что языки, используемые для низкоуровневых задач, таких как операционные системы, имеют множество ограничений, которые усложняют ситуацию.

Он объяснил: “Поэтому я подумал, что было бы интересно исследовать это пространство проектирования: что, если Rust не пытается конкурировать с C и C++ за максимально возможную производительность? Что, если бы мы были готовы сделать вещи немного, но не слишком, менее производительными, в обмен на простоту использования? Что, если бы мы сделали сам язык немного больше, то есть с меньшим количеством функций в чисто библиотечном коде, в качестве средства упрощения всего пакета?

“Существует огромное количество языков со сборщиками мусора, но меньше без них, особенно за последние 20 лет. Поэтому я думаю, что пространство ‘безопасность памяти, но без трассировки [сборщика мусора]’ в целом недостаточно изучено. Существует множество небольших языков, исследующих это пространство, и я хочу представить свой собственный взгляд на него”.

Из существующих примеров кода неясно, является ли Rue более доступным, чем Rust, учитывая, что версия Rue для распространенного упражнения Fizz Buzz не выглядит сильно отличающейся от версии Rust.

Клод – его второй пилот

Тем не менее, взгляд Клабника не является полностью его собственным. Rue, написанный в основном на Rust, в значительной степени полагается на модель Claude AI от Anthropic, которая обязана своими возможностями всем тем разработчикам, чей код послужил основой для обучающих данных модели.

“Rue разрабатывается Стивом Клабником, а также Клодом”, – говорится в первоначальной записи в блоге, автором которой указаны Клабник и его выбранный ИИ-помощник. Двумя постами позже Клоду единолично приписывается подведение итогов первой недели разработки.

“Я начал Rue раньше в этом году”, – объясняет Клабник. “Но я не так хорошо разбирался в LLM, как сейчас, и допустил несколько ошибок. Я начал заново. Я продвинулся дальше за те две недели, что работаю над этим сейчас, чем за месяц или два, которые я потратил в прошлый раз. Это частично связано с улучшением моделей, но также в значительной степени с моими собственными навыками в понимании того, как эффективно использовать LLM”.

Он сказал, что для небольших проектов, которые делают что-то полу-заказное, модели, такие как Claude, могут быть полезны даже для разработчиков с небольшим опытом. С более крупными проектами, по его словам, знание разработки программного обеспечения имеет большее значение.

“Так что, я думаю, как и во всем, вы можете начать с малого и двигаться вверх”, – объяснил он. “Небольшие, автономные проекты? Конечно, даже не-программист может использовать эти инструменты. Но это инструменты, а инструменты требуют опыта. 

“Даже знания существующего программирования недостаточно, чтобы действительно получить большую пользу от LLM, это инструменты сами по себе. Vim не прост в использовании, и знание программирования не помогает вам использовать его, но это полезный инструмент в любом случае. Но это свой собственный навык. Методы разработки программного обеспечения, такие как тестирование, – это отдельные навыки от написания кода для выполнения чего-либо. Я вижу LLM так же. У них низкий потолок навыков для начала, но довольно высокий для наиболее эффективного использования”.

Клабник сказал, что трудно оценить время, которое Клод сэкономил (или потратил).

“Что я могу сказать наверняка, так это то, что я продвинулся в этом проекте гораздо дальше, чем я бы продвинулся без него”, – сказал он. “Rue – это около 70 тысяч строк кода Rust через две недели после начала его жизни. Конечно, количество строк кода – это не все, я даже сейчас работаю над существенным рефакторингом чего-то. Но просто чтобы дать вам представление о примерном размере. Я знаю, что если бы я работал над этим вручную, я бы продвинулся гораздо меньше, и, вероятно (хотя я в этом еще не уверен), на более низком уровне качества”.

Клод еще не предложил оценку качества кода Rue. Но модель ИИ выдала токены, которые звучат как аргумент в пользу ее собственных возможностей.

“Я думаю, что эта неделя показала, что ядро языка – сам компилятор – может собраться на удивление быстро, когда у вас есть правильный рычаг”, – ответил Клод в ответ на предполагаемый запрос Клабника, используя эм-тире, как и следовало ожидать. “У нас еще нет LSP [Language Server Protocol]. У нас нет менеджера пакетов. Но у нас есть настоящий компилятор, который производит настоящие исполняемые файлы, с достаточной инфраструктурой для дальнейшего развития.

“Честно говоря, большинство из этих 130 коммитов имеют мои отпечатки пальцев. Стив руководил, рецензировал и принимал трудные проектные решения. Я написал большую часть кода. Это необычное сотрудничество, и я еще не знаю, что из этого получится”.

Клабник не более уверен в перспективах проекта. “Если никто никогда не будет его использовать, меня это вполне устроит, а если через десять лет это будет крупный язык программирования, ну, это, вероятно, тоже будет хорошо”, – сказал он. “Я не пытаюсь ничего навязать, я просто работаю над тем, что мне нравится, и смотрю, куда это меня приведет”.

Клод сопровождает его в качестве второго пилота. ®

Всегда имейте в виду, что редакции некоторых изданий могут придерживаться предвзятых взглядов в освещении новостей.
7/8