New Native Languages, May 08, 2012 D, Go, Vala, and Rust: A new generation of native languages.
Vala takes most of the core OO features of C++, simplifies them, and adds them to C. It uses the Gnome GObject system to create objects and greatly hides the usual complexity associated with that library. Vala also adds exception handling, type inference, and memory management. The latter requires that you use pointers and objects from GObject and Glib, the universally ported C libraries that form the core of the GNOME package. Because of this integration, Vala comes with a huge set of ported libraries and a good set of collections that have been tested through years of use. In this regard, it has the largest and most mature libraries of the languages I discuss here. It has one additional unique feature: It compiles to C, not to object code. This feature, reminiscent of the earliest C++ compilers, underscores what Vala is: a cleaned-up and improved version of C++ with most of the complexity and a lot of the syntactical cruft removed. In most Vala toolchains, a C compiler is built in, so builds do generally go to native code, but this is a convenience, not a language feature.