Aviva Directory » Computers & Internet » Programming » Vala

First released in 2006 and still under active development, Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system.

Vala was originally created as a higher-level alternative to C for developing GNOME applications, although it is also used for general-purpose applications.

Designed to be compiled into C code, Vala is syntactically similar to C# and includes notable features such as anonymous functions, signals, properties, generics, assisted memory management, exception handling, type inference, and foreach statements.

Vala uses high-level abstractions without imposing additional runtime requirements and without using a different ABI, as would applications and libraries written in C. Vala uses the GObject type system and has additional code generation routines that make targeting the GNOME stack simple.

Vala is designed to allow access to existing C libraries, particularly GObject-based libraries, without the need for runtime bindings. All that is needed in order to use a library with Vala is an API file, containing the class and method declarations in Vala syntax. Vala comes with bindings for GLib, GTK+, and others from the GNOME Platform.

According to a GNOME developer, "Vala is a 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's syntax is inspired by C#, and indirectly by Java, but unlike C# and Java, Vala does not attempt to provide memory safety. Vala is compiled to C, and the C code is compiled with GCC using typical compiler flags. Basic operations like integer arithmetic are directly mapped to C constructs, so the recommendations in Defensive Coding in C apply to Vala. Other influences were C, C++, D, and Boo.

Vala was conceived by Jürg Billeter and implemented by Billeter and Raffaele Sandrini, who were looking for a higher-level alternative for developing GNOME applications rather than C. They liked the syntax and semantics of C# but didn't want to use Mono, so they finished a compiler in May of 2006. Originally, it was bootstrapped using C, but with the release of version 0.1.0 in July of 2007, the Vala compiler became self-hosted.

Vala is a cross-platform language but is currently supported by source code only. It is licensed under the GNU Lesser General Public License (LGPL), a free software license published by the Free Software Foundation.



Recommended Resources

Search for Vala on Google or Bing