Hoja de ruta
Que viene, que ya esta listo, y por que.
WN++ ya no está en la etapa de "toy language que apenas corre". Hoy el repo trae CLI, compilación a bytecode, stack VM, sistema de módulos, funciones de primera clase, conversiones nativas y recolector de basura en wn-vm. La hoja de ruta cambia por eso: ya no se trata de imaginar el motor, sino de empujar el lenguaje y las herramientas encima de una base que existe.
Ya está funcionando
Compilador a bytecode
wn-cli ya parsea, compila con compilar() y puede desensamblar el resultado con wn chunk.
Stack VM
wn-vm ejecuta bytecode real con opcodes, frames, globals, closures y manejo de errores.
GC mark-and-sweep
El VM ya expone collect_garbage() y tiene pruebas para sweep de temporales y conservación de closures.
REPL con estado
El REPL reutiliza el mismo VM, así que variables y funciones sobreviven entre líneas.
Funciones como valores
Las funciones ya se guardan en variables, se retornan y capturan upvalues.
Conversiones y módulos
numero(), texto(), pregunta() y queri ya forman parte de la base útil del lenguaje.
v1.0 - Lenguaje completo y consolidado
La diferencia entre v0.x y v1.0 ya no pasa por "tener VM algún día". Esa parte existe. La meta real de 1.0 es consolidar semántica, librería base y ergonomía para que WN++ se sienta consistente de punta a punta.
Todo lo que sigue acá cae en ese mismo paraguas: cerrar el lenguaje que ya existe, volverlo más cómodo para escribir programas reales y hacer crecer la base estándar sobre una semántica estable.
Interpolación de strings
Concatenar con + funciona, pero se vuelve ilegible rápido. Los strings interpolados siguen siendo una mejora clara pendiente.
wea nombre = "Bodoque"
wea edad = 42
lorea($"Wena {nombre}, tienes {edad} años.")
// -> Wena Bodoque, tienes 42 años.Pattern matching (segun)
Una forma mas limpia de comparar un valor contra multiples posibilidades.
wea tipo = cachar(x)
segun tipo {
"numero" -> lorea(texto(x) + " es un numero")
"texto" -> lorea(texto(x) + " es un texto")
_ -> lorea("no se que wea es esto")
}Lambdas ergonomicas
La base de funciones ya esta, pero una sintaxis corta para callbacks o transformaciones chicas todavia seria bienvenida.
wea duplicar = (x) -> x * 2
lorea(duplicar(4))Biblioteca estandar mas util
El sistema de modulos ya existe, asi que ahora tiene sentido crecer la stdlib con mas funciones utiles sobre texto, listas, archivos, tiempo y utilidades practicas.
El alcance exacto se define mejor a medida que existan programas reales escritos en WN++ que muestren que duele repetir.
Estabilidad del lenguaje
Congelar la sintaxis y los comportamientos centrales para que escribir ejemplos, tutoriales y programas de verdad no sea dispararle a una meta en movimiento.
Runtime mas robusto
Mas benchmarks, mejor perfilado, mejor ergonomia de errores y mas cobertura sobre corner cases del VM, imports, closures y GC.
Distribucion mas redonda
Pulir instalacion, actualizacion, wasm y experiencia general para que WN++ sea facil de probar, entender y compartir.
v1.2 - Herramientas
wn fmt
Un formateador oficial para que todo el código WN++ se vea igual, independiente de quien lo escribió.
wn fmt mi_programa.cl
wn fmt src/Extensión para VS Code
Soporte básico de editor: resaltado de sintaxis, detección de errores mientras escribes y autocompletado simple.
Mejor experiencia de inspección
El CLI ya puede exportar AST y desensamblar bytecode. El siguiente paso natural es mejorar esa historia con salidas más claras, snapshots más legibles y debugging más amable.
Nota
Esta hoja de ruta es una intención, no un contrato. El orden puede cambiar según lo que se aprenda escribiendo programas reales en WN++. Lo importante es que el roadmap ya parte desde una base concreta: el compilador a bytecode, la VM y el GC ya no son promesas.
