Vala (lenguaje de programación)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Vala
Desarrollador(es)
Jürg Billeter, Raffaele Sandrini, Luca Bruno
http://live.gnome.org/Vala
Información general
Extensiones comunes .vala, .vapi, .gir, .c
Paradigma multiparadigma: orientado a objetos, imperativo, estructurado
Apareció en 2006
Última versión estable 0.26.1 (13 de octubre de 2014; hace 2 meses (2014-10-13))
Dialectos Vala, Genie
Influido por C, C++, C#, Java
Sistema operativo Toda plataforma soportada por GLib
Licencia LGPL 2.1+
[editar datos en Wikidata ]

Vala es un lenguaje de programación creado con el objetivo de acercar las características de los lenguajes modernos a C, sin requisitos adicionales de tiempo de ejecución y con pocos costos, centrado en los objetos de la biblioteca GObject. Ha sido desarrollado por Jürg Billeter y Raffaele Sandrini. La sintaxis se inspira en C#, con leves modificaciones para adaptarse mejor al sistema de objetos de GObject.[1]

Para la gestión de memoria, GObject usa el sistema de conteo de referencias. En C, el programador debe gestionar la adición y la eliminación de referencias a mano, en cambio, en Vala, la gestión de estas referencias es automática, siempre que el programador use los tipos referenciales incluidos en el lenguaje en lugar de usar punteros comunes. El único detalle del que debe preocuparse es de evitar que se generen listas circulares, pues en ese caso este sistema de gestión de memoria no funcionará correctamente.

Valac, el compilador de Vala, traduce el código Vala en código C, un lenguaje intermedio (tal como hace Java a Bytecode o C# al CIL), en lugar de ser compilado directamente en ensamblador, que luego puede compilarse en cualquier plataforma soportada por GLib, con cualquier compilador de C estándar.

Además, Valac también admite otra sintaxis de entrada, es el caso de Genie, que funciona de la misma forma que Vala pero con una sintaxis inspirada en Python.[2] De hecho, Vala y Genie pueden ser usados juntos para crear un mismo programa.

Controversia ante el futuro de GNOME[editar]

El lenguaje Vala compite en contraposición a Mono, una implementación abierta de C#, por formar parte activa en el núcleo de GNOME, ante la necesidad de éste de reducir su complejidad con un lenguaje moderno. La disputa comienza a ser intensa en listas de correo y foros de opinión, pero no existe un posicionamiento oficial sobre el tema por parte de los desarrolladores.

Los partidarios de Vala argumentan con su gran rendimiento junto con la posibilidad de un bloqueo de patentes a Mono por parte de Microsoft; en cambio los partidarios de Mono afirman que Vala es un lenguaje inmaduro y sin apenas documentación.

Ejemplos de código[editar]

El programa más simple "Hola mundo":

void main() {
    stdout.printf("Hola mundo\n");
}

"Hola mundo" con la ayuda de la programación orientada a objetos:

public class Ejemplo.HolaMundo : GLib.Object {
    public static int main(string[] args) {
        stdout.printf("Hola mundo\n");
        return 0;
    }
}

Un ejemplo más complejo, mostrando algunas de las características de la orientación a objetos de Vala:

public class Ejemplo.HolaMundo : GLib.Object {
    public void saludar() {
        stdout.printf("Hola mundo\n");
    }
    public static int main(string[] args) {
        var ejemplo = new Ejemplo.HolaMundo();
        ejemplo.saludar();
        return 0;
    }
}

Véase también[editar]

Referencias[editar]

Enlaces externos[editar]