El panorama de desarrollo de software está cambiando rápidamente, impulsado por la proliferación de Herramientas de inteligencia artificiales. Estas herramientas de código AI se dividen en dos categorías principales: generadores, que tienen como objetivo producir bases de código enteras a partir de indicaciones y asistentes, que se integran directamente en el flujo de trabajo del desarrollador. Las diferencias arquitectónicas y filosóficas fundamentales entre estos enfoques remodelan cómo funcionan los desarrolladores.
Ivan Liagushkin, un desarrollador de software con más de 10 años de experiencia en la construcción de aplicaciones web a gran escala, ofrece información sobre este campo en evolución. Está a cargo de la ingeniería en Dosuna startup de redacción de IA respaldada por Sequoia Capital.
Definición de generadores y asistentes de código de IA
«Herramientas como V0.dev y GitHub Copilot pueden parecer similares, pero son fundamentalmente diferentes filosóficamente», dijo Liagushkin. «Los generadores compiten principalmente con plataformas sin código y código bajo, dirigidos a profesionales no desarrolladores. Los asistentes de codificación, en contraste, tienen como objetivo transformar los flujos de trabajo de codificación diarios».
Generadores como V0.dev de Vercel y Bolt. Nuevas de Stackblitz están diseñados para permitir la prototipos rápidos y el lanzamiento de MVP. A menudo son obstinados sobre las tecnologías que usan, promoviendo herramientas y plataformas específicas.
«Estos generadores son muy obstinados sobre las tecnologías que usan y, a menudo, promueven herramientas específicas para que los usuarios se suscriban», dijo Liagushkin. «Por ejemplo, tanto Bolt.new como adorable promueven la plataforma de desarrollo de Supabase, mientras que V0.dev promueve naturalmente el alojamiento de Vercel».
Los asistentes de codificación, por otro lado, se centran en la integración perfecta en los flujos de trabajo existentes, comprenden bases de código y proporcionan herramientas universales en todas las tecnologías. Están diseñados para ser útiles tanto para desarrolladores individuales como para equipos.
«Los asistentes de codificación apuntan a transformar la codificación diaria», dijo Liagushkin. “Es vital para ellos tener sentido para los desarrolladores y equipos individuales en particular. Editor de cursor Parece especialmente prometedor, proporcionando una forma conveniente de compartir y escalar las instrucciones de LLM con las llamadas ‘reglas del cursor’ «.
La arquitectura subyacente de estas herramientas es similar, con la principal diferencia en la interfaz de usuario y los enfoques de aumento de contexto. El componente central es el modelo de lenguaje grande (LLM).
«El componente clave es el LLM en sí», dijo Liagushkin. «Todos los generadores mencionados se basan en el soneto Claude 3.5 de Anthrope, el modelo de codificación de vanguardia durante mucho tiempo, superado solo por su soneto sucesor Claude 3.7. Los asistentes de codificación, sin embargo, permiten cambiar entre modelos».
Dentro de la arquitectura: cómo funcionan las herramientas de codificación de IA
Estas herramientas no suelen ajustar los modelos, sino que se basan en técnicas de indicación avanzada. Herramientas de código abierto como Bolt.new proporciona información sobre la arquitectura.
«Gracias a Bolt. NUEVO siendo de código abierto, podemos examinar lo que se usa», dijo Liagushkin. «El indicador del sistema central explica a la LLM su entorno de ejecución y acciones disponibles: crear y editar archivos, ejecutar comandos de shell, buscar bases de código y usar herramientas externas. Las indicaciones están bien estructuradas con formato de estilo XML y utilizar aprendizaje único para reducir las alucinaciones e inconsistencias».
La gestión del contexto, especialmente para grandes bases de código, es un desafío importante. Asistentes de bases de código índice y usan bases de datos Vector para la búsqueda de texto completo.
«El mayor desafío es proporcionar a los LLM con un contexto adecuado», dijo Liagushkin. «Es esencial alimentar las partes correctas de los archivos correctos junto con los módulos, la documentación y los requisitos correspondientes. Los asistentes indexan la base de código, creando estructuras de datos en forma de árbol para monitorear los cambios de archivos, luego fragmentar e incrustar archivos en bases de datos vectoriales para la búsqueda de texto completo».
El 30% final
A pesar de su poder, las herramientas de codificación de IA tienen limitaciones. El «problema del 70%», articulado por Addy Osmani, destaca su lucha con el 30% final del código que requiere robustez y mantenimiento.
«El problema del 70% ‘describe perfectamente la limitación fundamental de las herramientas de codificación de IA: pueden generar rápidamente un código que le brinda el 70% del camino, pero lucha con el crucial 30% final que hace que la producción de software esté preparada, mantenible y robusta», dijo Liagushkin.
Abordar estas limitaciones implica mejorar la precisión del modelo, avanzar en las arquitecturas de agente y mejorar las técnicas de incorporación.
«Este problema se resolverá de tres maneras diferentes», dijo Liagushkin. «Primero, los modelos serán más precisos. En segundo lugar, la arquitectura de los asistentes de codificación avanzará a través de enfoques de agente. Por último, cambiaremos. Todos aprenderán técnicas efectivas de solicitación».
En Twain, Liagushkin ha experimentado limitaciones similares en el desarrollo de redactores de IA. Las estrategias para mitigarlos incluyen el almacenamiento en caché de solicitudes de LLM, el malabarismo del modelo y el preprocesamiento rápido.
«La única diferencia entre los asistentes de codificación y Twain es que los asistentes de codificación producen código, mientras que Twain produce mensajes personalizados de calidad escrita por humanos», dijo Liagushkin. «Sin embargo, los desafíos siguen siendo los mismos: para ser valiosos, debemos generar copias rápido, rentable y mantenerlos libres de alucinaciones».
Anticipando el futuro
Mirando hacia el futuro, Liagushkin anticipa avances significativos en la calidad del modelo y la evolución del flujo de trabajo. Sin embargo, enfatiza que la adopción de tecnología sigue siendo un factor crítico.
«El progreso en la calidad del modelo de IA es sorprendente, y deberíamos esperar que los modelos se vuelvan aún más precisos, estables y rentables», dijo Liagushkin. «Sin embargo, creo que los cambios verdaderamente transformadores en los procesos de codificación no serán principalmente de los avances de ingeniería y IA, sino de la evolución del flujo de trabajo y la mentalidad».
Las consideraciones éticas, particularmente la seguridad de los datos, también son primordiales. Liagushkin sugiere implementar la codificación de LLM en las redes locales y usar herramientas de restricción de visibilidad.
«Las consideraciones éticas se refieren principalmente a la seguridad de los datos, un problema significativo pero técnicamente solucionable», dijo Liagushkin. «La codificación de LLM se puede implementar dentro de las redes locales de las organizaciones, con herramientas de restricción de visibilidad diseñadas para aislar secciones de código confidencial».
El futuro de las herramientas de codificación de IA depende de avances tecnológicos y un cambio en la mentalidad dentro de la comunidad de desarrollo.