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