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?#

Productive#

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

Performant#

Vala code compiles down to fully native binaries.

Statically-Typed#

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

Integrative#

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.

Familiar#

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.