- Vala est un langage de programmation qui vise à offrir aux développeurs GNOME des fonctionnalités de langage modernes
- Il n’impose pas d’exigences d’exécution supplémentaires et n’utilise pas d’ABI différent par rapport aux applications et bibliothèques écrites en C
- Fonctionnalités de langage modernes prises en charge : interfaces, propriétés, signaux,
foreach, expressions lambda, inférence de type pour les variables locales, génériques, types non nuls, gestion de la mémoire, gestion des exceptions
- Il permet d’écrire du code confortablement avec des abstractions de haut niveau dans une approche orientée objet, et s’intègre profondément aux technologies GNOME comme GObject et GTK
- Il compile le code en binaires natifs très rapides. Il est possible de réutiliser du code C existant dans un programme Vala ou de générer du code C depuis Vala
Compatibilité avec les bibliothèques C existantes
- Vala a été conçu pour permettre l’accès aux bibliothèques C existantes, en particulier celles basées sur GObject, sans liaisons à l’exécution
- Il suffit d’avoir des fichiers API contenant les déclarations de classes et de méthodes en syntaxe Vala pour utiliser une bibliothèque avec Vala
- Vala est actuellement fourni avec des bindings pour GLib et GTK+
Le compilateur Vala valac
valac est un compilateur auto-hébergé qui convertit le code source Vala en code source C et en fichiers d’en-tête
- Il utilise le système de types GObject pour générer les classes et interfaces déclarées dans le code source Vala
- La syntaxe de Vala est similaire à celle de C#, tout en ayant été adaptée pour mieux correspondre au système de types GObject
Utiliser en C des classes et méthodes écrites en Vala
- Il suffit d’installer les fichiers d’en-tête générés à partir d’une bibliothèque Vala pour qu’une application C puisse accéder de manière classique à l’API basée sur GObject de cette bibliothèque Vala
- Le parseur Vala étant conçu comme une bibliothèque et toutes les informations de compilation pouvant être utilisées lors de la génération de bindings, il devrait aussi être facile d’écrire un générateur de bindings permettant à des applications écrites en C#, par exemple, d’accéder à des bibliothèques Vala
L’avis de GN⁺
- Vala présente l’avantage d’être un langage orienté objet à la syntaxe proche du C et bien intégré aux technologies GNOME. Il est particulièrement adapté au développement d’applications GUI et peut facilement s’interfacer avec GTK, Granite, etc.
- Vala est un langage spécialisé pour le développement de l’environnement de bureau GNOME, et son utilité dans d’autres domaines semble limitée
- Avec une syntaxe proche de C#, Vala aidera les développeurs familiers de C# à participer au développement GNOME
- L’objectif de Vala, qui consiste à préserver la compatibilité avec les bibliothèques C existantes tout en prenant en charge des fonctionnalités de langage modernes, est rafraîchissant, mais cela risque de limiter l’originalité propre du langage
- Quand on regarde les projets Vala, on voit surtout beaucoup d’applications de bureau pour GNOME ou elementary OS, mais c’est aussi un langage utilisable pour la programmation serveur. Cela dit, l’écosystème y reste encore assez limité
- Il est difficile de savoir à quel point Vala sera largement adopté, mais dans l’écosystème GNOME, remplacer C par Vala pourrait apporter un gain de productivité appréciable
- Il existe aussi un langage nommé Genie, dont la syntaxe est proche de Vala et qui peut utiliser les technologies GNOME. Il se distingue par une délimitation des blocs de code par indentation, comme en Python. Cela peut constituer une alternative à Vala
1 commentaires
Avis Hacker News
valac).