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.