vala
// ExampleApp.vala
public class ExampleApp : Gtk.Application {
public ExampleApp () {
Object (application_id: "com.example.App");
}
public override void activate () {
var win = new Gtk.ApplicationWindow (this);
var btn = new Gtk.Button.with_label ("Hello World");
btn.clicked.connect (win.close);
win.child = btn;
win.present ();
}
public static int main (string[] args) {
var app = new ExampleApp ();
return app.run (args);
}
}
// Compile command (requires gtk4 package to be installed):
// valac --pkg gtk4 ExampleApp.valaPourquoi Vala?
- Syntaxe claire et familière - Basée sur C, C# et Java
- Orienté objet quand vous en avez besoin - Support intégré pour les classes, les interfaces, l'héritage et plus encore, mais vous pouvez également utiliser des fonctionnalités de programmation procédurale à la place.
- Gestion automatique de la mémoire sans surcharge - Vala utilise le comptage de références par défaut, vous n'aurez donc pas à vous soucier de la gestion de la mémoire dans la plupart des programmes
- Interopérabilité C - Utilisez des bibliothèques C basées sur GObject via des fichiers de liaison ou appelez des fonctions C directement depuis Vala
- Compilation en binaires natifs - Des temps d'exécution extrêmement rapides et aucun environnement de machine virtuelle ou d'exécution requis pour l'exécution
- Fonctionnalités de langage modernes - Inférence de type, sécurité null, génériques, lambdas, async/await
- Support de première classe pour GObject et GTK - Optionnel, mais imbattable quand vous en avez besoin
Que voulez-vous coder ?
- Applications Graphique
- L'intégration parfaite de GTK, Libadwaita et Granite rend le développement super simple. Publiez facilement vos applications sur Flathub sans paquets trop lourd.
- Programmes CLI/TUI
- Utilisez une grande bibliothèque standard et utilisez des charges d'autres bibliothèques disponibles pour une utilisation dans Vala.
- Librairies
- Fournir des liaisons pour d'autres langages et de la documentation API sans travail manuel. Ainsi que les liaisons dynamiques et statiques des libs sont prises en charge
Blog

Vala Documentation Updates - June 2026
Colin Kiama
Vala Documentation Updates - May 2026
Colin Kiama
ValaBot: an AI coding assistant fine-tuned for Vala
Sam CowenVersions actuelles
- Vala 0.56.17 (Stable à long terme)
- Vala main (Développement)
Feuille de route
Vitrine
TubaBrowse the Fediverse
WorkbenchLearn and prototype with Vala and other GNOME technologies
DinoA modern open-source chat client for the desktop. Focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.
MonitorManage processes and monitor system resources
TextSnatcherCopy Text from Images with ease, Perform OCR operations in seconds.
TimeshiftSystem restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots.
CrownCrown is a complete and cross-platform game engine designed for flexibility, performance, and fast-iterations.
communauté
- Forums
- Posez des questions relatives à Vala dans les forums GNOME sous l'etiquette vala
- Discourse Forums
- Internals Chat
- Parlez aux développeurs ou posez des questions sur la façon de contribuer à Vala, Il dispose également d'un canal IRC.
- Canal Matrix
Réseau sociaux
Suivez le projet Vala sur ces plateformes