Introduction à Vala (1ère partie)

Vala, la programmation facile sous Ubuntu 9.10

Introduction

Vala est un langage qui présente de fortes similitudes avec C# au niveau de sa syntaxe. Il présente cependant des différences notables avec le langage de Microsoft. Contrairement avec ce qui se passe avec un compilateur C#, le compilateur Vala ne génère pas du code intermédiaire destiné à être exécuté par une machine virtuelle, mais bien du code C, qui sera ensuite compilé normalement par Gcc.

Le code obtenu est donc natif et très performant. Vu ainsi, Vala pourrait se positionner dans le monde Linux comme un C# sans ses inconvénients. Attention cependant, Vala ne dispose donc pas d'un garbage collector, ce qui implique une plus grande rigueur de la part du développeur quant à la gestion de la mémoire.


Installer Vala sous Ubuntu 9.10

Pour installer Vala, démarrez une nouvelle session du terminal.

Pour commencer, nous allons ajouter le Team Vala dans la liste de nos fournisseurs de packages. Nous commencerons par ajouter la clef GPG (GNU Privacy Guard, une alternative à PGP) de la PPA (Personal Package Archive) du Team Vala :

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7DAAC99C

Nous ajoutons ensuite la PPA dans la liste de nos Software Sources :

sudo add-apt-repository ppa:vala-team

Nous mettons à jour la liste des packages/versions disponibles :

sudo apt-get update

Et enfin, nous lançons le téléchargement du compilateur Vala :

sudo apt-get install valac vala-utils vala-doc valac-dbg

Pour tester si Vala est bien installé, tapez l'instruction suivante :

valac --version



Utiliser des librairies C dans Vala

Vala ne serait rien sans un accès à la riche bibliothèque de librairies du monde Linux. Prenons par exemple Gtk+ et Glib, qui sont à la base de l'interface graphique Gnome. Pour utiliser une librairie externe en Vala, vous aurez besoin d'un fichier de description de son API (".vapi") et du package de développement de Ubuntu. Ces fichiers se trouvent dans le répertoire /usr/share/vala/vapi.

Nous allons maintenant récupérer certains des packages les plus utiles pour développer une application avec Vala :

sudo apt-get install libglib2.0-dev libgtk2.0-dev libpoppler-glib-dev libdbus-glib-1-dev libgstreamer0.10-dev libglade2-dev libsqlite3-dev libgnome-desktop-dev libgnome-menu-dev libgnomevfs2-dev

Nous allons également installer libGee, qui ajoute toute une série de nouvelles collections (list, set, map...) à Glib.

sudo apt-get install libgee-dev


Installer un éditeur pour Vala

Ubuntu est livré par défaut avec l'éditeur gEdit. Vous pouvez installer un plugin (vtg) pour associer et coloriser le code Vala dans ce dernier.

sudo apt-get install gedit-vala-plugin vala-gen-project

Vous pouvez également installer un environnement de développement plus complet baptisé Val(a)IDE. Pour récupérer ce dernier, utilisez l'instruction suivante :

sudo apt-get install valide


Un premier programme

Nous allons maintenant écrire une première application en Vala. Celle-ci va utiliser la librairie Gtk+ pour créer une fenêtre comportant un unique bouton. En cliquant sur ce bouton, l'heure s'affichera dans ce dernier. Je vous laisse parcourir le code ; la similitude avec C# est frappante.

using Gtk;

public class SampleDialog : Window {
private Button btnShow;
private Time time = Time.local(time_t());

// Constructor
public SampleDialog () {
this.title = "First Vala Program";
this.set_default_size (300, 50);
this.position = WindowPosition.CENTER;
this.destroy.connect (Gtk.main_quit);

btnShow = new Button.with_label ("Show time");
btnShow.clicked.connect (btnShow_clicked);

this.add (btnShow);
}

// Event handler for click event
private void btnShow_clicked(Button source) {
source.label = "%02d:%02d".printf(time.hour,time.minute);
}
}

// Main program entry point
int main (string[] args) {
Gtk.init (ref args);

SampleDialog window = new SampleDialog ();
window.show_all ();

Gtk.main ();
return 0;
}



Pour compiler ce programme, tapez la ligne suivante :

valac --pkg gtk+-2.0 clickme.vala

Pour lancer le programme, tapez ./clickme ou ouvrez l'explorateur de fichiers Nautilus et double-cliquez sur l'exécutable.




Conclusion

Voici qui clôture ce premier contact avec Vala sous Ubuntu 9.10. S'il n'est pas encore mature, Vala s'avère être un langage très riche. Conçu à l'origine pour la programmation Gnome, il pourrait devenir un langage généraliste très populaire sous Linux, sans imposer la lourdeur de l'installation d'un environnement runtime dédié.

Pour plus d'informations :
http://live.gnome.org/Vala
(attention à la majuscule, vous êtes sous Linux ;-)

Commentaires