Skip to main content

About Vala

What is Vala?

Vala is a programming language with clear syntax inspired by C, C# and Java; automatic memory management; and modern language features. It compiles to C and produces binaries that run directly with native performance, without needing an interpreter, garbage collector, or any special environment setup. Vala provides excellent interoperability with C, enabling large parts of the existing ecosystem of C libraries to be used seamlessly from Vala.

Vala is designed to work with the GObject type system and the wider GNOME platform. Classes, properties, signals, interfaces, asynchronous methods, and other GObject concepts are integrated directly into the language syntax. Vala lets you write GObject code in a concise and readable form, while the compiler generates the underlying C code, including the usual GObject boilerplate.

Vala can also be used independently of GObject and GLib. In this role, it functions as a convenient, lightweight language, suitable for implementing command-line tools, services, libraries, and other kinds of software. You can use as much or as little of the GNOME stack as your use case calls for.

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)