Volver al Blog

Telar: de compilador a ecosistema completo

· telar compiladores open source desarrollo web

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.

🔗 github.com/davidbc01/telar