- Vala (lenguaje de programación)
-
Vala Desarrollador(es) Jürg Billeter, Raffaele Sandrini
http://live.gnome.org/ValaInformación general Extensiones comunes .vala, .vapi, .gir, .c Paradigma multiparadigma: orientado a objetos, imperativo, estructurado Apareció en 2006 Última versión estable 0.13.1 (06 de julio de 2011[1] ) Dialectos Vala, Genie Influido por C, C++, C#, Java Sistema operativo Toda plataforma soportada por GLib Licencia LGPL 2.1+ 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.[2]
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 hacen Java o C#), 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.[3] De hecho, Vala y Genie pueden ser usados juntos para crear un mismo programa.
Contenido
Controversia ante el futuro de GNOME
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
El programa más simple "Hola mundo":
void main() { stdout.printf("Hola mundo\n"); }
Otro "Hola mundo" más avanzado:
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
Referencias
Enlaces externos
- Sitio web oficial
- Documentación de Vala
- Libgee, una colección de la biblioteca GObject
- Programación en Vala - Wikilibros
- Comparativa de rendimiento de Vala - C - C++ - C#
Categorías:- GNOME
- Lenguajes de programación multiparadigma
Wikimedia foundation. 2010.