Переписывание Bun на Rust — впечатляющее достижение

MMaximilian Schwarzmüller
컴퓨터/소프트웨어창업/스타트업AI/미래기술

스크립트

00:00:00BUN был перенесен с SIG на Rust.
00:00:02Вы, вероятно, уже слышали об этом,
00:00:04но здесь есть о чем рассказать.
00:00:06На прошлой неделе было много шума,
00:00:08но происходит и много интересного.
00:00:10И независимо от того, интересуетесь ли вы BUN, SIG или Rust,
00:00:14это действительно интересно.
00:00:15Также в том, как использовался ИИ
00:00:18и что это может означать для подобных проектов
00:00:20в нашей индустрии в целом.
00:00:22Теперь, в качестве небольшого отступления,
00:00:24лично мне BUN довольно сильно нравится.
00:00:26Это среда выполнения JavaScript по умолчанию, которую я использую
00:00:29в большинстве моих проектов.
00:00:30И действительно, по приятному совпадению,
00:00:32на прошлой неделе я выпустил совершенно новый курс по BUN.
00:00:35И он, конечно, подходит как для версии на Rust,
00:00:37так и для версии на SIG.
00:00:39Так что, если вы хотите углубиться в BUN
00:00:41и узнать обо всех основных API, которые он предлагает,
00:00:44потому что это одно из главных преимуществ BUN,
00:00:46что у него так много всего встроено.
00:00:48Некоторым это не нравится, я же в восторге.
00:00:50Если вы хотите узнать об этом больше,
00:00:51тот курс может быть вам интересен.
00:00:53Но давайте теперь поближе взглянем
00:00:54на общую хронологию переноса, хорошо?
00:00:58На самом деле это произошло два месяца назад.
00:01:01Так что пост в блоге был опубликован на прошлой неделе в июле,
00:01:04но сам перенос произошел в мае.
00:01:08И началось все в начале мая,
00:01:10когда ветка CloudFaserPort была обнаружена
00:01:13в официальном репозитории BUN на GitHub.
00:01:15Эта ветка содержала файл porting.md,
00:01:18markdown-файл с инструкциями
00:01:21о том, как преобразовать код SIG в код Rust,
00:01:23как перенести этот код, таблицы трансляции
00:01:27и общие инструкции.
00:01:28И мы еще вернемся к тому, как этот файл был создан,
00:01:30потому что, конечно, здесь был замешан ИИ,
00:01:32как вы могли догадаться, чуть позже.
00:01:34Это было обнаружено.
00:01:36Поэтому, естественно, начались дискуссии на Hacker News и X.
00:01:40Были люди, которые были от этого в восторге.
00:01:43Были люди, которые относились к этому очень критично.
00:01:46Но в тот момент мы знали немногое.
00:01:47Очевидно, что вокруг Rust много поляризации.
00:01:52Есть люди, которые любят Rust, как я.
00:01:55Есть люди, которые ненавидят Rust.
00:01:57Есть люди, которые ненавидят
00:01:58то, что все должно быть переписано на Rust,
00:02:00потому что очень часто можно прочитать,
00:02:03что люди хотят, чтобы программа XYZ была переписана на Rust.
00:02:06И я понимаю, что это раздражает.
00:02:08Но, естественно, поэтому
00:02:09там происходила большая поляризация.
00:02:11Но перенос еще не состоялся.
00:02:15Это изменилось позже в мае.
00:02:16И 14 мая был открыт официальный pull request,
00:02:22а затем и объединен,
00:02:24который фактически мигрировал кодовую базу BUN,
00:02:28всю целиком, с SIG на Rust.
00:02:30Как видите, это огромный pull request.
00:02:32Было добавлено более миллиона строк кода.
00:02:35А удаление кода SIG произошло
00:02:39на другом этапе.
00:02:40Так что да, поэтому это не просто замена.
00:02:42Но это огромные изменения, как видите,
00:02:44почти 7 000 коммитов.
00:02:46Естественно, этот код не прошел проверку человеком,
00:02:51по крайней мере, не полностью.
00:02:52Он был проверен ИИ.
00:02:54Тесты проходили, но он не был проверен человеком.
00:02:59И мы вернемся к тому, как использовался ИИ, через секунду.
00:03:02Но это было опубликовано или объединено.
00:03:06И, конечно, последовало еще больше дискуссий.
00:03:08Как я уже сказал, он не был проверен людьми.
00:03:10Конечно, это невозможно сделать за такие сроки.
00:03:14Но сообщество включилось в работу, изучило
00:03:17и проанализировало некоторые части.
00:03:19А потом появился другой, или первый пост в блоге,
00:03:23не официальный со всеми деталями,
00:03:25а первый пост в блоге или заявление команды BUN
00:03:29об использовании unsafe.
00:03:32Потому что одна из больших критических замечаний, прозвучавших после этого pull request,
00:03:37заключалась в том, что код на Rust был не идиоматическим.
00:03:41Это был не тот код на Rust, который вы бы написали
00:03:44или должны были бы написать, если бы создавали его с нуля.
00:03:46Вместо этого он действительно был похож на перевод с SIG на Rust.
00:03:50А это означало, что использовались не все лучшие практики
00:03:54и паттерны Rust.
00:03:55И особенно, там было значительное количество
00:03:58использования unsafe.
00:04:00Теперь, чтобы понять unsafe, нужно понять,
00:04:03как Rust управляет памятью,
00:04:05потому что это одно из его главных преимуществ,
00:04:08и оно сильно отличается от других языков.
00:04:10Потому что в большинстве языков есть либо сборщик мусора,
00:04:14который представляет собой процесс, по сути определяющий,
00:04:16когда значение больше нигде не используется в программе,
00:04:19а затем освобождает память, что удобно,
00:04:21но потребляет дополнительные ресурсы.
00:04:24Или вы должны делать это сами.
00:04:26В таких языках, как C, например,
00:04:28вы должны вручную выделять и освобождать память.
00:04:31И то же самое в SIG.
00:04:33Там можно выделить память, но нужно также вызвать free,
00:04:37или же освободить ее, когда она больше не нужна.
00:04:40Можно использовать defer, что приятно.
00:04:43Это, по сути, означает, что вы можете вызвать это
00:04:47до того, как это будет фактически выполнено.
00:04:49Это откладывается и будет вызвано автоматически,
00:04:52когда эта область видимости закончится, по сути.
00:04:55И это хорошо, потому что есть разные ситуации,
00:04:58когда значение может больше не понадобиться.
00:05:00Но все же, когда приходится очищать память вручную,
00:05:04есть много ситуаций,
00:05:05когда можно выстрелить себе в ногу.
00:05:07У вас есть более детальный контроль,
00:05:09и это может быть очень полезно, очень эффективно,
00:05:11но также легко забыть ситуации
00:05:15в более сложных программах,
00:05:16где вы, возможно, не очищаете память,
00:05:19в результате чего появляется утечка памяти,
00:05:20или вы можете очистить ее дважды,
00:05:23что также вызовет ошибку.
00:05:25Поэтому здесь есть компромисс.
00:05:27А у Rust другой подход.
00:05:30В Rust есть концепция владения (ownership),
00:05:32которая означает, что у каждого значения есть только один владелец,
00:05:36и оно привязано к области видимости.
00:05:38Так что, если у вас есть область видимости,
00:05:39а вы можете создать ее с помощью фигурных скобок,
00:05:41или функция также имеет свою область видимости.
00:05:43Возможно, вы знаете эту концепцию из JavaScript.
00:05:46Если у вас есть область видимости,
00:05:47тогда, когда в ней создается значение,
00:05:49оно принадлежит этой области видимости.
00:05:51И если область видимости заканчивается, оно освобождается.
00:05:53И это, конечно, очень удобно,
00:05:55потому что вам не нужно заботиться об освобождении.
00:05:58У вас также нет сборщика мусора.
00:06:00Вместо этого у вас есть это четкое правило.
00:06:02Это может привести к сложности в более комплексных программах,
00:06:05где нужно передавать значения вокруг.
00:06:07В Rust это можно сделать,
00:06:08но это требует иного образа мышления.
00:06:11Но, конечно, это дает вам безопасность памяти,
00:06:14если только вы не используете ключевое слово unsafe.
00:06:19Если вы его используете, вы можете создать область видимости unsafe.
00:06:22И в ней эти правила больше не действуют.
00:06:24И тогда ваша задача — убедиться,
00:06:26что память управляется надлежащим образом.
00:06:28Почему бы вам это делать?
00:06:29Ну, например,
00:06:31если вы подключаете какую-то библиотеку на C,
00:06:33что можно сделать в Rust,
00:06:34можно смешать немного кода C, так сказать,
00:06:37или вызвать некоторые методы и функции библиотеки C,
00:06:40тогда, поскольку C по своей природе небезопасен,
00:06:44код, в котором вы обращаетесь к этому коду на C, тоже небезопасен.
00:06:48Поэтому вам нужна эта функция для взаимодействия с нашим небезопасным кодом.
00:06:52И это также одна вещь, которую они отметили
00:06:54в том официальном заявлении,
00:06:56что все эти случаи использования unsafe в кодовой базе
00:07:00в значительной части были на самом деле связаны с вызовами
00:07:04других библиотек, библиотек на C и так далее,
00:07:07что не изменится.
00:07:08Но они также определили области,
00:07:10в которых они действительно могли улучшить код
00:07:13и избавиться от unsafe.
00:07:14И они упомянули, что будут делать это
00:07:15в последующих pull requests.
00:07:18И они делали и продолжают делать это.
00:07:20Так что вы можете рассматривать этот начальный перенос
00:07:22как отправную точку,
00:07:24которая затем уточнялась со временем.
00:07:26Стоит также упомянуть, что этот первоначальный pull request,
00:07:28или тот огромный pull request,
00:07:30уже имел пройденные тесты.
00:07:32Так что он был стабильным, тесты проходили,
00:07:35но код был не того качества,
00:07:37которого вы, возможно, ожидали бы, если бы он был написан на Rust
00:07:40с нуля, потому что это не было целью.
00:07:43Так что это было 21 мая.
00:07:45Затем наступила тишина.
00:07:46Также стоит отметить, что эта версия BUN
00:07:49еще не была выпущена.
00:07:50И когда я записываю это, она все еще не работает.
00:07:52Когда вы сейчас устанавливаете BUN,
00:07:54вы все еще получаете версию SIG,
00:07:56но это должно измениться со дня на день.
00:07:58Но затем, 8 июля,
00:07:59был опубликован официальный пост в блоге,
00:08:02где мы находим много интересных подробностей
00:08:04об этом переносе.
00:08:06И его действительно стоит прочитать.
00:08:07Я дам ссылку ниже,
00:08:08потому что здесь есть чему поучиться.
00:08:11Весь этот перенос, и это не секрет,
00:08:13была выполнена с помощью ИИ.
00:08:15Стоит помнить, что BUN принадлежит Anthropic.
00:08:18Так что у них был бесплатный доступ ко всем этим токенам
00:08:22и, в частности, к Fable 5
00:08:24еще до того, как она стала доступна публике.
00:08:26Этот порт был сделан с помощью Fable 5.
00:08:29И кстати, если вы устанавливаете Cloud Code сейчас,
00:08:32то, несмотря на то, что BUN 1.4, версия на Rust, еще не вышла,
00:08:36Cloud Code уже работает поверх
00:08:39невыпущенной версии BUN, так сказать,
00:08:42а именно версии на Rust.
00:08:44Так что это есть.
00:08:45Но да, этот порт был сделан с помощью Cloud Code
00:08:48на базе Fable 5 с бесплатными токенами, конечно,
00:08:52по сути, так как BUN является частью Anthropic.
00:08:54И это важно помнить,
00:08:56потому что в этом блоге
00:08:58мы узнаем, что если бы вы сложили все токены,
00:09:03или если бы вы суммировали все токены,
00:09:04которые были потрачены, по ценам API,
00:09:08весь этот порт стоил бы около 160 000 долларов.
00:09:13Это поразительная цифра, но на самом деле,
00:09:18если подумать о масштабах этого проекта,
00:09:20а масштаб таков, что BUN состоял из 535 000 строк кода на SIG,
00:09:26если подумать об этом масштабе
00:09:28и о том, сколько времени потребовалось бы людям, чтобы портировать это на Rust,
00:09:32то 160 000 долларов могут звучать не так уж и плохо,
00:09:36в зависимости от того, где вы находитесь.
00:09:38Тем не менее, ясно, что ни один open source проект
00:09:43не смог бы это сделать.
00:09:44И большинство компаний, вероятно, не смогли бы
00:09:47или не захотели бы тратить такую сумму денег на портирование.
00:09:50Это стало возможным, потому что BUN — часть Anthropic.
00:09:54И, конечно, это еще и отличный маркетинговый ход
00:09:58для Anthropic.
00:09:59Возможно, это не было главной целью.
00:10:03Я этого не знаю.
00:10:04Но, конечно, это хороший маркетинг.
00:10:06Все это важно помнить.
00:10:08Тем не менее, в этом блоге
00:10:10мы можем узнать, как Джаред выполнил этот порт
00:10:14или как он заставил этот порт работать.
00:10:18И все началось с файла porting.md,
00:10:21который он создал в ходе дискуссии с Claude,
00:10:25в трехчасовой дискуссии,
00:10:26как он упомянул в блоге,
00:10:28где он, по сути, вместе с Claude Code
00:10:32и моделями Anthropic решил,
00:10:35как должен выглядеть такой файл porting.md,
00:10:37чтобы иметь возможность перевести код с SIG на Rust.
00:10:40Затем, после того как он проработал его и остался доволен результатом,
00:10:44он сначала протестировал его на трех файлах.
00:10:46И как только он остался доволен этим,
00:10:48он «натравил» Claude на всю кодовую базу BUN.
00:10:53В этом блоге
00:10:54он ясно дает понять, что не просто давал промпты Claude,
00:10:57чтобы переписать BUN на Rust, не ошибитесь,
00:11:00а вместо этого создал сложную систему,
00:11:03в которой у него был один главный агент,
00:11:07который, конечно, запускал и под-агентов,
00:11:09выполняющих портирование в соответствии с файлом porting.md.
00:11:13А еще у него были два состязательных агента-рецензента,
00:11:16которые проверяли работу главного агента после ее завершения
00:11:19и предоставляли обратную связь,
00:11:21а также агент-исправитель для применения этой обратной связи.
00:11:24И все это работало в цикле,
00:11:25и, конечно, было распределено по нескольким рабочим деревьям,
00:11:30чтобы обрабатывать всю кодовую базу
00:11:33и постепенно продвигаться по ней.
00:11:35В блоге
00:11:35он упомянул, что переписал BUN на Rust,
00:11:38используя 50 динамических рабочих процессов в Claude Code,
00:11:40которые представляют собой рабочие процессы, запускающие множество под-агентов,
00:11:43в течение 11 дней.
00:11:46И там еще есть отличная диаграмма.
00:11:48В целом, в блоге
00:11:49есть неплохая графика,
00:11:51которая немного облегчает восприятие,
00:11:53показывающая количество коммитов, которые были созданы,
00:11:56а затем отправлены в разные дни
00:11:58и в разное время дня.
00:12:00Так что все это происходило с помощью циклов в Claude Code,
00:12:04с помощью множества под-агентов
00:12:05и четкого процесса с одним главным агентом,
00:12:08агентами-рецензентами и агентом-исправителем.
00:12:10А еще он проделал отдельную работу,
00:12:15так сказать, чтобы заставить работать все эти тесты.
00:12:20И это принесло свои проблемы,
00:12:22потому что набор тестов такой большой и сложный,
00:12:25что он столкнулся с различными инфраструктурными ограничениями,
00:12:29потому что некоторые тесты потребляют много памяти,
00:12:31и выполнение многих тестов параллельно
00:12:33поэтому не работает.
00:12:34Но в конечном итоге он заставил это работать, также с помощью ИИ,
00:12:39запуская тесты, исправляя код,
00:12:42перезапуская тесты и так далее.
00:12:43Так что много циклов, много вовлеченных агентов и под-агентов,
00:12:47естественно, и много сожженных токенов.
00:12:49165 000 долларов в сожженных токенах.
00:12:53И опять же, вы можете погрузиться глубже,
00:12:55и именно это я бы порекомендовал сделать,
00:12:57если вас интересуют все тонкие детали.
00:12:59Это отличный пост в блоге, документирующий путь к результату.
00:13:03Но в двух словах это то, как портирование происходило в течение 11 дней
00:13:08со всеми этими агентами и под-агентами, распределенными по нескольким рабочим процессам,
00:13:1250 таких рабочих процессов, как мы узнали, за 11 дней,
00:13:17165 000 долларов потрачено на токены по ценам API.
00:13:24Теперь, наконец, когда он закончил, в блоге
00:13:29он упомянул, что Bun 1.4 исправляет различные ошибки, которые есть в последней версии SICK,
00:13:35что он более эффективен по памяти, что он меньше.
00:13:38И, как мы узнаем из ответа Эндрю Келли, создателя SICK,
00:13:43некоторых из этих улучшений, вероятно, можно было достичь и с помощью SICK.
00:13:47Но этот пост в блоге довольно интересен, потому что его отредактировали.
00:13:53Теперь в нем меньше гнева, чем было изначально.
00:13:57Первая версия была полна личных нападок,
00:14:00и это при том, что потом он сказал, что это не задумывалось как личная нападка,
00:14:03но она была полна личных нападок.
00:14:05Последняя версия, на которую я также дам ссылку ниже, все еще довольно острая.
00:14:11В конце концов, вы можете ясно понять из прочтения первой версии,
00:14:14а также этой версии,
00:14:16что Эндрю, создатель SICK, и Джаред, создатель Bun,
00:14:21уже не станут лучшими друзьями, больше никогда.
00:14:26Теперь он благодарит Bun за поддержку SICK, в том числе финансовую,
00:14:31просто чтобы, по сути, беситься по поводу всего этого порта и того, что он не был бы нужен,
00:14:41если бы код Bun был написан на нормальном SICK.
00:14:44Он очень ясно дает понять, что не считает, что репозиторий Bun,
00:14:48версия SICK, имела высокое качество кода, и это привело ко многим проблемам.
00:14:53И это может быть правдой, а может и нет.
00:14:56Я думаю, вполне возможно, что в проекте масштаба Bun,
00:15:01движущемся с такой скоростью, с какой движется Bun,
00:15:06качество кода могло не соответствовать стандартам создателя SICK.
00:15:12Вы определенно могли бы поспорить, что большинство кодовых проектов
00:15:15не обязательно имеют высочайшее качество кода.
00:15:18Так что вы можете придумывать все, что хотите.
00:15:21На этом я остановлюсь.
00:15:24Мне кажется, что ответный пост в блоге довольно слабый,
00:15:29потому что он буквально дышит гневом.
00:15:33В нем есть некоторые обоснованные моменты.
00:15:35Например, в блоге, который делает Джаред,
00:15:40он упоминает, что порт с SICK на Rust был проверен,
00:15:46конечно, всеми этими агентами-рецензентами,
00:15:48но также запуском набора тестов и обеспечением его работы.
00:15:51И Эндрю правильно заявляет, что, конечно, тот же набор тестов
00:15:56должен был или не должен был быть достаточным, чтобы доказать, что версия SICK отличная.
00:16:00Так что, возможно, набор тестов тоже следовало улучшить.
00:16:04В любом случае, эти двое точно не станут лучшими друзьями.
00:16:09И у меня нет мнения, является ли SICK или Rust лучшим языком в целом или для Bun.
00:16:17Я верю, однако, что с ИИ, Rust, его моделью памяти и тем фактом,
00:16:23что вы получаете ошибки компиляции для многих проблем, связанных с памятью, это огромное преимущество,
00:16:30особенно в эпоху ИИ, потому что, конечно, весь этот порт действительно впечатляет
00:16:38когда речь заходит об использовании ИИ.
00:16:41И конечно, это способ использования ИИ, который большинство из нас не сможет позволить себе
00:16:45или не захочет позволить себе в компаниях.
00:16:48Но впечатляет, что ИИ смог это сделать.
00:16:52И это не «вайб-кодинг» и не просто «YOLO-промптинг».
00:16:56За всем этим стоит четкий процесс.
00:16:59В это было вложено много мыслей, что я, надеюсь, сделал понятным, и что определенно становится ясно,
00:17:05если вы погрузитесь в технические детали.
00:17:08Но со всем планированием, всей итерацией с настройкой, с тем, как к этому подходили,
00:17:13ясно, что это был не просто один промпт.
00:17:17И посмотрим, к чему мы придем, это показывает, что можно сделать с помощью ИИ.
00:17:21И, конечно, перенос кодовой базы с одного языка на другой — довольно хороший вариант использования ИИ.
00:17:27Если подумать, ИИ, конечно, может испытывать трудности с написанием нового кода.
00:17:32Он может не написать код, который вы хотели, не следовать соглашениям по написанию кода
00:17:36или стилям, которым вы хотели следовать, и он может все испортить.
00:17:40Ну, ИИ определенно удивителен и для создания нового программного обеспечения.
00:17:43Но там вы сталкиваетесь с другим набором проблем при портировании.
00:17:47Огромное преимущество заключается в том, что у вас есть кодовая база, на которую ИИ может просто посмотреть и перевести ее,
00:17:53что ИИ может делать, и у вас есть набор тестов.
00:17:57Так что есть на что опираться.
00:17:59Это хороший вариант использования ИИ, как кажется, и как этот порт ясно доказывает.
00:18:04И я думаю, что это самый интересный вывод здесь.
00:18:08Также то, что вы можете браться за проекты, которые были бы просто невозможны
00:18:12ранее.
00:18:13Опять же, не для всех, но для определенных компаний определенных размеров.
00:18:18Это может быть интересно.
00:18:19Модернизация устаревшего программного обеспечения с помощью ИИ может быть отличным вариантом использования.
00:18:26И это показывает и доказывает, что это можно сделать.
00:18:30Теперь, конечно, BUN 1.4 еще не вышел.
00:18:32Посмотрим, все ли рухнет и придется ли им делать откат через месяц.
00:18:36Вы не можете полностью исключить это, но я лично не думаю, что это произойдет.
00:18:40Он уже используется в продакшене некоторыми ранними последователями, такими как Cloud Code CLI.
00:18:47Он был протестирован и тщательно проверен, даже если, конечно, ИИ, а не людьми-рецензентами.
00:18:54Но я довольно уверен, что это сработает, и я нахожу это довольно впечатляющим достижением, а также довольно впечатляющим использованием ИИ.
00:19:03Но, как всегда, мне также интересно услышать, что вы думаете обо всем этом.

핵심 요약

Масштабный перенос Bun с Zig на Rust с бюджетом 165 000 долларов демонстрирует возможность модернизации сложных систем с помощью многоагентных ИИ-архитектур, а не простого написания отдельных промптов.

하이라이트

  • Кодовая база Bun объемом 535 000 строк была перенесена с Zig на Rust.

  • Процесс портирования занял 11 дней и потребовал использования 50 параллельных рабочих процессов.

  • Стоимость использования API-токенов модели Claude 3.5 Sonnet для автоматизированного перевода составила 165 000 долларов.

  • Система портирования включала главного агента, под-агентов, двух состязательных рецензентов и агента-исправителя.

  • В кодовой базе Rust было обнаружено значительное количество использования unsafe-блоков, связанных преимущественно с вызовами библиотек на C.

타임라인

Хронология и масштаб миграции

  • Миграция Bun с Zig на Rust официально стартовала в мае 2026 года.
  • Pull-request на перенос кодовой базы добавил более одного миллиона строк кода.
  • Процесс миграции включал около 7000 коммитов без полноценной ручной проверки.

Ветку с инструкциями по портированию porting.md обнаружили в репозитории проекта в начале мая. Официальное объединение изменений произошло 14 мая. Процесс вызвал бурную дискуссию в сообществе из-за поляризации мнений относительно использования языка Rust в существующих проектах.

Управление памятью и использование unsafe

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

В отличие от Zig, где память очищается вручную или через defer, Rust опирается на модель владения. Использование unsafe в Bun было необходимо для сохранения функциональности при вызове старого кода на C, который остался в основе архитектуры. Начальный этап миграции рассматривался разработчиками как стабильная отправная точка для дальнейшего рефакторинга.

Роль ИИ и архитектура агентов

  • Портирование было полностью выполнено с использованием модели Claude 3.5 Sonnet.
  • Сложная система агентов обеспечивала итеративное написание, рецензирование и исправление кода.
  • Автоматизация тестов позволила преодолеть инфраструктурные ограничения при проверке стабильности системы.

Для выполнения задачи была создана комплексная система из 50 рабочих процессов. Главный агент координировал работу под-агентов, а состязательные рецензенты проверяли каждый фрагмент кода на ошибки. Такая архитектура позволила обработать более полумиллиона строк кода за 11 дней, что было бы недостижимо для ручного труда.

Последствия и выводы для индустрии

  • Использование ИИ для модернизации устаревшего программного обеспечения доказывает свою эффективность.
  • Конфликт между создателями Bun и Zig подчеркивает различия в стандартах качества кода и подходах к тестированию.
  • Успешный перевод Bun на Rust подтверждает, что агентские системы способны решать задачи по миграции целых кодовых баз.

Несмотря на критику со стороны Эндрю Келли, создателя Zig, проект Bun 1.4 на языке Rust успешно функционирует в рамках CLI Cloud Code. Данный кейс служит примером того, как крупные компании могут применять ИИ для глубокого структурного изменения своих проектов, даже при значительных затратах на вычислительные ресурсы.

커뮤니티 글

모든 글 보기