Skip navigation.

Vala 0.0.6 released

Bag of Software
Bag of Software

We are pleased to announce version 0.0.6 of Vala, a compiler for the
GObject type system.

Changes since 0.0.5
* Improve interface support.
* Support do loops.
* Improve array support.
* Improve enum support.
* Add automated testing infrastructure.
* Fixes for prefix and postfix operators.
* Add more types to GLib bindings.
* Many bug fixes.

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.

valac, the Vala compiler, is a self-hosting compiler that translates
Vala source code into C source and header files. It uses the GObject
type system to create classes and interfaces declared in the Vala source
code. It's also planned to generate GIDL files when gobject-
introspection is ready.

The syntax of Vala is similar to C#, modified to better fit the GObject
type system. Vala supports modern language features as the following:

* Interfaces
* Properties
* Signals
* Foreach
* Lambda expressions
* Type inference for local variables
* Generics [PLANNED]
* Non-null types [PARTIAL]
* Assisted memory management
* Exception handling [PLANNED]

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
experimental 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.

More information about Vala is available at

http://vala.paldo.org/

The Vala Team

Jürg Billeter and Raffaele Sandrini

Pretty nice but did you see this ...

Great work so far, is it possible to make sure to also maintain a high-level API (Such as Gtk#) and not start to use identifier_identifer_...?

I think GNOME 3 should think about moving high-level (Vala and Mono clearly show the interest of people in such). It's way easier with high-level to debug, code, maintain and extend software than it is with a bunch of monster Macro C-OOP code. ;)

C is "smaller and faster"? There have been some benchmarks recently if I remember between C++ KDE and GNOME. Both had pretty equal results which I would not have expected due the "advantage" of using C.

I think that negates any such arguments; the benefits of maintainability and easier "jump-start" for new avid GNOME developers even outweights this by far in my pov.

Another candidate could be D as it is a native sytem language and has a neverending list of goodies such as C ABI compatibility, cross-platform, inline asm, OOP, automatic documentation generation, garbage collection, unittesting, contracts, templates, gcc frontend, ...

D Programming Language
Gtk D Bindings Example Code
GCC D Compiler

Ah, mobile systems, right!
D on the Nokia 770