Sobre el proyecto
Slate es un lenguaje de tipado dinámico que utiliza la sangría para la estructura y cuenta con un verificador de tipos gradual. Soporta async/await en un bucle de eventos real, generadores, módulos, pattern matching, clases en lugar de prototipos y tipos de datos algebraicos. Diseñado para servidores API, gestiona HTTP (vía llhttp), HTTP/2 (vía nghttp2), TCP, TLS, operaciones de sistema de archivos, procesos, regex y JSON.
El lenguaje se compila a JavaScript, lo que permite que el mismo programa se ejecute bajo su intérprete, Node.js, QuickJS o en navegadores utilizando el framework Lath. El comando `slate js` genera un único archivo JavaScript autónomo que incluye el runtime y el framework, eliminando la necesidad de bundlers y node_modules.
El tipado gradual permite anotaciones opcionales; las declaraciones de tipos sirven tanto para el pattern matching como para comprobaciones en tiempo de ejecución. Las características incluyen expresiones `match` postfijas, tipos genéricos y funciones async que devuelven promesas. Los servidores API utilizan sistemas de router y handler integrados. Los scripts admiten la ejecución mediante shebang.
La implementación utiliza una máquina de pila y recolección de basura por rastreo (debido a los ciclos de clausuras), con un bucle de eventos basado en libuv. Está disponible para macOS Apple silicon a través de Homebrew; otras plataformas requieren compilaciones desde el código fuente. La documentación incluye referencias del lenguaje y de la librería.
Entre las omisiones notables se encuentran el soporte para programación literaria y algunos módulos de la librería estándar para el backend de JavaScript. La sentencia `defer` ha sido excluida deliberadamente debido a la recolección de basura.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.