В закладки — язык программирования Vala

27 ноября 2012

Что будет, если взять некое подмножество языка 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?

Метки: , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.