В закладки — язык программирования 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:
Установка под Debian:
Для установки под Windows нужно сходить по следующим ссылкам: раз и два.
Geany, Netbeans и ряд других IDE имеют встроенную подсветку синтаксиса Vala. В моем любимом vim ее нет, но она легко настраивается:
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:
var name = args[1] != null ? args[1] : "%username%";
print(@"Hello, $name!\n");
return 0;
}
Также на Vala легко и просто пишутся GUI-приложения. Если нет желания писать код вручную, можно воспользоваться Glade. Собираются GUI-приложения примерно так:
В целом Vala очень похож на годную замену C++ или даже PHP, если вас не устраивает его скорость. И в отличие, например, от D2, Vala выглядит проще и куда более готовым к использованию.
Подборка ссылок по теме:
- Официальный сайт и список рассылки;
- Много документации: http://valadoc.org/
- Genie — тот же Vala (он даже компилируется тем же valac), но по синтаксису более похожий на Python;
- В плане скорости Vala сравним с Си и C++;
- Статья в журнале LinuxFormat;
- Серия статей на ibm.com: айн, цвай, драй;
А что вы думаете о языке Vala?
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.