Hola mundo

Antes de nada necesitas el compilador. Si aún no lo tienes, pasa por instalar Vesta y vuelve aquí; son unos minutos.

El programa

Guarda esto como hola.vx:

site/snippets/hello.vx
i32 main() {
    println("Hello from Vesta ${1 + 1}!");
    return 0;
}

Compilarlo y ejecutarlo

Vesta compila a un bytecode con extensión .velb, que ejecuta su máquina virtual:

vesta --vx hola.vx -o hola
vesta --run hola.velb

Deberías ver:

Hello from Vesta 2!

Si en su lugar aparece un error sobre módulos que no se encuentran, el compilador no está localizando la biblioteca estándar. La causa y la solución están en dónde vive la biblioteca estándar.

Qué dice cada línea

i32 main() declara el punto de entrada. El tipo va delante del nombre, como en C o en Java, y devuelve el código de salida del proceso: 0 significa que todo fue bien.

println escribe una línea en la salida estándar. No hace falta importar nada para usarlo.

Lo interesante está dentro de la cadena. ${1 + 1} es interpolación: lo que haya entre las llaves se evalúa y su resultado se inserta en el texto. Y como 1 + 1 es una expresión que el compilador puede resolver por su cuenta, no queda ninguna suma en el programa final: el binario lleva directamente la cadena Hello from Vesta 2!.

Es un ejemplo diminuto de algo que verás por todas partes en Vesta: lo que se puede saber al compilar, no se paga al ejecutar.

Y ahora

El programa que acabas de compilar puede ejecutarse de tres maneras distintas sin que cambies una sola línea. Eso es lo siguiente.