Vala, un nuevo lenguaje de programación
- por vivab0rg
- 01/05/09
- Software
- 14 Comentario(s)
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 librarí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).
- Download: Vala (repositorio Git)
(Gracias a Matias De la Puente por enviarnos este artículo)
3
Alby Hernández
01/05/2009 21:10
Gambas es basura xD yo intenté usarlo una vez y jamás logré compilar nada después de hacerlo xD
6
elprisionero
02/05/2009 01:03
Para los usuario de Ruby usar Valar http://github.com/danlucraft/valar/tree/master
7
juancarlospaco
02/05/2009 01:12
El problema es el Nombre, te imaginas que venga uno y diga " ...Soy un Programador Vala! " ;p
8
Luis
02/05/2009 02:11
Esto es cración de la necedad de GNOME. Un día terminarán reescribiendo todo en C++ y se tragarán sus palabras XD (ya hacia eso con sus lenguajes orientados a objetos).
9
Fede
02/05/2009 10:15
me tienen harto con la creacion de nuevos lenguajes como si ya no tuvieramos suficiente para aprender
11
WwW
02/05/2009 12:33
"Esto es cración de la necedad de GNOME. Un día terminarán reescribiendo todo en C++ y se tragarán sus palabras XD (ya hacia eso con sus lenguajes orientados a objetos)."
Jeje, supongo que vas de broma. No creo que lleguen a reescribir en C++, principalmente porque lo que aún tiene a GTK+ y a GNOME en flote es que la programación de bindings es muy fácil. Últimamente he visto incluso que hay un crecimiento de software en Python en el proyecto GNOME.
"me tienen harto con la creacion de nuevos lenguajes como si ya no tuvieramos suficiente para aprender"
Dejemos las tonterías: Aprender un lenguaje que tiene muchos parecidos con otro es cuestión de un día, máximo. Los que saben Java aprenden C# en horas, y viceversa. Vala se parece mucho a estos dos.
Otra cosa, por supuesto, es ganar experiencia en el framework; pero en el caso de Vala eso poco importa, teniendo en cuenta que quienes lo aprenderán por lo general lo usarán para programar algo bajo GNOME o GTK+, así que de todas formas habría que familiarizarse con las APIs aún si usaras C, C++, Java, C# o cualquier otro lenguaje.
12
Diego
02/05/2009 14:45
Ya conocía Vala, pero lo de Genie es una buena nueva noticia para mi.
En lenguajes interpretados prefiero 10500 veces Python. Es que simplemente hace buen uso del alto nivel.
Pero lenguajes como C#, java, y toda la basura que tienen la misma complejidad de código que C o incluso mas inleíble con funciones mutantes que solo leyendo el libro "el lado oscuro del lenguaje XYZ" se pueden conocer y que son 50 veces mas lentos que C, simplemente son absurdamente inutiles.
¿Que tiene de bueno un lenguaje interpretado si no abstrae al programador de la complejidad de un nivel mas bajo?
Tanto Vala como Genie serán lenguajes de un nivel medio a alto, ya que aún conservan un fuerte vinculo con C y los tipos de datos.
Y por ahora son ambos lenguajes bastante inmaduros, pero en el futuro hará absurdo programar aplicaciones en lenguajes interpretados. Y estoy seguro de que permitirán alguna forma de customizar el compilador por código agregando sintaxis de conveniencia para generar código que siempre es igual.
Yo veo en esto un gran futuro. Ya que muchos programadores estan perdiendo la familiaridad de la programación con las instrucciones de hardware debido a que dejan de programar en C porque piensan que es difícil. Y así muchos dicen, "ah, pero el hardware de hoy se la banca". Eso es lo mas horrible que se puede escuchar de un programador. Si no se pensara de esa forma, tanto GNOME como kde seguirían siendo tan veloces y ligeros que en sus inicios.
Para lenguajes interpretados solo veo lugar en scripts y en páginas web.
Nuevos comentarios deshabilitados o noticia archivada.
1
WwW
01/05/2009 17:15
De hecho, el lenguaje ya tiene un buen tiempo.
En mi opinión, es una GRAN IDEA que se haya hecho esto. La compatibilidad tan buena que tiene con C y GObject, ser de un nivel más alto que C++, no depender de una máquina virtual, y que no haya riesgo de que Microsoft joda (que existe en estos momentos con muchas cosas que hay Mono y con la implementación de C# 3.0) hacen que el lenguaje sea una MUY buena opción frente a usar C o C++.
Solo falta GTK+ 3.0 para que todo vaya mucho mejor.