1. Introduction#

Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject type system.

Vala is designed to allow access to existing C libraries, especially GObject-based libraries, without the need for runtime bindings.

All that is needed to use a library with Vala is an API file, containing the class and method declarations in Vala syntax.

Vala currently comes with bindings for GLib and GTK+ and many others from the GNOME Platform.

Vala can also be used to create C libraries too.

The syntax of Vala is inspired by C# and Java, so if you have used either of those, you’ll seamlessly adapt to writing Vala code.

1.1. Why Vala?#

  • Comfortably write your code in an object-oriented way with high level abstractions, while having access to deep integrations with GNOME technolgies such as: GObject, GTK and more!

  • Vala compiles code down to blazingly fast, fully native binaries. You’re also able to reuse existing C Code in your Vala programs as well as generate C Code from Vala.

  • Vala is free and open-source software. It has a great community that contributes to the compiler and develops lots of tooling.

1.2. Who is this tutorial for?#

This tutorial is for anybody intrested in learning Vala. This tutorial is written with the assumption that the reader is a beginner at programming so we do make an effort to explain programming concepts and practices throught the tutorial.