WN++ es un lenguaje de programación de propósito general, de tipado dinámico, implementado en Rust. Nació con dos objetivos que no se contradicen: ser una herramienta de aprendizaje sobre implementación de lenguajes, y tener una identidad chilena genuina.
No es un lenguaje de producción (todavía). Es un lenguaje para entender qué pasa por debajo, cómo un lexer convierte texto en tokens, cómo un parser construye un árbol, cómo un intérprete le da vida a ese árbol. Y todo eso, con la cadencia y el humor del famoso español chileno.
pega fibonacci(n) {
cachai (n <= 1) {
n
} si no {
fibonacci(n - 1) + fibonacci(n - 2)
}
}
lorea(fibonacci(10)) // → 55
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/cuervolu/wn/releases/latest/download/wn-cli-installer.sh | shpowershell -ExecutionPolicy Bypass -c "irm https://github.com/cuervolu/wn/releases/latest/download/wn-cli-installer.ps1 | iex"wn --versionwn updateSi prefieres no usar los scripts, descarga el binario para tu plataforma directamente desde GitHub Releases y agrégalo a tu PATH.
| Plataforma | Archivo |
|---|---|
| macOS (Apple Silicon) | wn-cli-aarch64-apple-darwin.tar.gz |
| macOS (Intel) | wn-cli-x86_64-apple-darwin.tar.gz |
| Linux x86_64 | wn-cli-x86_64-unknown-linux-gnu.tar.gz |
| Linux ARM64 | wn-cli-aarch64-unknown-linux-gnu.tar.gz |
| Windows 64-bit | wn-cli-x86_64-pc-windows-msvc.zip |
Cada archivo tiene un .sha256 correspondiente para verificar la integridad.
wn # abre el REPL interactivo
wn programa.cl # ejecuta un archivoWN++ se pronuncia como "wena plus plus": corto, chileno y fácil de escribir como comando wn.
El nombre mantiene la intención original del proyecto: un lenguaje tranquilo de leer, directo para aprender cómo funciona un intérprete por dentro, y con una identidad chilena que no se siente pegada encima.
El ++ es un guiño a la idea de ir construyéndolo por capas: primero intérprete, después herramientas, bytecode, VM y todo lo que venga cuando el lenguaje se gane ese crecimiento.
WN++ está pensado para quien quiere entender cómo funcionan los lenguajes de programación por dentro, sin necesitar un doctorado para arrancar.
Si alguna vez te preguntaste cómo hace Python para saber que 3 + 4 * 2 es 11 y no 14, qué es exactamente un scope, cómo funciona un garbage collector, o qué pasa entre que escribes código y la máquina lo ejecuta — WN++ está construido para que puedas responder esas preguntas leyendo su código fuente.
El intérprete está escrito en Rust, es deliberadamente simple, y cada fase del flujo existe como un módulo separado y legible. No asumimos conocimiento de teoría formal de lenguajes. Asumimos que sabes programar y tienes curiosidad.
WN++ no es un lenguaje de producción (por ahora). No está optimizado para alto rendimiento, no tiene un ecosistema de librerías, no tiene garantías de estabilidad de API. Si necesitas eso, usa Python, Go, o Rust directamente.
WN++ no intenta representar el español en programación de forma general. Hay otros lenguajes en español — algunos serios, algunos experimentales. WN++ no compite con ellos. WN++ es específicamente chileno, no genéricamente hispano.
WN++ no esconde su complejidad, la expone. Si algo es difícil de implementar, el código lo muestra. No hay atajos que oculten cómo funciona el mecanismo real.
El flujo completo — lexer, parser, AST e intérprete tree-walking — está implementado y funcional. Las siguientes fases — compilador a bytecode, VM y recolector de basura — están en la hoja de ruta. El detalle de cada fase está en docs/roadmap.
Si quieres compilar WN++ tú mismo necesitas Rust 1.80 o superior.
git clone https://github.com/cuervolu/wn
cd wn
cargo build --release
./target/release/wnWN++ es de código abierto. Si te interesa contribuir, sea código, documentación, ejemplos, o simplemente comentarios sobre qué se siente raro al escribir el lenguaje, eres bienvenido.
Lo más valioso que puedes hacer en esta etapa es escribir programas en WN++ y reportar qué se siente natural y qué no. El lenguaje mejora con uso real, no solo con teoría.
Para entender la filosofía del proyecto antes de contribuir, lee docs/filosofia.
