lunes, mayo 18, 2009

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 Vala
Las 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 Python
valac 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).

4 comentarios:

  1. Es un lenguaje que promete tener mucha aceptacion...
    tiene lo que otros lenguajes no tienen

    ResponderBorrar
  2. Asi es es muy interesante

    ResponderBorrar
  3. Anónimo9:43 a.m.

    Es justamente lo que he buscado, java me gusta mucho pero no me gusta su rendimiento en el escritorio, vala es estupendo

    ResponderBorrar
  4. Para los que quieran aprender un poco de código Genie.
    Ver aqui:
    www.manualgenie.blogspot.com

    ResponderBorrar