Мова програмування vala: продуктивність і основні можливості

Відео: Уроки C ++ з нуля / Урок # 1 - Основи

Мова програмування Vala: продуктивність і основні можливості
Незважаючи на те, що в Vala використовується транслятор «source to source», його називають компілятором, оскільки він автоматично викликає компілятор Сі для згенерованого коду. На виході виходить нативний виконуваний файл, для якого не потрібні ніякі додаткові бібліотеки часу виконання або віртуальні машини. В системі, де встановлено Glib і GTK +, виконуваний файл має дуже маленький розмір, а його ефективність не поступається програмам, написаним на Сі вручну. У порівнянні з аналогами, написаними на Python або C #, програми на Vala буквально «літають» і споживають набагато менше пам`яті.

Синтаксис Vala дуже схожий на C #, тому його часто називають «C # без віртуальної машини». Vala надає всі можливості сучасних об`єктно-орієнтованих мов і багато зручні конструкції високого рівня:
- класи і інтерфейси;
- властивості;
- сигнали;
- конструкцію foreach;
- лямбда-функції і делегати;
- неявну типізацію (type inference);



- узагальнені класи (generics);
- автоматичне або «ручне» управління пам`яттю;
- виключення;



- контрактне програмування;
- регулярні вирази як частина мови.

Мова програмування Vala: продуктивність і основні можливості

Оскільки програми на Vala перетворюються в код на звичайному Сі, вони безпосередньо компонуються з зовнішніми бібліотеками, написаними на Сі, без додаткових «обгорток» і, що особливо важливо для продуктивності, без перетворення даних. Для використання будь-якої бібліотеки в Vala досить створити інтерфейсний файл * .vapi з інструкціями для компілятора про те, як транслювати код на Vala до відповідних бібліотечні виклики. Створення файлів vapi може бути практично повністю автоматизовано для бібліотек, заснованих на Glib і GObject, а іноді і для інших бібліотек. Спочатку утиліта vala-gen-introspect обробляє заголовки бібліотеки і генерує так званий GI-файл, а потім інша утиліта vapigen перетворює його в готовий файл vapi. Тож не дивно, що дуже швидко з`явилися інтерфейси для величезної кількості бібліотек (https://live.gnome.org/Vala/BindingsStatus). Серед них - все бібліотеки GTK + версій 2 і 3, всі бібліотеки платформи GNOME, а також alsa, gsl, webkit, zlib, sqlite, OpenGL, lua, sdl, twitter та багато інших. У Vala є і власна бібліотека узагальнених контейнерів Gee (https://live.gnome.org/ Libgee), що нагадує STL в C ++. Всі інтерфейси доступні «з коробки» і не вимагають ніякої додаткової настройки (крім, зрозуміло, установки самих бібліотек).

Бібліотеки, написані на Vala, мають автоматично згенерували заголовки та також можуть відразу ж використовуватися в С / С ++ без будь-яких додаткових «прошарків». Це дозволяє, наприклад, граючи створювати нові класи GObject, які потім можна використовувати де завгодно в середовищі GNOME.

При всій своїй прагматичній привабливості ідея трансляції в Сі і використання готових бібліотек накладає на мову істотні обмеження. Дизайн Vala багато в чому нав`язаний можливостями Glib і GObject. Все, що складно ефективно транслювати в Сі, не можна зробити і в Vala. Наприклад, шаблони в Vala - далеко не такий потужний і ефективний інструмент, як в С ++ і особливо в D: немає ні «метапрограмування», ні виконання коду на етапі компіляції. Мова в цілому не відрізняється якоюсь особливою внутрішньою красою і витонченістю: синтаксис простий і логічний, але ніяких принципових нововведень і «родзинок» в Vala немає. Однак Vala і не претендує на роль універсального системного мови, на якому можна написати як систему білінгу, так і драйвер відеокарти. Він від початку спрямований на програми з графічним інтер-фейсом і бібліотеки високого рівня. Будучи таким же «клеєм» для окремих готових компонент і бібліотек, як і Java або C #, він обходить ці мови по продуктивності за рахунок компіляції в машинний код і відсутності віртуальної машини.



Чи плануєте самостійно перефарбувати своє авто і програмування Вас цікавить в даний момент найменше? Тоді Вам точно точно слід знати, що пескоструйка в москві (https://7281604.ru/posko_rab.html), яка дозволить Вам швидко і якісно зняти стару фарбу, - основна спеціалізація компанії ТОВ «МТБ»! Подробиці на 7281604.ru!

ІНШЕ

Shotwell: інтерфейс фото

Shotwell: інтерфейс

Відео: Shotwell 0.7 - Ubuntu Maverick Moviesінтерфейс Вікно Shotwell після імпорту Робота з новим менеджером…

Anjuta: перший погляд фото

Anjuta: перший погляд

Відео: GTA 6 - ПЕРШИЙ ПОГЛЯД Загальний вигляд Anjuta Anjuta, хоча формально і відноситься до ніші програмного…

Seed7: бібліотеки фото

Seed7: бібліотеки

Відео: пентагональними призма з насіння льону. П`ятикутна призма. геометричні фігури.Стереометрія Якщо Сі або C ++ без…

Мова програмування vala фото

Мова програмування vala

Hello world! Розгляд будь-якої мови програмування традиційно належить починати з найпростішої програми «Hello…

» » Мова програмування vala: продуктивність і основні можливості