Vala — Вікіпедія

Vala
Парадигмабагато-парадигмове: імперативне, структурне, об'єктно-орієнтоване програмування
Дата появи2006
РозробникJürg Billeter, Raffaele Sandrini
Останній реліз
Система типізаціїстрога статична
Під впливом відC, C++, Java, C Sharp, D і Boo
Мова реалізаціїVala[1]
Операційна системакросплатформова програма
ЛіцензіяLGPL 2.1+
Звичайні розширення файлів.vala або .vapi
Репозиторій вихідного кодуgitlab.gnome.org/GNOME/vala.git
github.com/GNOME/vala.git
Вебсайтlive.gnome.org/Vala

Valaоб'єктно-орієнтована мова програмування, призначена для прикладного і системного програмування на основі бібліотек GLib Object System (GObject(інші мови)) робочого середовища GNOME/GTK+. Мова була розроблена Юргом Біллетером (Jürg Billeter) і Раффаеле Сандріні (Raffaele Sandrini).

Основні особливості

[ред. | ред. код]

Vala за своїм синтаксисом подібна до C# і повністю реалізує об'єктно-орієнтований підхід. Підтримуються інтроспекція, прибирання сміття, засноване на підрахунку посилань, лямбда-функції, концепція сигналів і слотів, подібна використовуваній у Qt, але реалізована на рівні мови, рядкові типи, зрізи масивів, оператор переліку елементів колекції foreach(), делегати, замикання, інтерфейси, властивості та винятки.

Особливість системи розробки полягає в тому, що програма на Vala транслюється в програму мовою C, яка в свою чергу компілюється у виконуваний код цільової платформи зі стандартними бібліотеками C, Glib і GTK+ та виконується зі швидкістю скомпільованої в об'єктний код цільової платформи програми C. Завдяки такому підходу відкомпільований код на Vala бінарно сумісний з системними бібліотеками, написаними на C. Для підключення сторонніх бібліотек до програм на мові Vala використовуються спеціальні vapi-файли, в яких описується інтерфейс бібліотеки. Для багатьох бібліотек вже існують vapi-файли, що входять до дистрибутиву компілятора Vala[2]. Крім того, є vapi-файли для бібліотек, підтримувані сторонніми користувачами, поки не включені у штатне постачання[3].

Існують неофіційні збірки компілятора для ОС Windows, підтримувані сторонніми розробниками.

Причини створення

[ред. | ред. код]

Мова Vala була створена для ефективної розробки на платформі GNOME складних прикладних і системних програм з графічним інтерфейсом користувача, що базується на стандартній бібліотеці GTK+, із застосуванням сучасних мовних засобів і технік програмування.

Об'єктно-орієнтовані мови Java і C# надають програмісту досить можливостей, але їхні програми виконуються у віртуальних машинах, що робить неможливим пряме звернення до них з бінарного коду мовою C, як і використання в таких програмах системних низькорівневих бібліотек, таких як GObject(інші мови). Тому ці мови, як і будь-які інші, які виконують байт-код в віртуальних машинах, не можуть бути прийняті в рамках платформи GNOME. Керовані програми мають також обмеження у швидкодії, що є критичним для роботи деяких програм (наприклад, системних), які повинні виконуватися в бінарному коді (ABI). Це і стало причиною появи мови Vala.

Приклади коду

[ред. | ред. код]

Приклад № 1

[ред. | ред. код]

Проста програма «Hello World»

int main () {   print ("Hello World\n");   return 0; } 

Приклад № 2

[ред. | ред. код]

Програма «Hello World», що демонструє об'єктно-орієнтований підхід

 using GLib;    class Sample : Object {    void run () {      stdout.printf ("Hello World\n");    }      static int main (string[] args) {      var sample = new Sample ();      sample.run ();      return 0;    }  } 

Приклад № 3

[ред. | ред. код]

Це приклад використання GTK+ для створення GUI програм мовою Vala:

using Gtk;   int main (string[] args) {   Gtk.init (ref args);    var window = new Window ();   window.title = "Hello, World!";   window.border_width = 10;   window.window_position = WindowPosition.CENTER;   window.set_default_size (350, 70);   window.destroy.connect (Gtk.main_quit);     var label = new Label ("Hello, World!");     window.add (label);   window.show_all();     Gtk.main();   return 0; } 

Інтегровані середовища розробки

[ред. | ред. код]

Такі інтегровані середовища розробки підтримують мову Vala

Приклади програмного забезпечення на Vala

[ред. | ред. код]
  • Shotwell — упорядник фотографій
  • Fillmore — багатодоріжковий запис
  • Lombard — відео-редактор
  • Valencia — плагін gedit для Vala
  • Midori 7 — веббраузер

Виноски

[ред. | ред. код]
  1. The vala Open Source Project on Open Hub: Languages Page — 2006.
  2. Bindings Status (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 7 вересня 2011.
  3. External Bindings (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 7 вересня 2011.

Посилання

[ред. | ред. код]
  • http://valadoc.org/ (англійською) . Архів оригіналу за 10 березня 2012. Процитовано 9 февраля 2010.
  • Что такое Vala (російською) . 23 июля 2010. Архів оригіналу за 10 березня 2012. Процитовано 31 июля 2010.