Show HN: Reladraw – Un lenguaje de diagramas donde decides dónde colocar las cosas

Un nuevo lenguaje de diagramas, Reladraw, busca tender un puente entre herramientas de auto-disposición como Mermaid, Graphviz y D2 y herramientas manuales como draw.io, permitiendo a los autores especificar el posicionamiento relativo (“a la derecha de”, “debajo”, lados específicos de las aristas) mientras el motor se encarga de la aritmética y el enrutamiento. Los comentaristas elogian su claridad de intención, su control granular y su idoneidad para agentes de IA que necesitan disposiciones deterministas, a la vez que lo comparan con sistemas como Pikchr, TikZ, PlantUML y el modelado C4. Las principales solicitudes de funciones y mejoras tempranas se centran en el enrutamiento de aristas, los temas, las construcciones multilínea y tipo macro, y la integración en editores y flujos de trabajo de Markdown.

Recepción general

  • Muchos comentaristas están entusiasmados; varios dicen que esto cubre un vacío de larga data entre herramientas de auto-disposición (Mermaid, Graphviz, D2) y herramientas manuales (Draw.io, Excalidraw).
  • Punto de dolor común: luchar contra los motores de disposición para que coincidan con una imagen mental; la colocación relativa explícita de Reladraw se percibe como un alivio.
  • Algunos dicen que lo probarán en diagramas de trabajo reales o lo integrarán en flujos de toma de notas/IDE (Obsidian, VS Code, IntelliJ).

Comparación con herramientas existentes

  • Comparado con Pikchr y pic: esas son “turtle graphics” o basadas en coordenadas/desplazamientos; Reladraw se basa en restricciones/relaciones (por ejemplo, “a la derecha de A”).
  • Comparado con Mermaid/Graphviz/D2: esos deciden la disposición automáticamente; Reladraw deja que los usuarios/agentes decidan la colocación, pero sigue manejando la aritmética y el espaciado por colisiones.
  • Comparado con TikZ/PlantUML: TikZ es más potente pero pesado en LaTeX; PlantUML es flexible pero sigue basado en sugerencias de disposición. Reladraw apunta a un DSL de diagramas más estrecho y directo.
  • Algunos dicen que el TALA de D2 ya proporciona una disposición avanzada con restricciones, pero otros sienten que aún no ofrece el control determinista de Reladraw.

Diseño del lenguaje y capacidades

  • Énfasis en nodos, aristas y relaciones relativas simples (izquierda/derecha/debajo/de).
  • Las aristas admiten ángulos rectos (agudos/redondeados), estilos (sólido/discontinuo/punteado), grosor y puertos específicos por lado con espaciado entre múltiples aristas en un lado.
  • Las restricciones conflictivas o ambiguas producen errores explícitos en lugar de sobrescrituras silenciosas; hay debate sobre errores estrictos vs advertencias y valores predeterminados sensatos.
  • Filosofía actual: sin bloques, sin sentencias de varias líneas; varios comentaristas piden continuaciones de línea y etiquetas multilínea/largas, señalando compromisos del parser.
  • Funcionalidades previstas: atributos personalizados, variables, funciones, posibles macros con parámetros y mejores mecanismos de reutilización (por ejemplo, para diagramas de secuencia/C4).
  • Discusión sobre parametrización desde datos externos (CSV/JSON) y una generación más programática.

Enrutamiento, temas y errores

  • No hay enrutamiento automático completo que evite obstáculos, pero las aristas pueden “pasar entre” nodos; algunos usuarios quieren menos microgestión del enrutamiento.
  • Se está iterando sobre el comportamiento de aristas en ángulo recto y curvas; se reportaron errores en la curvatura de aristas y en los temas, y se corrigieron rápidamente.
  • Ahora existen múltiples temas (claro/oscuro, incluido uno tipo “Vesper”); se señalaron fallos iniciales en Safari/tematización.

Ecosistema e integración

  • Ya existe una extensión de VS Code para renderizado y resaltado de sintaxis.
  • La inserción en Markdown como mermaid en GitHub no es posible actualmente; las herramientas locales pueden soportarlo mediante plugins.
  • La CLI actualmente genera diagramas renderizados, pero hay interés en un modo que emita solo las posiciones resueltas (JSON) para poder usar otros renderizadores/backends.
  • La implementación está en TypeScript/Node; algunos quieren binarios más pequeños y sin dependencias. Se mencionan experimentos con herramientas como scriptc y Deno, con compromisos en el tamaño del binario.

IA/agentes y flujo de trabajo

  • Varios comentaristas quieren explícitamente esto como un DSL de diagramas “amigable para agentes”: los agentes pueden expresar la disposición relativa en lugar de adivinar coordenadas o pelearse con la auto-disposición.
  • Algunos abogan por enfoques aún más “visual-first” (programación visual/UML pura), mientras que otros informan buenos resultados dejando que los agentes conduzcan Draw.io o Graphviz.
  • Una persona señala que ahora a menudo simplemente pide a modelos de frontera que emitan SVG directamente, pero otros encuentran valioso un DSL estable por reproducibilidad y control.

Críticas y escepticismo

  • Algunos consideran que la sintaxis y las restricciones podrían ser engorrosas para etiquetas largas y diseños complejos hasta que se añadan multilínea/continuación.
  • Preocupaciones sobre la fragmentación del lenguaje frente a extender Mermaid o D2; otros piensan que mezclar auto-disposición y restricciones fuertes sería demasiado complejo.
  • Un comentarista cuestiona el valor del proyecto si grandes partes parecen generadas por LLM, sugiriendo desconfianza, mientras otros rechazan esa postura.
  • En general, hay una mezcla de entusiasmo por el concepto y reconocimiento de que la ergonomía, la reutilización y el soporte del ecosistema determinarán la adopción a largo plazo.