Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements, and without using a different ABI compared to applications and libraries written in C.
Vala is designed to allow access to existing C libraries, especially GObject-based libraries, without the need for runtime bindings. Each to be used library requires a Vala API file at compile-time, containing the class and method declarations in Vala syntax. Vala currently comes with incomplete bindings for GLib and GTK+. It's planned to provide generated bindings for the full GNOME Platform at a later stage.
Using classes and methods written in Vala from an application written in C is not difficult. The Vala library only has to install the generated header files and C applications may then access the GObject-based API of the Vala library as usual. It should also be easily possible to write a bindings generator for access to Vala libraries from applications written in e.g. C# as the Vala parser is written as a library, so that all compile-time information is available when generating a binding.
Product's homepage
Here are some key features of "Vala":
· Interfaces
· Properties
· Signals
· Foreach
· Lambda expressions
· Type inference for local variables
· Non-null types [PARTIAL]
· Assisted memory management
What's New in This Release: [ read full changelog ]
· Add udisks2 bindings.
· Bug fixes and binding updates.