Skip to main content

About Vala

What is Vala?#

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

Vala supports modern language features such as:

  • Interfaces
  • Properties
  • Signals
  • Foreach statements
  • Lambda expressions
  • Type inferencing for local variables
  • Generics
  • Non-null types
  • Assisted memory management
  • Exception handling
  • Type modules (Plugins)

What kind of language is Vala?#


With Vala, you can get up and running quickly, thanks to convenient features like lambda expressions, exception handling, interfaces and generics.


Vala code compiles down to fully native binaries.


Vala helps you write type-safe code without the verbosity, thanks to type inference.


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.