Vala's Jürg Billeter on GNOME's Newest Development Platform

dcp's picture

The GNOME project has a new tool coming into its own that enables developers to produce GObject libraries using the high-level Vala, as if they had used C. Blue GNU got Jürg Billeter to discuss the up and coming Vala platform.

If you want to develop GNOME applications using a high-level language, but can't or won't use C3 or Java, then you can look forward to GNOME's Vala development platform. Vala offers the advantages of C3 and Java, but with improved performance, low memory requirements, and looks as if you had developed your GObject library in C.

Jamie McCracken, of the Tracker project, had this to say about Vala:

It's the only language that gives you all of these:

  1. High level language - easier to learn, more productive to use and easier to maintain software
  2. performance and resource usage comparable to C
  3. Automatic C bindings to all other languages as it compiles into gobjects

First, would you mind telling me a little about yourself, where you live and your interests?

My name is Jürg Billeter and I study Computer Science at the ETH Zurich in Switzerland. I've started contributing to open source projects about five years ago and really enjoy working with the community.

When and why was Vala started?

I've started Vala in April 2006, the first release announcement[1] was in July 2006. Writing GObject code in C is very time-consuming as you have to write a lot more code than with modern programming languages.
You also miss many compile-time checks with GObject/C which are possible with higher-level languages.

Where does the project stand at this point?

The Vala compiler itself is written in Vala and it is self-hosting since May 2006, this means that the Vala compiler can compile itself. Most of the essential language features are working and we also have bindings
for quite a few libraries from the GNOME stack. The compiler still misses some semantic checks, so it may accept invalid code instead of reporting an appropriate error message. We're currently working on the
language documentation as a large part is still not documented properly.

How many active developers currently work on Vala?

We're two maintainers and a couple of contributors of smaller features and bug fixes. There have already been many contributions by various developers for Vala bindings.

What is your primary development toolset?

I'm currently working with gedit (with Vala syntax highlighting) and the terminal, on top of a current GNU/Linux distribution.

Many projects depend on libraries, tools, etc. developed by others. What are some of the key external elements you rely on?

The main library we depend on is GLib, which provides us with cross-platform utility functions and the GObject type system, of course. The Vala compiler also needs a C compiler to compile Vala applications to native binaries but it's not tied to a specific C compiler, it works with GCC, Sun Studio, MSVC, and possibly others.

How does Vala compare (in your view) to other projects?

A compiler for a new programming language is not the average open source project. Before people start to use it for serious projects, they want some degree of stability; that's what we're trying to achieve with bug
fixes and documentation in the following weeks and months.

Can you give me any idea of how big and/or active the Vala user community is?

We have a mailing list[2] and an IRC channel[3] with varying activity. I have the impression that there is quite some interest from the GNOME community but as Vala is still in development, a lot of people are probably waiting for a stable release with more documentation.

What needs to be accomplished before the next release of Vala?

We're currently focusing on bug fixes and documentation improvements, so we essentially release when important bugs have been fixed or some time has passed with small bug fixes.

What are the biggest obstacles the Vala team faces in development?

Designing a consistent language that is easy-to-use while keeping GObject/C compatibility needs compromises which may not be equally well received by all users.

Is there anything else about Vala you think our audience should know?

If you're interested in GNOME development or new programming languages, give Vala a try and let us know what you like and what you don't like. We're happy to answer questions on the mailing list or in IRC.

  1. http://mail.gnome.org/archives/gnome-announce-list/2006-July/msg00043.ht...
  2. http://www.paldo.org/mailman/listinfo/vala
  3. #vala on GIMPNet