Back to flin
flin

Diseño de lenguaje AI-first

Cómo FLIN fue diseñado desde cero para desarrollo asistido por IA -- sintaxis mínima para menos tokens, archivos autocontenidos para contexto completo e integración MCP para herramientas de agentes IA.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 3 min flin
EN/ FR/ ES
flinrust

La mayoría de los lenguajes de programación fueron diseñados para que los humanos escriban y los compiladores lean. FLIN fue diseñado para que tanto humanos COMO agentes de IA escriban, y para que tanto compiladores COMO LLMs lean.

Esta no es una distinción menor. Influyó en cada decisión de sintaxis, cada convención y cada elección arquitectónica. FLIN no es un lenguaje que casualmente funciona bien con asistentes de IA. Es un lenguaje que fue deliberadamente optimizado para un mundo donde agentes de IA generan, modifican y mantienen código junto con desarrolladores humanos.

La tesis central: las mismas propiedades que hacen un lenguaje fácil para que la IA trabaje -- sintaxis mínima, archivos autocontenidos, cero configuración, comportamiento determinista -- también lo hacen más fácil para los humanos. Diseñar para IA no compromete la experiencia humana. La mejora.

Principio 1: Sintaxis mínima, menos tokens

Cada palabra clave, corchete y línea de código repetitivo innecesarios es un token que un LLM debe generar. Más tokens significan más costo, más latencia y más oportunidad de errores.

flin// FLIN: 7 líneas, ~40 tokens
route GET {
    user = User.find(params.id)
    if user == none {
        return error(404, "Not found")
    }
    user
}

La versión FLIN usa aproximadamente 78% menos tokens que Express.js. Para una IA generando 100 endpoints, esta diferencia se traduce en miles de tokens ahorrados.

Principio 2: Sin imports

FLIN no tiene declaraciones de importación. Cada entidad, cada función integrada y cada característica del lenguaje está disponible por nombre sin declarar dependencias. Esto elimina toda una categoría de errores generados por IA: rutas de importación incorrectas, imports faltantes, imports circulares y sintaxis de importación específica de versión.

Principio 3: Archivos autocontenidos

En FLIN, un solo archivo .flin contiene todo lo necesario para entender una ruta: los guards, la validación, la lógica de negocio y la plantilla de vista. Un agente LLM necesita 1 archivo en contexto, no 6.

Principio 4: Comportamiento determinista

El comportamiento de FLIN es determinista: el mismo código siempre produce el mismo resultado. Para agentes de IA, el determinismo significa testabilidad.

AI-first no significa human-last. Cada decisión de diseño que beneficia a los agentes de IA también beneficia a los desarrolladores humanos.


Esta es la Parte 124 de la serie "Cómo construimos FLIN", que documenta cómo un CEO en Abidjan y un CTO de IA diseñaron y construyeron un lenguaje de programación desde cero.

Navegación de la serie: - [123] Búsqueda híbrida de documentos: BM25 + semántica - [124] Diseño de lenguaje AI-first (estás aquí) - [125] Analíticas de búsqueda y caché de resultados

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude deblo

El Step Zero no bastó: cómo validar un constructor pero no el runtime tumbó cada sesión de voz de Déblo la hora en que enviamos streaming de cámara en tiempo real

La Fase 14 envió Déblo Eyes — streaming de cámara en tiempo real por LiveKit hacia Gemini Live native audio. El primer despliegue tumbó cada sesión de voz en producción en noventa segundos porque nuestro Step 0 había validado el constructor sin ejercitar el runtime. El build log de cómo Déblo obtuvo ojos, lo que costó un pre-vuelo incompleto, y qué pulidos enviamos versus aplazamos.

33 min May 20, 2026
debloclaude-opus-4.7claude-codegemini-live +25
Thales & Claude deblo

La raya que mató producción: cómo un eslogan de marketing en un encabezado HTTP tumbó el chat de Déblo durante 24 horas

Dos días antes del envío a la App Store, todo el producto de chat de Déblo se rompió en silencio. Sin spinner, sin toast, sin error en la UI — solo aire muerto. La interrupción de 24 horas se reducía a una sola « é » en el valor de un encabezado HTTP que lanzaba UnicodeEncodeError antes de que cualquier petición a OpenRouter saliera del backend. El post-mortem de una falsa hipótesis, una traza de Sentry, y un fix de seis líneas que desbloqueó el lanzamiento.

29 min May 19, 2026
debloclaude-opus-4.7claude-codeincident +19
Thales & Claude deblo

Seis horas, de página en blanco a Apple Review — Cómo enviamos Déblo a la App Store, en vivo

Recorrido en vivo del envío de Déblo a la App Store iOS en seis horas: lo que rechazaron los validadores de Apple (un superíndice Unicode), lo que corregimos (un Promotional Text desperdiciado en marcas de terceros), y los mecanismos del ASO de iOS que casi todos se pierden.

30 min May 13, 2026
debloclaude-opus-4.7claude-codeapp-store +16