Эксперименты с использованием AI для улучшения кода BIND 9 и переработки Next.js

Ondřej Surý, director of DNS engineering at ISC, who previously created the CZ.NIC Labs project developing the Knot DNS server, summarized the experiments using large language models for analyzing, correcting, and modernizing the BIND 9 DNS server codebase, creating prototypes for new projects, and preparing educational materials. The impressions of using AI were that large language models are suitable for quickly creating prototypes, understanding unfamiliar code, and automating simple routine tasks, but when used to solve larger tasks, it is doubtful that they save time, as a lot of time is spent on task formulation, studying and verifying results, and subsequent refinements.

In the first experiment, the AI assistant Claude Code was tasked with detecting issues in the BIND 9 DNS server codebase, focusing on security problems and code modernization. None of the suggested corrections were accepted into the codebase, as Claude generated technically correct but practically useless code. For example, issues such as reserved identifiers and potential integer overflows were noted, which are prevented by the compiler and do not require modification. The experiment was deemed a useless waste of time.

In the second experiment, Ondřej asked Claude to write a telemetry system that integrates with various packages and minimizes metadata leaks. Claude Code prepared client prototypes servidores, but without a proper understanding of the environment and the issues arising during testing. Additionally, Google Gemini and ChatGPT were involved for verification, and each AI model found errors in the outputs of the other models.

Para la creación rápida de prototipos, el método resultó ser útil, pero Ondřej observó que, al trabajar, se sentía como el secretario de un robot gobernante. Al principio, la rápida obtención del prototipo inspiró optimismo, pero al final surgió la sensación de que todo el proceso de desarrollo con AI tomó más tiempo que escribir el código manualmente desde cero. Se gastó mucho tiempo desglosando la solución propuesta por la AI, verificando que no hubiera cambios sin sentido y rehaciendo el prototipo, ya que la calidad del código después de la AI resultó mediocre y el código incluía un gran número de construcciones repetitivas.

El tercer experimento consistió en la generación de un balanceador de carga en el lenguaje Rust utilizando los paquetes crate Domain y Tokio. Claude Code logró generar el prototipo de trabajo solicitado, pero Ondřej no conoce tan bien Rust ni las bibliotecas implicadas como para evaluar la calidad del trabajo realizado.

El cuarto experimento estuvo relacionado con la preparación de materiales auxiliares, pruebas y preguntas para el curso de conferencias que Ondřej imparte en la universidad, utilizando Google Gemini. Este experimento se reconoció como el más exitoso, aunque no estuvo exento de problemas: la AI inventó una palabra checa inexistente para un término de criptografía. También se constató la abundancia de trabajos estudiantiles que le fueron enviados, generados por grandes modelos de lenguaje, los cuales tuvieron que ser devueltos para su rework debido a que no cumplían con el nivel universitario y contenían referencias a fuentes incorrectas.

Además, se puede mencionar otro experimento realizado por el director de ingeniería de Cloudflare. Con la ayuda del modelo Claude Code, dedicando aproximadamente una semana y 1100 dólares en tokens, se logró preparar una implementación alternativa de la API del marco Next.js, presentada en forma de un plugin para la herramienta Vite. El proyecto recibió el nombre de vinext y fue publicado en GitHub. La nueva implementación es cuatro veces más rápida que la compilación de Next.js utilizando Turbopack, y genera bundles para frontends que ocupan un 57% menos de espacio.

El proyecto implementa el 94% de dieciséis API básicas de Next.js y se puede utilizar como un reemplazo transparente de Next.js para el despliegue de proyectos en la plataforma Cloudflare Workers sin recurrir a capas adicionales como OpenNext y sin depender de Node.js. La función clave de vinext es proporcionar la posibilidad de utilizar la API de Next.js en plataformas distintas de Vercel y sin desplegar un servidor propio. Actualmente, solo se admite Cloudflare Workers y existe un prototipo para Vercel, pero en el futuro se espera soporte para otras plataformas de computación sin servidor con las que puede trabajar Vite, incluyendo Netlify y AWS Lambda.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster