Vala, un nuevo lenguaje de programación

Vala, es un nuevo lenguaje de programación que pretende acercar características de programación modernas para desarrolladores de GNOME sin imponer requisitos adicionales en tiempo de ejecución (máquina virtual) y sin utilizar una ABI diferente en comparación con las aplicaciones y bibliotecas escritas en C. La sintaxis de Vala es similar a C# y soporta estas características modernas:Interfaces Propiedades Señales Foreach Expresiones Lambda Tipo de inferencia para las variables locales Genéricos Tipos no nulos Gestión de Memoria asistida Gestión de excepciones Complementos Vala está diseñado para permitir el acceso a las bibliotecas de C, sobre todo librerías basadas en GObject, sin necesidad de agregados en tiempo de ejecución (como por ejemplo gtk# en C#, gtkmm en C++). Todo lo que se necesita para utilizar una librería con Vala es un archivo API (.vapi), que contiene la clase y método de las declaraciones en sintaxis Vala. Este archivo .vapi es necesario únicamente en el momento de compilación.valac, el compilador de vala, traduce el código fuente de Vala en código fuente C y archivos de cabecera (.h). Utiliza el sistema de tipo GObject para crear clases e interfaces declaradas en el código fuente de Vala.¿Por qué Vala?Muchos desarrolladores de GNOME desean escribir aplicaciones y librerías en lenguajes de alto nivel, pero no pueden o no quieren usar C# o Java, por diversas razones, por lo que están atascados con la sintaxis de C, sin apoyo para el sistema de tipo GObject. El compilador de Vala permite a los desarrolladores escribir código orientado a objetos con rapidez al tiempo que se mantiene un estándar API de C y ABI y requisitos de memoria baja.Las librearías de C# y Java no pueden ser empleadas del mismo modo que las librerías GObject nativas desde C y otros lenguajes y no pueden aceptarse como parte de la plataforma GNOME. Las librerías hechas en Vala si, ya que si se programa en Vala se esta programando en C.Rendimiento de ValaLas aplicaciones y librerías hechas con Vala presentan un rendimiento menor a librerías y aplicaciones hechas con C puro, pero el rendimiento son semejantes a las hechas con C/GObject. En cuando a los otros lenguajes Vala a demostrado ser superior en la mayoría de las pruebas, en gran parte esto de debe a que una aplicación hecha en Vala no requiere de una maquina virtual como C# o Python. Las pruebas pueden verse aquí: http://code.google.com/p/vala-benchmarks/Para los usuarios de Pythonvalac transforma código fuente en Vala (similar a C#) a codigo fuente en C, pero valac también puede transformar código fuente en Genie (similar a Python, http://live.gnome.org/Genie) en código fuente C. De esta manera los usuario de Python no tendrán que aprender Vala para lograr este cometido. En definitiva, el compilador valac soporta dos lenguajes de programación Vala y Genie. Además, valac permite compilar, en un solo paso, generar la aplicación o librería a partir archivos Genie (.gs) y archivos Vala (.vala).