# Обзор языка программирования Vala.

Алексей Снастин

{% hint style="info" %}
В этой серии статей рассматривается язык программирования Vala, ориентированный на использование в графической среде Gnome. В первой статье даётся общее представление о Vala, как о языке программирования высокого уровня, и некоторых его особенностях. Вторая часть посвящена объектно-ориентированному программированию (ООП) на Vala, а завершит цикл статья о расширенных возможностях языка и штатных инструментальных средствах. Ещё один язык программирования... Не торопитесь с выводами: во-первых, создание нового языка является попыткой более эффективно решить определённую задачу и, возможно, именно это решение вы сочтёте самым лучшим. Во-вторых, по мнению опытных программистов, для повышения квалификации необходимо изучать по меньшей мере один новый язык в год.
{% endhint %}

## Что, почему и зачем

Юрг Биллетер \[Jürg Billeter] и Раффаэле Сандрини \[Raffaele Sandrini] начали разрабатывать язык программирования Vala в 2006 году, чтобы сделать доступными современные технологии для разработчиков приложений на основе библиотек среды Gnome, в частности, glib и gobject. При создании программ в Gnome требуется солидный опыт практической работы с языком С на низком уровне прикладных программных интерфейсов. Раньше для перехода на более высокий уровень возникала необходимость либо в реализации виртуальной машины для выполнения кода, как например, в случае Python или языков среды Mono, либо в написании библиотеки функций-"обёрток", например, для С++.

Отличие языка Vala от указанных методик состоит в том, что он позволяет получить в итоге чистый С-код, который может быть скомпилирован и запущен в среде Gnome без какихлибо дополнительных средств поддержки (библиотек, загрузчиков и т.п.). При этом важно отметить следующие факты. Программы, написанные на языке Vala, по производительности практически не уступают программам, разработанным непосредственно на С, а читать, исправлять и сопровождать код Vala гораздо проще и быстрее. Кроме того, внутри Valaприложений абсолютно все операции воспроизводятся средствами С. Таким образом, Vala обеспечивает поддержку многих недоступных в классическом С современных языковых технологий, отображая их в стандартные С-конструкции. Самостоятельное написание подобных конструкций потребует немало времени и может оказаться весьма сложной задачей.

Синтаксис Vala во многом напоминает синтаксис C#, C++ и Java. Впрочем, корень у них один, и знание языка С принесёт пользу в любом случае. Тем более что Vala-программы тесно взаимодействуют с C-библиотеками, да и выполняются в итоге, как C-код.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nim-ru-tutorial.gitbook.io/ibm-vala-guide/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
