Язык программирования Vala: история и специфика
Содержание:
1.Прагматичное начало (Вы читаете данный раздел);
2. Производительность и основные возможности;
3. Распространенность и проекты;
4. Установка и поддержка в IDE.
Язык Vala появился на свет совсем недавно - в 2006 г. Его создателями выступили разработчики рабочей среды GNOME, а соображения, подвигшие их на создание нового языка, были сугубо прагматичными. Тулкит GTK+ является одним из самых популярных для создания GUI-приложений в мире Linux. Однако он написан на языке Си, который в современных реалиях является чистым анахронизмом при разработке программ с графическим интерфейсом. Си совершенно не приспособлен для создания GUI, поскольку в нем нет необходимых для этого объектно-ориентированных абстракций.
Чтобы использовать в Си подобие объектно-ориентированного подхода с классами, наследованием и т. п., была создана библиотека GObject (http:// library.gnome.org/devel/gobject/stable/), являющаяся объектно-ориентированным дополнением библиотеки Glib - основы тулкита GTK+. Использовать GObject в Си напрямую крайне сложно и неудобно. Например, чтобы создать дочерний класс, нужно написать около сотни строк совершенно невразумительного служебного кода. Не удивительно, что сейчас GTK+ используется практически исключительно в виде привязок в других языках. Например, такие популярные программы, как Deluge или Ubuntu Software Center, написаны на Python, а F-Spot и Banshee - на С#. Проблема с привязками состоит в том, что из-за них GTK+ теряет свою «легкость» - все перечисленные программы весьма прожорливы и потребляли бы гораздо меньше ресурсов, будучи написанными на чистом Си (однако их реализация на Си затянулась бы на годы).
Язык Vala появился как прагматичный способ решения этой проблемы. Vala - типичный язык «новой волны». Он имеет удобный синтаксис очень высокого уровня, так что разработка происходит немногим медленнее, чем на скриптовых языках. В то же время генерируется настоящий быстрый и эффективный машинный код. Программы, написанные на Vala, сначала транслируются в стандартный Си. Сгенерированный таким образом код затем автоматически компилируется обычным компилятором GCC. Объектная модель Vala базируется на GObject, а многие базовые функции - на библиотеке Glib. Транслятор просто переводит абстракции высокого уровня в вызовы Glib и Gobject, поручая этим библиотекам всю «грязную работу». Реализовать такой транслятор на порядки проще, чем написать полноценный компилятор нового языка, поэтому Vala «вошел в строй» очень быстро и за несколько лет стал достаточно популярным.
1.
2. Производительность и основные возможности;
3. Распространенность и проекты;
4. Установка и поддержка в IDE.
Язык Vala появился на свет совсем недавно - в 2006 г. Его создателями выступили разработчики рабочей среды GNOME, а соображения, подвигшие их на создание нового языка, были сугубо прагматичными. Тулкит GTK+ является одним из самых популярных для создания GUI-приложений в мире Linux. Однако он написан на языке Си, который в современных реалиях является чистым анахронизмом при разработке программ с графическим интерфейсом. Си совершенно не приспособлен для создания GUI, поскольку в нем нет необходимых для этого объектно-ориентированных абстракций.
Чтобы использовать в Си подобие объектно-ориентированного подхода с классами, наследованием и т. п., была создана библиотека GObject (http:// library.gnome.org/devel/gobject/stable/), являющаяся объектно-ориентированным дополнением библиотеки Glib - основы тулкита GTK+. Использовать GObject в Си напрямую крайне сложно и неудобно. Например, чтобы создать дочерний класс, нужно написать около сотни строк совершенно невразумительного служебного кода. Не удивительно, что сейчас GTK+ используется практически исключительно в виде привязок в других языках. Например, такие популярные программы, как Deluge или Ubuntu Software Center, написаны на Python, а F-Spot и Banshee - на С#. Проблема с привязками состоит в том, что из-за них GTK+ теряет свою «легкость» - все перечисленные программы весьма прожорливы и потребляли бы гораздо меньше ресурсов, будучи написанными на чистом Си (однако их реализация на Си затянулась бы на годы).
Язык Vala появился как прагматичный способ решения этой проблемы. Vala - типичный язык «новой волны». Он имеет удобный синтаксис очень высокого уровня, так что разработка происходит немногим медленнее, чем на скриптовых языках. В то же время генерируется настоящий быстрый и эффективный машинный код. Программы, написанные на Vala, сначала транслируются в стандартный Си. Сгенерированный таким образом код затем автоматически компилируется обычным компилятором GCC. Объектная модель Vala базируется на GObject, а многие базовые функции - на библиотеке Glib. Транслятор просто переводит абстракции высокого уровня в вызовы Glib и Gobject, поручая этим библиотекам всю «грязную работу». Реализовать такой транслятор на порядки проще, чем написать полноценный компилятор нового языка, поэтому Vala «вошел в строй» очень быстро и за несколько лет стал достаточно популярным.