El lenguaje de programación Vala

Vala es un nuevo lenguaje (2006) de programación muy parecido a C# y Java. Vala fue creado principalmente para el ambiente Linux pero por lo que me han dicho en los comentarios Vala también funciona en Windows, y por lo general sin modificar lineas de código extras. También Vala funciona en todas las plataformas que son soportadas por GLib por lo tanto es multiplataforma.

Al parecer muchos de los programadores de Gnome están cansados de programar aplicaciones grandes en C, por que muchos dicen que son un dolor de cabeza. Pero parece que los desarrolladores de Gnome prefieren Python un lenguaje interpretado en ves de C. El lenguaje Vala posee características de lenguajes modernos como C# y además con el puedes generar código C escribiendo esta linea en la consola:

Código:
valac -o ejemplo ejemplo.vala -C

Y sin la bandera “-C” te genera el ejecutable solamente.

Genera código en C y luego un ejecutable de C. Esto es muy interesante por que un programa que no usa una maquina virtual es mucho más rápido que los que la usan como C# o Java. Con Vala podemos disfrutar de la eficiencia de los lenguajes como C y C++ con las características de lenguajes modernos como C#. También se dice que los compiladores de C/C++ son los mejores compiladores actuales por eso son los más usados para el desarrollo de juegos con efectos gráficos de última generación, el motor de búsqueda de Google esta escrito en C.

Veamos un programa escrito en Vala:

Código:
// ejemplo.vala
using GLib;

public class Test.HelloObject : GLib.Object
{

public static void main (string[] args)
{
stdout.printf(“No hay viento favorable para el que no sabe donde va\n”);
}
}

Se compila con:

Código:
valac -o ejemplo ejemplo.vala

Lo malo es que hay muy poca documentación sobre las APIs para este lenguaje por lo que hay que ir viendo la documentación que esta hecha para otros lenguajes. Pero tampoco es una tarea tan fuerte ya que la diferencia entre lenguajes de programación no es mucha.  No hay mucha diferencia si se busca documentación de las APIs para C++ o C#, por ejemplo.

También los invito a leer los comentarios, hay muy buenas opiniones al respecto.

Agradecimientos, por la corrección de algunos errores de este artículo:

Edwinspire

txasatonga

Algunos link:

http://knocte.blogspot.com/2007/08/vala-lo-mejor-de-los-dos-mundos-c-c.html
http://www.glib.org.mx/article.php?story=20090118173114777&mode=print

http://es.wikipedia.org/wiki/Vala_(lenguaje_de_programaci%C3%B3n)

En ingles:
http://live.gnome.org/Vala

25 thoughts on “El lenguaje de programación Vala

  1. Hola.
    quisiera dar mi opinion, y no va con el animo de hacer polemicas ni nada ^^

    No creo que lo que dices de crear ejecutables escritos en C# para linux, sea algo a lo que dedicarle esfuersos… despues de todo, mira que mono no va a la par con las espesificasiones que van saliendo cada ves de C#, y de aqui a que tengan algo… A lo que si me parece que debiera de darsele más empeño, es a hacer funcionar vala en windows (no creo que sea dificil: Glib funciona el windows, además, si traduce el codigo a C, seguro q compila). no solo seria bastante tentador programar en vala, sinó que, ahi si, seria una competencia para el C#, en cuanto a POO en windows.
    Supongo que muchos optarian programar en vala, a hacerlo en C o C++.

    Saludos!!!

    • Si, Vala como lenguaje de programación es mas avanzado que C y C++ y al que no le guste que programe en ensamblador xD

  2. Gracias por comentar =)

    Pero si se puede crear ejecutables en C# para Linux, con mono. Mira: https://writkas.wordpress.com/2009/07/19/%C2%BFcomo-compilar-en-mono-con-cairo-y-c/

    Y en Mono se puede compilar en C# 3.0, no se que versión tendrán en .NET. Pero C# 3.0 es la versión máxima que conozco. Si igual Mono esta avanzado, si ya funciona MonoDevelop en Windows, con las herramientas tipo Visual Basic y mas.

    Y usar Vala en Mono sería excelente. Pero a los Winderos se asustarían por que es un lenguaje un poco diferente a C#. Mono se centra mucho en que los winderos hagan aplicaciones multi plataforma, es por que los winderos superan mucho, en numero, a los linuxeros. Y también a Vala le falta un binding para que se pueda compilar en Mono. Pero hacer el binding seria malvado, jejeje. Pero con eso remplazarían gran parte de .NET xD.

    También sería ideal que pudieran portar aplicaciones echas en C#, VB.NET, etc. Para que funcionen en Vala y se puedan traducir a C. O que hubieran herramientas para eso. xD

    Si hacer que Vala funcione en Windows también seria ideal xD,

    Saludos

  3. Interesante, muy iteresante!.Buen post!.
    Aunque debo señalar que C#(framework) esta por la 3.5 y en poco tiempo sale 4.0, y si, Mono esta muy por detras de .net, aun mas cuando se trata de WPF que parce ser se convertiré en el preferido de window.

    En algunas semanas podré echarle una ojeada a esos tutoriales.

  4. Abra que confiar en el proyecto Mono para que se ponga al día con las nuevas actualizaciones de .Net.

    Mono no es solo .Net sino que también es un buena plataforma de desarrollo especialmente para Linux. Ya vemos aplicaciones multi plataforma como Banshee (para Linux, Mac OS X), Tomboy (Linux, Mac OS X, Windows) MonoDevelop es excelente (Linux, Mac OS X, Windows). Bueno MonoDevelop tiene algunos problemas en Windows ya que no se a sacado una versión estable.

  5. Saludos a todos. Voy ya varios meses desarrollando software multi plataforma usando c# y mono. Pero la verdad quiero mudarme a software totalmente libre. Alguien sabe como compilar un software en vala se en windows?

    • Creo que vala no esta pensado para windows, pero no se si ahora habrá cambiado el panorama.

      Pienso que si vala genera codigo en C, desde ese código se puede portar las aplicaciones a windows. Por que en C hay varias librerías que son o tratan de ser multiplataforma, pero no se que tan difícil será.

      Y si te refieres a software libre, casi siempre se refiere a software que usa licencias GPL o LGPL. Pero que sea libre no quiere decir que tenga menos clausulas que cualquier otra licencia. Osea que existen licencias mas permisivas que las GPL o LGPL , por ejemplo la licencia MIT o X11 permite que hagas prácticamente lo que queras con ese programa, cosas como privatizar, luego mejorar y vender. Cosa que no permite las licencias GPL y LGPL.

      Mono es Open Source, y open source no es necesariamente software libre (GPL y LGP). Pero casi todas las licencias open source tienen una buena ética. Así que no es nada malo.

      C Sharp es un lenguaje estándar publicado por microsoft, pero ellos se guardan el derecho a modificar el lenguaje, etc. Al igual que oracle (que ahora posee la empresa sun microsystem) lo hace con el lenguaje java, se reservan el derecho a modificar el lenguaje. creo xD

      • Gracias.
        El software que he desarrollado me ha tomado mas de un año, (esque no sabia nada de c#, aprendi en el camino, ahora son cerca de 30000 lineas de codigo), una aplicacion muy basica para comunicarme con el puerto serial en c# lo tengo en unos cuantos minutos, pero con vala se me ha hecho muy muy dificil encontrar funciones equivalentes a las que uso en c#, tengo que hecer malavares para conseguir lo mismo.
        Vala tiene mucho camino que recorrer, y yo aun mas, pero dfinitivamente voy a migrar poco a poco todo a vala.

      • Bueno… ha pasado mas de un año que puse el anterior comentario y le cuento que me ha ido muy bien, VALA s exelente, cuanto mas aprendo mas rapido m es desarrollar mis software, VALA No es dificil, es cuestion de buscar informacion y ver los jemplos escritos en C basados en GLib. Ver la documentacion escrita para C me ha sido de gran ayuda.

  6. Buenas,

    Existe un port de Vala a Windows, y funciona muy bien. El unico problema es la aun corta disposicion de VAPI’s. Pero probad con un programa de Vala con Gtk+ en Linux y Windows. Compila perfectamente en los dos.

    Un saludo.

  7. Saludos.
    Bueno, les cuento que tengo una aplicacion para envio de sms en forma automatica, usa mysql y esta programada en c#. Tambian hay una aplicacion para alarmas comunitarias. De momento funciona bien en Linux, parcialmente lo hace en windows.
    El asunto es que quiero migrar todo ese codigo a vala, algunas partes muy pequeñas ya las he conseguido.
    Hay varios ejemplos en la pagina de gnome, pero, son muy basicos.
    Por ejemplo no me funciono conectar con SQlite, no hay ejemplos para MySQL, no hay documentacion acerca de como serializar, en fin, hasta donde lo probe me parece exelente, compila a codigo maquina y ya no depende de MONO.
    Algunas punciones de vala estan disponibles para windows y para linux, otros solo para linux, no todos los programas hechos en vala corren en ambas plataformas, ya lo he probado.
    Bueno espero seguir avanzando un poco mas con vala, hasta pronto.

    • Hola Edwinspire.

      Que bueno que nos informas de que Vala está mas avanzado. ¿Pero en Vala crees tu que hacen falta más bindings? o ¿crees que el problema es la documentación de Vala?

      Gracias por tus comentarios 🙂

      • Creo que lo que falta es mas dicumentacion, ejemplos, tutoriales, etc, los tutoriales que he encontrado son muy basicos.
        Pero ya que vala usa GLib se puede usar su domentacion como referencia.

  8. Saludos.
    Bueno sigo aprendiendo mas de vala, y a pesar de que no hay buena documentacion me voy dando modos para avanzar.
    Alguien sabe como vesclar codigo vala y C, hay una libreria en C que la quisiera usar junto con Vala pero no se como hacerlo aun.
    Tambien si alguien sabe como programar un cliente MySQL en C o vala pero en windows.
    En Linux ya lo he logrado con MySQL, pero en wondows no hay binding y tampoco informacion.

    • Con Mysql si hay cliente para vala, h instalado valac 0.12 y tiene un problma, el codigo generado no es correcto y da rrores al intentar compilar, lo que yo hago es en LINUX genero el codigo en C y con ese codigo compilo en Windows.
      Tambin hay que agregar unos include en es archivo en C, no recuerdo que linea es, creo qu es algo referente a winshock o algo asi, no lo tengo a la mano. Pero resumidas cuentas si funciona, lo h probado.

  9. Hola

    Revisen el Sistema Hospitalario OSIRIS, esta construido bajo mono+GTK#+Glade y motor de bases de datos postgresql, es una aplicacion interesantey bastante grande

    Saludos

  10. Libreria PDU, escrita en VALA para codificar y decodificar mensajes de texto en formato PDU. Compatible con Windows y Linux.

  11. Gracias por el interés en el post, voy a empezar a actualizarlo 🙂

    Me dan ganas de trabajar en Vala… pero en estos momentos estoy trabajando en otras cosas..

    Un saludo 🙂

  12. Vala es un muy buen lenguaje, en evolucion. En github y en otros lugares hay ya una gran cantidad de proyectos y librerias creadas. Invito a todos a aprender este lenguaje, a los que vienen de C# no les será nada dificil.
    La información en la red tambien se está ampliando y blogs como este no ayudan a darlo a conocer con mas fuerza.
    Para quienes les interese Vala pueden visitar https://github.com/edwinspire o http://edwinspire.com y encontrarán algunos de mis trabajos hechos en este lenguaje.

  13. Necesito ayuda, de donde saco más información, por que por ejemplo necesito la función limpiar buffer en Vala, he probado con las de C y C++ y no hay manera, ya no se que más probar, y no encuentro más información, ni ayuda.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s