Telar: de compilador a ecosistema completo
Hace unos días escribí sobre cómo construí el lexer y el parser de Telar — el lenguaje declarativo para la web con sintaxis en español. Si no leíste ese post, el resumen es: parsé código en español y construí un árbol de sintaxis. Funcionaba, pero era un compilador sin ecosistema.
Esta semana cambió todo.
De lexer a ecosistema
Cuando publiqué el primer post, Telar compilaba código .telar a HTML estático. Eso era todo. Para usarlo tenías que clonar el repo, instalar dependencias y ejecutar un comando de TypeScript directamente.
Hoy Telar tiene:
npm install -g @davidbc01/telar
telar nuevo mi-proyecto
cd mi-proyecto
telar servir app.telar
Eso es todo. Cuatro comandos y tienes un proyecto funcionando con live reload en el navegador.
Lo que se construyó
Generador de JavaScript — el compilador ahora genera no solo HTML y CSS sino también el runtime JavaScript que maneja condiciones dinámicas, carga de datos desde APIs y acciones de botones.
CLI completa con siete comandos:
telar nuevo mi-proyecto # crea un proyecto desde cero
telar compilar app.telar # compila a HTML + CSS + JS
telar servir app.telar # servidor con live reload
telar verificar app.telar # valida la sintaxis
telar añadir navbar # instala un paquete
telar quitar navbar # elimina un paquete
telar buscar <término> # busca paquetes en GitHub
Live reload — WebSocket integrado sin dependencias externas. Guardas el archivo y el navegador se recarga solo.
Gestor de paquetes — los paquetes son repositorios de GitHub con el prefijo telar-. Sin registro propio, sin infraestructura. Tres paquetes oficiales disponibles:
telar añadir formulario
telar añadir navbar
telar añadir lista
Extensión para VS Code — resaltado de sintaxis para archivos .telar publicada en el marketplace.
Mensajes de error con contexto visual:
✗ app.telar:12:9 — se esperaba un número
10 │ mostrar productos recientes
11 │ ordenados por precio
→ 12 │ máximo muchos
^^^^^
13 │ si falla
Sugerencia: los números van sin comillas. Prueba con: máximo 10
El feedback que cambió el rumbo
Compartí Telar en comunidades de desarrolladores y recibí críticas técnicas directas. La más importante: “no hay variables, no hay funciones, no hay reusabilidad real — parece pseudocódigo”.
Tenían razón en parte. Y eso llevó a dos decisiones de diseño importantes.
El bloque código — una escotilla de escape para JavaScript directo cuando Telar no cubre tu caso:
página login en "/entrar"
título "Entrar"
código
console.log('Página cargada')
analytics.track('login_view')
fin código
Todos los lenguajes opinionados tienen esto. Rails tiene raw SQL, SwiftUI tiene UIViewRepresentable. Telar tiene código ... fin código.
La sintaxis usar — para incluir componentes reutilizables:
página inicio en "/"
usar navbar
usar formulario
título "Mi App"
Esas dos cosas juntas eliminan el 90% de las objeciones técnicas. El 80% del código sigue siendo declarativo. El 20% que necesita control total tiene su escotilla.
Lo que aprendí esta semana
El feedback negativo es más valioso que el positivo. Cada crítica técnica directa fue una decisión de diseño que tomar — no para complacer a quien criticaba, sino para entender qué le faltaba al lenguaje.
Construir en público acelera el aprendizaje. Sin compartirlo, habría tardado meses en encontrar esos huecos.
Un ecosistema se construye en orden. Primero el compilador, luego la CLI, luego el gestor de paquetes, luego los paquetes. Cada capa hace que la anterior sea más útil.
Dónde está Telar ahora
npm install -g @davidbc01/telar
telar nuevo mi-proyecto
cd mi-proyecto
telar servir app.telar
v0.5 publicada. La v0.6 añadirá tests completos y CI/CD. La v1.0 tendrá documentación web y comunidad.