Что будет, если взять некое подмножество языка C++ и попытаться избавиться от различных его недостатков? Java? Хорошо, теперь выкидываем виртуальную машину и добавляем пару элементов функционального программирования. То, что мы получим в итоге, и есть Vala.

В отношении Vala справедливы следующие утверждения:

  • Язык появился в 2006-м году и активно развивается по сей день;
  • Код на Vala транслируется в код на Си, что как бы намекает нам на переносимость и скорость языка;
  • В Vala не используются заголовочные файлы;
  • Vala — язык со строгой статической типизацией , но при объявлении переменных не требуется полностью указывать их тип (ключевое слово var);
  • В Vala используется сборка мусора, основанная на подсчете ссылок , а также можно управлять памятью вручную ;
  • В Vala есть интерфейсы, исключения, классы и наследование, плюс элементы ФП, например, замыкания и лямбды;
  • Строки хранятся в памяти в кодировке UTF-8 (да, именно UTF-8 , а не в каком-то другом юникоде);
  • В строки можно @ "подставлять $переменные" ;
  • Vala отлично документирован, на официальном сайте имеются примеры ко всем аспектам языка;
  • В нашем распоряжении имеется куча готовых контейнеров (списки, множества, словари и тп), регулярные выражения , потоки, работа с сетью и многое другие;
  • Vala имеет кучу биндингов к различным библиотекам , а также развитый инстументарий — Valadoc для документирования, Valadate для модульного тестирования , есть даже веб-фреймворк Valum ;
  • По понятным причинам для Vala не нужны специализированные отладчики, профайлеры и тп; аналог CPAN, по всей видимости, также никто создавать не собирается — вместо него, например, можно использовать GitHub и механизм сабмодулей в Git;
  • На Vala уже написано немало софта, например, Unity , сам компилятор Vala, IDE под названием Val(a)IDE и не только ;

Установка Vala под FreeBSD:

pkg_add -r vala

Установка под Debian:

sudo apt-get install valac

Для установки под Windows нужно сходить по следующим ссылкам: раз и два .

Geany, Netbeans и ряд других IDE имеют встроенную подсветку синтаксиса Vala. В моем любимом vim ее нет, но она легко настраивается:

mkdir -p ~ / .vim / syntax /
wget http: // goo.gl / 1dsCb -O ~ / .vim / syntax / vala.vim
mkdir -p ~ / .vim / ftdetect /
echo ‘au BufRead,BufNewFile *.vala,*.vapi set filetype=vala’ >
~ / .vim / ftdetect / vala.vim

Язык программирования Vala очень прост. Если вы когда-нибудь писали на C++, Java, C# или PHP, то без труда освоите его в считанные часы. Так, например, выглядит «Привет, мир!» на Vala:

int main ( string [ ] args ) {
var name = args [ 1 ] != null ? args [ 1 ] : «%username%» ;
print ( @ «Hello, $name! n » ) ;
return 0 ;
}

Также на Vala легко и просто пишутся GUI-приложения . Если нет желания писать код вручную, можно воспользоваться Glade. Собираются GUI-приложения примерно так:

valac —pkg gtk+- 2.0 gui.vala

В целом Vala очень похож на годную замену C++ или даже PHP, если вас не устраивает его скорость. И в отличие, например, от D2, Vala выглядит проще и куда более готовым к использованию.

Подборка ссылок по теме:

А что вы думаете о языке Vala?

EnglishRussianUkrainian