Vala como alternativa para desarrollo de aplicacion de escritorio opensource

21st Aug 2014Posted in: Uncategorized 5

Hace un mes estube en busqueda de alternativas opensource para el desarrollo de aplicaciones de escritorio multiplataforma, ya que despues de una gran decepción al utilizar mono y sus aires de privacia en relación a los estandares del lenguage emitido por Microsoft y su estandar ECMA y ademas su tardia actualización para soportar los librerias graficas GTK+ 3, me dicidí buscar alternativas.

Si bien encontré entre las más comunes los lenguages de programacón, como c, c++, php, python, perl, etc y con integracion con librerias gráficas com gtk+ y qt entre las más populares. pero por ahi me encontre con un lenguage que hasta el nombre me parecio algo gracioso, este se llamaba Vala.

Pues Vala me levanto el interes y me puse a googlear y como desarrollador lo primero que busque fue su documentación tećnica sobre este y me encontre con una gran sorpresa, la documentación es bastante buena, estructurada y facil de comprender con su respectiva integración con las librerias gráficas de forma nativa con GTK+ 3,  que son las que utiliza el entorno Gnome de Linux.

Pues, visto esto me puse en la busqueda de más información y tutoriales para aprender del lenguage y resulta que la sintaxis que utiliza se asemeja bastante con C# y es un lenguage totalmente orientado a objetos con bastantes librerias utiles para el acceso a archivos, bases de datos, xml, webservices, rest api, etc.

Asi que me puse manos a la obra con un proyecto personal que ya tenia planeado y empeze con la escritura de codigo, la verdad es que ya hace basante tiempo soy desarrollador para entornos linux utilizando gtk+ y ansi c y mono, asi que el paso a vala no me represento muchos problemas, y pues empeze a contruir la aplicación mas rapidamente de lo que creia, a comparación de utilizar ansi c + gtk+, en tan solo 4 dias ya tenia la estructura de codigo e interface gráfica armada utlizando el poder de GTK+3, aqui les dejo un pantallazo.

create-customer

Al cabo de 12 dias, ya tenia mi proyecto totalmente construido y haciendo uso de tecnología cloud, conectado como cliente a un Rest API que porporciona datas JSON.

Pues la verdad es que quede muy satisfecho con el lenguage y los mas sorprendente es que con un poco de conocimientos de los compiladores GNU, pude realizar la compilación para windows, asi es amigos, lo tengo funcionando en windows tambien, aqui les dejo el pantallazo de mi client corriendo bajo windows 7 dentro de una maquina virtual Virtual Box.

Screenshot-3

Pero no todo es color de rosa, mientras desarrollaba mi proyecto me encontre con algunos obstaculos, si bien no son totalmente impedimentos para el desarrollo son utiles para el desarrollo agil de un sistema, vala no tiene ningun IDE o EID ( Entorno Integrado de desarrollo) oficial, vi uno que es el VALIDE, pero que esta descontinuado, solo soporta hasta vala 0.14, y actualmente vala esta en su versión 0.25, asi que como buen desarrollador linux desarrollo mi proyecto con un editor de textos que soporta la sintaxis de Vala, es Geany v1.22.

De momento ese fue mi unico contra tiempo y mi primera incursion con Vala, pero habra que seguir desarrollando proyecto muchos mas grandes y ver hasta donde va el potencial de este lenguage.

En conclusion

Vala es un lenguage con bastante camino por recorrer pero con muy buenas perspectivas y mucha mśs rapidez de ejecución a diferencia de java y c# que tienen su maquina virtual (byte code y CLI) y los más importante, es libre.

Vamos amigos, apoyemos el software libre de libermonos de una vez de las ataduras a las que nos somoten Microsoft en especial.

Ventajas

  • Es opensource
  • Su ejecución es mucho más rapido ya que no utiliza maquina virtual, los compilados son librerias y ejecutable nativas.
  • Tiene documentación, no demasiada pero tiene lo necesario para ser un lenguage relativamente nuevo.
  • Es multiplaforma
  • El codigo vala puede ser traducido a lenguage C con mucha facilidad.
  • Las librerias generadas pueden ser cargadas por cualquier lenguage.
  • Lenguage Orientado a objetos y estructurado.

Desventajas

  • No cuenta con un IDE de desarrollo

Aqui les dejo algunos enlaces que pueden ser de su interes, la documentacion esta en ingles, pero vamos que somos hombres de tecnología.

En mi próximo articulo hablaremos sobre la infraestructura tecnológica de las empresas y el software libre.

Hasta la próxima!!!



Related Posts

5 Responses

  1. Michael Martin says:

    Hola,
    Si hay un IDE para vala. El equipo de Elementary OS, (http://elementaryos.org/), han construido todas las aplicaciones en vala. Tienen un IDE para vala, Euclide.

    https://launchpad.net/euclide

    En el siguiente enlace se puede descargar Euclide para Ubuntu/Elementary OS:

    https://launchpad.net/~elementary-os/+archive/ubuntu/daily

    Saludos

  2. Hola, existe una herramienta (sí, creada por mi. Hay que barrer para casa 🙂 ) que simplifica la creación de proyectos en Vala. Se trata de Autovala, y básicamente permite generar de manera MUY automatizada los ficheros CMAKE para un proyecto. Básicamente él sólo busca los ficheros .vala y los revisa para, en base a las instrucciones “using” determinar automáticamente qué módulos se necesitan. También se encarga de buscar los ficheros de glade, iconos, imágenes… y determina automáticamente donde hay que instalarlos (teniendo en cuenta, incluso, el tamaño de la imagen en el caso de iconos). También compila automáticamente páginas man a partir de muchos formatos, genera los ficheros .po y los compila a .mo…

    Si te animas a probarlo, está disponible aquí: http://www.rastersoft.com/programas/autovala_es.html

    (perdón por el autobombo)

  3. Pedro José Piquero Plaza says:

    Pues la verdad es que llevo un tiempo echándole el ojo a ese lenguaje, pero no me he puesto por falta de tiempo.

    Pero creo que voy a tener que subirle la prioridad, sobretodo viendo las capturas de pantalla que has puesto. Según tengo entendido el equipo de ElementaryOS también programo el escritorio en Vala.

Leave a Reply