Vala - это новый язык программирования, предназначенный для прикладного и системного программирования на основе библиотек GLib Object System (GObject). Эта платформа предлагает полноценную программную среду, с такими наворотами как динамическая типизация и сборщик мусора. До появления Vala единственными способами программирования под GNOME/GTK+ было либо использования C API, который предоставлял много лишних деталей, либо использование языков высокого уровня, которые выполняются в сопутствующих виртуальных машинах, таких как Python или Mono C#, или используя C++ c библиотеками-обертками.

Vala отличается от всех других методов, так как она транслируется в C код, который может быть собран для запуска без дополнительной поддержки библиотек за пределами платформы GNOME. Это имеет несколько особенности, главные из которых:

Программы, написанные на Vala должны иметь хорошую скорость выполнения, близкую к коду написанному на C, а также их легче и быстрее писать и поддерживать. Приложения на Vala не могут делать ничего, чего бы не смогла бы сделать аналогичная программа на C. Несмотря на это Vala предоставляет множество языковых возможностей, которые не доступны в C, хотя они они и транслируются в С конструкции, но на их написание и отладку ушло бы много времени.

Синтаксис Vala похож на C#, но адаптирован для лучшей совместимости с системами GObject типа. Vala поддерживает современные языковые конструкции, такие как:

-Интерфейсы -Свойства -Сигналы -Foreach -Lambda функции -Type inference для локальных переменных -Generics -Non-null типы -Assisted memory management -Exception handling -Type modules (Расширения)