revo, un lenguaje dinámico centrado en el flujo explícito de datos

Fuentes: revo, a dynamic language built around explicit data flow

revo es un lenguaje de programación dinámico diseñado paraprogramar y experimentar con estructuras de datos, evaluación en tiempo de compilación, macros, concurrencia y tipado opcional. Su propuesta combina una sintaxis expresiva con un flujo de datos que avanza de arriba abajo, reduce el anidamiento y exige tratar los errores como valores. En lugar de excepciones implícitas, utiliza átomos para representar estados como nil, booleanos y errores; el operador ?, la función orelse y el método :unwrap() facilitan su propagación y manejo. El lenguaje mantiene una apariencia procedural, aunque todas sus construcciones son expresiones y devuelven un valor.

Entre sus herramientas destacan la compilación de expresiones durante la compilación, macros procedurales que transforman el árbol sintáctico, pattern matching para desestructurar datos y fibras para ejecutar código bloqueante de forma no bloqueante. Las tablas representan exportaciones de módulos, arrays y mapas. El sistema de tipos es opcional e integrado: permite escribir código sin anotaciones, infiere la mayoría de los tipos y optimiza el código tipado. Las pruebas sonclosures de primera clase que fallan al devolver un error. El proyecto incluye REPL, servidor LSP, resaltado de sintaxis mediante Tree-sitter y compatibilidad con editores como VS Code, Neovim, Helix, Zed y Emacs. Para compilarlo se requiere Zig 0.16.0; la documentación recomienda instalar la versión más reciente desde el código fuente, porque el proyecto cambia rápidamente.