"The Vala compiler, valac, compiles Vala code into C code, which
is then compiled with gcc into object code. A big issue when you
try to use a high-level language in a traditionally C environment
is language bindings: where they come from, how well maintained
they are, and whether there are bugs in them. Using a high-level
language can be more frustrating than just using C if the bindings
are not high quality. Vala includes tools that use GLib
introspection, which lets you generate a Vala binding for any GLib
object. The packages of Vala for Fedora 9 include bindings to
GLib2, GTK+2, SDL, SQLite, WebKit, libsoup, libglade-2, hildon,
hal, gstreamer, cairo, and dbus -- thus, many of the libraries you
would want for a GLib2/GTK+2 based desktop or handheld application
are already available to a Vala application. The project also
maintains a list of projects that provide Vala bindings.
"That takes care of using C code from Vala -- what about the
other way around? Vala can produce header files for GLib2 objects
so that folks who use C/C++ can easily use your objects. Any
language that can work from a C header file describing your GLib2
object should be able to use your Vala objects, so Perl and Python
should also be able to use objects implemented in Vala."