Programación en Vala/Su primer programa en Vala

De Wikilibros, la colección de libros de texto de contenido libre.

Su primer programa en Vala[editar]

Como no puede ser de otro modo el primer programa en Vala va a ser el conocido como "Hola Mundo" que es el programa más simple (sin contar con el programa vacío) que se puede escribir en un lenguaje de programación.

El listado de código sería algo como lo que sigue:

class Demo.HelloWorld : GLib.Object {

    public static int main(string[] args) {

        stdout.printf("Hola, mundo!\n");

        return 0;
    }
}

A continuación se explicarán algunas de las características que contiene el código, para entenderlas es necesario conocer los fundamentos de la programación orientada a objetos. La primera línea que se ve es:

class Demo.HelloWorld : GLib.Object {

Esta línea de código representa la definición de una nueva clase llamada HelloWorld. Se puede observar que antes del nombre de la clase se encuentra la palabra "Demo" seguida de un punto. Bien, esto indica el espacio de nombres en el que se mueve el programa. Asimismo, se puede observar que después del nombre de la nueva clase le siguen dos puntos y la cadena "Glib.Object". Esta cadena va en el mismo formato que la anterior, es decir, "espacio de nombres"."nombre de la clase" e indica una clase de la que hereda la clase anterior. La mayoría de las nuevas clases heredarán de la clase "GLib.Object" que puede ser considerada como la clase básica en el lenguaje Vala, ya que, una parte importante de las funcionalidades del lenguaje están supeditadas a que la clase sobre las que se aplican hereden de esta clase o de una clase descendiente de ésta. Como se ha podido ver la sintaxis de definición de una clase es bastante similar a otros lenguajes de programación como C++, Java o C#.

Siguiendo con el mismo listado de código tenemos que la siguiente línea de código es la que sigue a continuación:

    public static int main(string[] args) {

Esta línea de código define un método de la clase HelloWorld llamado "main". Este método va precedido por la palabra reservada "public" que indica que se trata de un método público (es decir, puede ser llamado externamente a la clase a la que pertenece). La palabra reservada "static" nos indica que se trata de un método estático (está asociado a la clase y no a un objeto en concreto, es decir, puede ser llamado sin instanciar ningún objeto de esa clase). Además se indica que el tipo de datos que devuelve este método es de tipo entero, lo que se hace mediante la palabra reservada "int". Por último, entre los paréntesis se indican los parámetros (los datos que utilizará internamente el método para trabajar). El parámetro es una lista de cadenas que contendrá los parámetros con los que fue llamado el programa desde la línea de comandos. El hecho de que el método definido se llame "main" no es casual, ya que, Vala considera a este método concreto como el punto de entrada del programa, es decir, que una vez compilado un programa escrito en Vala éste será el primer método en ser ejecutado. Este método es el que contiene la correspondientes inicializaciones que requiere el programa que estemos desarrollando, por ejemplo la inicialización de la interfaz gráfica de usuario.

La siguiente línea de código es la que sigue:

        stdout.printf("Hola, mundo!\n");

Esta línea de código imprime por la salida estándar (normalmente será la pantalla del ordenador) el mensaje encerrado entre comillas. Es una llamada al método "printf" del objeto "stdout". En el lenguaje de programación Vala existen una serie de objetos predefinidos a los cuales tenemos acceso por que se encuentran definidos dentro del espacio de nombres GLib que está definido por defecto en cualquier programa Vala. El objeto "stdout" nos permite el acceso a la salida estándar de la máquina y entre otros métodos contiene el método "printf" que muestra un mensaje formateado por dicha salida.

La última línea importante del código inicial es la siguiente:

        return 0;

Esta línea hace que el programa finalice y devuelva un valor de 0 al sistema. Este valor normalmente se usa para indicar si un programa ha finalizado de forma correcta o no. Si estuviera definido en otro método cualquiera (que no fuera el punto de entrada del programa) devolvería el valor y se almacenaría en una variable. Por ejemplo:

        int valor = objeto.metodo();

Las últimas líneas del listado únicamente cierran la definición de la clase y el método definido como en cualquier otro lenguaje como por ejemplo C++ o Java.

Compilado y ejecución del programa[editar]

Una vez que se entiende el funcionamiento del programa, el siguiente paso es compilar dicho programa. Vala al ser un lenguaje de programación compilado y por lo tanto necesita de un compilador. El lenguaje de programación Vala dispone de un compilador llamado "valac" y que es compilador al mismo tiempo del lenguaje de programación Genie.

Asumiendo que tenemos el compilador de Vala instalado en nuestra máquina, para compilar el primer programa "Hola mundo" suponiendo que está escrito en un fichero llamado "hola.vala" sería:

valac hola.vala

Esto generaría un fichero ejecutable llamada "hola" (dependiendo del sistema operativo en el que nos encontremos el fichero binario resultante tendrá o no una extensión como por ejemplo la ".exe" en Windows). Para ejecutar dicho programa habrá que escribir en la línea de comandos algo como:

./hola

Y nos mostrará la salida:

Hola, mundo!