Hola, soy un desarrollador frontend con 8 años de experiencia.
Quise poner por escrito mi experiencia de haber diseñado un compilador DSL con ayuda de la IA e incluso haber publicado un artículo en arXiv.
- Partí de la intuición que sentí al crear varios SaaS: “en cada dominio se repite la misma estructura”
- Usé la IA no como asistente de programación, sino como una herramienta para tomar prestada la forma de pensar de expertos de cada área
- Como el costo del fracaso se redujo estructuralmente, pude seguir empujando el proyecto incluso después de rehacer por completo la arquitectura cuatro veces
- Al mismo tiempo, también sentí la importancia de ese 20% restante que la IA no puede llenar: la intuición de que “ahora mismo estás haciendo la pregunta equivocada”
Es un relato honesto sobre una experiencia en la que percibí al mismo tiempo las posibilidades y los límites del uso de la IA.
11 comentarios
No sé qué es un lenguaje formal, pero
stateycomputedparecen variables yactionparece una función; ¿cuál es la diferencia? Al leer el texto, por momentos parece que dibujaron un diagrama de estados, pero tampoco entiendo qué relación tiene eso con lo que dicen de que el dominio se repite. Las palabras que aparecen en el artículo no son desconocidas para mí, pero aun así no se deja leer bien.Por ejemplo, pensemos que estamos creando un formulario de registro.
Supongamos que en el formulario de registro recibimos estos 4 datos: nombre, género, edad y si hizo o no el servicio militar.
Y asumamos que aparece una cláusula adicional como:
"Si el género es masculino, se muestra un cuadro de selección para preguntar si hizo el servicio militar"
Y si además hay un botón de enviar, eso podría considerarse lo que normalmente llamamos el modelo de dominio del registro.
Entonces, en ese momento, esos 4 elementos —nombre, género, edad y servicio militar— serían el state del dominio,
la visibilidad del
select boxque pregunta por el servicio militar sería uncomputedderivado del género,y el botón de registro sería donde se mapea una
action.Como no soy muy bueno escribiendo, creo que no logré redactarlo de una forma tan fácil de leer.
Pero pueden entender que el concepto en sí es parecido a lo que expliqué arriba.
No lo entiendo con exactitud, pero creo que capto más o menos la idea.
Gracias.
Lo leí con mucho interés. También lo que escribió en su blog. No sé si la analogía sea del todo adecuada, pero me hace pensar que la razón por la que el primer tutorial de los lenguajes suele ser
Hello World!, y el proceso de aprender desarrollo web construyendo un tablero de anuncios y una tienda en línea, al final van por la misma línea que lo que usted plantea. Antes yo pensaba algo así: si uno tiene la técnica suficiente como para construir un tablero de anuncios y una tienda en línea, entonces puede implementar la mayoría de los sitios web. Y, en última instancia, la programación no es más que entrada y salida.Me parece que la analogía es apropiada. Mi proyecto también está compuesto, en esencia, solo por dos cosas: la intención de la persona y el snapshot.
Al final, pensaba que el camino que debe seguir mi proyecto es cómo calcular la intención humana (p. ej., pulsaciones de teclas, clics del mouse) y cómo hacer que adquiera un determinado significado.
En resumen, ¿crearon una mini language que dibuja diagramas de estado?
No, lo que les mostré con el state diagram es una de las formas de visualizar las transiciones de estado dentro de Manifesto.
Creamos una máquina de estados determinista como framework.
Los cálculos dentro de Manifesto Core están diseñados para que, con el mismo estado y el mismo comando, siempre produzcan exactamente el mismo resultado.
Entiendo que creaste un DSL, pero no me queda muy claro de qué trata una máquina de estados determinista. Incluso me pregunto si existe una máquina de estados no determinista... En fin, lo leí con gusto. Espero que lo sigas desarrollando bien.
Ah, profesor, su observación es correcta. La máquina de estados en sí misma sí es determinista. Lo que introduje en el manifiesto está basado en algo no Turing-completo, por lo que no existen bucles dentro del DSL. Gracias a eso, es posible calcular cómo funcionará el programa antes de ejecutarlo y explicar por qué salió ese resultado.
¡Gracias por la observación!
Lo leí con interés. Hay mucho con lo que me identifico. Me emociona y a la vez me da miedo
Gracias por leerlo con interés.
En estos días, surgen muchas reflexiones sobre cómo debemos vivir en medio de una época que cambia rápidamente.