Este artículo narra la historia de Lalit Maganti, un ingeniero que durante ocho años deseó crear un conjunto de herramientas de desarrollo (devtools) de alta calidad para SQLite, una base de datos embebida crucial en la industria. La dificultad radicaba en la ausencia de herramientas adecuadas para desarrolladores, a pesar de la importancia de SQLite. Tras tres meses de trabajo intensivo (aproximadamente 250 horas), Lalit lanzó Syntaqlite, una herramienta que aborda este vacío.
La clave para lograr este objetivo, según Lalit, fue el uso de agentes de codificación con IA. Aunque la IA ha sido objeto de controversia (algunos la ven como una solución milagrosa, otros como inútil), Lalit describe su experiencia como un proceso de aprendizaje y adaptación. Inicialmente, Lalit intentó construir Syntaqlite con Claude Code (un modelo de IA) como un 'jefe de proyecto', delegando el diseño y la implementación. Sin embargo, el resultado fue un código desorganizado y difícil de mantener ('spaghetti code').
El desafío principal al construir herramientas para SQLite es la falta de una especificación formal de su lenguaje SQL y la ausencia de una API de parser estable. SQLite incluso no construye un árbol de análisis (parse tree) internamente. La solución inicial de Lalit fue extraer partes del código fuente de SQLite y adaptarlas para crear el parser deseado, una tarea compleja debido a la densa y poco documentada naturaleza del código C de SQLite.
Tras la primera iteración, Lalit decidió empezar de cero, adoptando Rust como lenguaje de programación (en lugar de C) para facilitar el desarrollo de componentes de nivel superior como validadores y servidores de lenguaje. Su rol cambió a ser un 'autocompletado potenciado por IA', supervisando y corrigiendo el trabajo de la IA. El proyecto, ahora en Rust, se centra en la precisión del parser, la creación de un formateador y el soporte tanto para el lenguaje SQL estándar como para las extensiones de PerfettoSQL (un lenguaje de consulta de rendimiento desarrollado por Lalit). Syntaqlite se presenta como una solución para desarrolladores SQLite, especialmente aquellos que trabajan con extensiones del lenguaje como PerfettoSQL, y demuestra cómo la IA puede ser una herramienta valiosa en el desarrollo de software, aunque requiere una gestión cuidadosa y una supervisión humana constante.
