Desarrollo de aplicaciones para Ubuntu con Vala

Introducción

Hace ya un tiempo que vengo sopesando la posibilidad de comenzar a desarrollar aplicaciones con Vala, lo cierto es que ya lo he comentado en mas de una ocasión, y finalmente, me he decidido a ello. Y por supuesto, he comenzado con un clásico, convirtiendo Equival de Python a Vala.

Lo cierto es que hasta el momento, no me había lanzado a ello porque me asustaba la posibilidad de no encontrar suficiente documentación para desarrollar las aplicaciones en Vala, pero cual ha sido mi sorpresa al ver que, desde mi punto de vista, la documentación está muy bien estructurada y fácil de localizar. Es mas, yo diría, que mejor que en el caso de Python.

Vala

Pero, ¿que es Vala?. Tal y como definen sus desarrolladores, es un nuevo lenguaje de programación que permite utilizar modernas técnicas de programación para escribir aplicaciones que funcionan con las bibliotecas de tiempo de ejecución de GNOME, particularmente GLib y GObject

El funcionamiento de Vala es cuanto al menos llamativo, desde el punto de vista de que no compila directamente, sino que genera código C, que se puede compilar posteriormente sin necesidad de otras bibliotecas externas aparte de las propias de la plataforma GNOME. Las consecuencias directas de esto son:

  • Las aplicaciones desarrolladas en Vala, en general, tienen un rendimiento similar a aquellas, desarrolladas directamente en C, pero con la ventaja de de que son mas sencillas de escribir y mantener.
  • Las aplicaciones desarrolladas en Vala no pueden hacer nada que no pueda hacer una aplicación en C, pero esto es algo evidente, por lo que he comentado anteriormente, puesto que el compilador de Vala lo único que hace es traducir la aplicación a C.

Mis primeros pasos

Partiendo de que he desarrollado aplicaciones tanto en Java, como en C#, y ultimamente, mucho en Python, lo cierto es que me he encontrado como pez en el agua. Enseguida he conseguido adaptarme a las características de este lenguaje, pero sobre todo, gracias a la ayuda existente tanto para el uso del lenguaje, como para las diferentes bibliotecas existentes:

El problema, quizá lo he encontrado con la formación de paquetes para Debian/Ubuntu. Esto lo tenía completamente resuelto en el caso de Python y aquí tendré que empezar de nuevo. Llevo algunas pruebas (unas pocas) realizadas con Equival, y todavía no he conseguido un paquete para su distribución, espero poder resolverlo pronto. En cuanto lo tenga os comentaré con detalle la forma de hacerlo.

Conclusiones

Llegados a este punto, y como era de esperar, la velocidad y el reducido consumo de recursos de las aplicaciones desarrolladas con Vala a Python, es ciertamente notable. Así, la diferencia de consumo de recursos de Equival en Python a Vala, pasa de aproximadamente 16 Mb a 6 Mb (casi un tercio). Además de esto la velocidad de funcionamiento.

Esto, me lleva a plantearme, una vez haya conseguido solucionar el asunto del empaquetado, la migración de las diferentes aplicaciones a de Python a Vala, pero por supuesto, sin olvidar Python.

11 comentarios en “Desarrollo de aplicaciones para Ubuntu con Vala

  1. PA
    Pavloco hace 11 años

    Que tal, haz escuchado acerca de GENIE, es muy similar a python y funciona igualmente con el compilador de Vala.
    Es decir C# es a Vala lo que Python es a Genie. Si tienes algún conocimiento sería interesante saber tu opinión.

    1. EL
      El atareao hace 11 años

      El problema de Genie respecto a Vala, desde mi modesto punto de vista, es la falta de documentación de Genie, mientras que Vala, tiene un increíble soporte…

      1. GO
        Gontzal hace 11 años

        mira este blog para aprender a programar en genie:
        manualgenie.blogspot.com

  2. JO
    Jose hace 11 años

    Muy buen post ! Lo que no acabo de comprender es como » la elite» de Gnome teniendo Vala, ahora se decanten por JavaScript como lenguaje oficial de desarrollo, o eso creí haber leido…

  3. MA
    Maximus hace 11 años

    Muy interesante, siempre he creído que lo que le falta a C# es poder generar un ejecutable binario y esto lo hace Vala, pero para mí el elegir uno u otro depende del IDE. Programo en C# porque puedo utilizar Monodevelop 4.0 en Ubuntu

    ¿Qué ide utilizas para programar en Vala?

    1. EL
      El atareao hace 11 años

      Estoy utilizando Anjuta, pero no me termina de convencer, aunque no he encontrado otra IDE funcional. Me da la impresión de que las IDEs para Vala están algo abandonadas…

  4. BR
    Bruno Jiménez hace 11 años

    Habiendo desarrollado aplicaciones en Java, C#, python y ahora en Vala. ¿Le recomendarías Vala a alguien que nunca ha programado un entorno gráfico?

    1. EL
      El atareao hace 11 años

      Si no has programado mucho, yo empezaría por Python antes que Vala, mas que nada por la curva de aprendizaje y por la rapidez a la hora de desarrollar aplicaciones. Aunque finalmente me pasaría a Vala.
      Realmente para el entorno gráfico, es independiente del lenguaje, o casi, si utilizas Glade.

      1. BR
        Bruno Jiménez hace 11 años

        Experiencia programando tengo, solo que es en aplicaciones que tienen una «interactividad nula» con el usuario. Y me gustaría ponerles un pequeño entorno gráfico donde los usuarios pudiesen elegir al menos las opciones con las que funcione el programita.
        Por si fuese un condicionante, el código de las aplicaciones es todo C.

  5. AN
    Andres Parra hace 11 años

    No conocia para nada Vala y tiene muy buena pinta, aunque yo estoy empezando con python y creo que deberia centrarme primero en algo y despues con el tiempo ir variando. Vengo de Visual Basic .NET y asqueado de su programación. Tambien conozco PHP

    1. EL
      El atareao hace 11 años

      Desde luego Python es mucho Python, si lo quieres comparar con VB. La ventaja de este segundo sin lugar a dudas es la facilidad de desarrollar aplicaciones gráficas. Llegados a este punto, una vez domines Python, el salto a Vala, es realmente sencillo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *