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

Первые итерации проекта опирались на прямое использование ИИ для трансляции функций C в Rust, однако столкнулись с проблемой потери контекста и накоплением ошибок в логике управления памятью. Автор отмечает, что автоматизация оказалась эффективной для изоляции отдельных модулей, но не справилась с комплексной переработкой системы управления транзакциями и блокировками, где малейшая ошибка приводит к нарушению целостности данных.

В ходе эксперимента выяснилось, что для успешного переноса таких масштабных систем, как Postgres, требуется не просто генерация кода, а создание промежуточных слоев абстракции, которые ИИ может обрабатывать по частям. Использование LLM в данном контексте смещается от «написания кода» к «помощи в портировании», где человек выступает архитектором, а модель — инструментом для рутинной конвертации синтаксиса и поиска потенциальных уязвимостей в памяти.

Ключевые факты

  • Проект Pgrust включал четыре итерации с использованием различных подходов к автоматизированному портированию кода C на Rust.
  • Основная сложность при использовании ИИ заключалась в управлении состоянием и сложной логикой работы с памятью, характерной для PostgreSQL.
  • Выявлено, что текущие модели наиболее эффективны при портировании изолированных функций, но требуют значительного контроля при работе с глобальными структурами данных.
  • Эксперимент подтвердил, что автоматизация системного программирования требует интеграции ИИ в процесс проектирования, а не простого перевода синтаксиса.