The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск транслятора языка программирования Vala 0.56.0

23.03.2022 15:48

Вышла новая версия транслятора языка программирования Vala 0.56.0. Язык Vala является объектно-ориентированным языком программирования, предоставляет синтаксис, подобный языкам C# или Java. Код на Vala транслируется в программу на языке C, которая, в свою очередь, компилируется штатным Си-компилятором в бинарный файл и выполняется со скоростью приложения, откомпилированного в объектный код целевой платформы. Имеется возможность запуска программ в режиме сценария. Язык развивается под эгидой проекта GNOME. В качестве объектной модели используется Gobject (Glib Object System). Код компилятора распространяется под лицензией LGPLv2.1.

В языке имеется поддержка интроспекции, лямбда-функций, интерфейсов, делегатов и замыканий, сигналов и слотов, исключений, свойств, ненулевых типов, выведения типов для локальных переменных (var). Управление памятью осуществляется на основании подсчёта ссылок. Для языка разработана библиотека обобщённого программирования libgee, предоставляющая возможность создания коллекций для пользовательских типов данных. Поддерживается перечисление элементов коллекций при помощи оператора foreach. Программирование графических программ осуществляется при помощи графической библиотеки GTK.

В комплекте поставляется большое количество биндингов к библиотекам на языке C. Транслятором Vala осуществляется поддержка языка Genie, который предоставляет аналогичные возможности, но с синтаксисом, вдохновлённым языком программирования Python. На языке Vala написаны такие программы как почтовый клиент Geary, графическая оболочка Budgie, программа организации фото- и видеофайлов Shotwell и другие. Язык активно используется при разработке дистрибутива Elementary OS.

Основные новшества:

  • Добавлена поддержка асинхронной функции main();
  • Добавлена поддержка вложенных функций;
  • Изменён формат вывода предупреждений и ошибок при компиляции;
  • Обеспечена возможность динамического вызова сигналов;
  • Добавлена поддержка частичных (partial) классов - классов содержимое которых находится в нескольких исходных файлах;
  • Для биндингов добавлена возможность задания типов длин массивов. Раннее был допустим только 32-х разрядный целочисленный тип;
  • Добавлена поддержка оператора foreach для типов Glib.Sequence и Glib.Array;
  • Добавлены новые биндинги libsoup, linux-media;
  • В процессе портирования библиотека gnome-desktop была разделена на gnome-desktop-4, gnome-rr-4 и gnome-bg-4.
  • Руководства по программированию GNOME расширены примерами на Vala.
  • Добавлены Release Notes на языке разметки Markdown.
  • Обновлены биндинги:
    • gtk4 до версии 4.6.0+06ec4ec1;
    • gstreamer до версии 1.21.0+ git master;
    • gio-2.0 до версии 2.72;
    • glib-2.0 до версии 2.72;
    • gobject-2.0 до версии 2.72;
    • webkit2gtk-*.0 до версии 2.35.1.


  1. Главная ссылка к новости (https://gitlab.gnome.org/GNOME...)
  2. OpenNews: Выпуск транслятора языка программирования Vala 0.54.0
  3. OpenNews: Выпуск компилятора для языка программирования Vala 0.50.0
Автор новости: Совершенно другой аноним
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/56900-vala
Ключевые слова: vala
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Иваня (?), 17:35, 23/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –18 +/
    Я лучше на Java буду писать, а этот язык выглядит ужасно!
     
     
  • 2.2, васёк (?), 17:51, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Java устарел, бери C# ! он теперь опенсорс
     
     
  • 3.23, Аноним (23), 22:14, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    C# уже устарел
     
     
  • 4.31, Степан (?), 01:45, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ой ли?
     
  • 4.35, leap42 (ok), 04:32, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > C# уже устарел

    Эт почему? Что пришло ему на смену?

     
     
  • 5.46, freecoder (ok), 10:49, 25/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Rust
     
     
  • 6.49, leap42 (ok), 17:18, 25/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Rust

    лол, не слушайте этих растофанатиков, они ничего не понимают в программировании: Rust пришёл на смену С++, но обосрався даже в этом, а случае с шарпом шансов ещё меньше

     
     
  • 7.51, Прохожий (??), 11:29, 26/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если кто где и обосpался, так это ты в бесплодных попытках освоить Rust. Бывает. Но зачем же так агрессивно выдавать свои когнитивные неудачи за проблемы языка, с которым ты незнаком? Это риторический вопрос.
     
     
  • 8.52, leap42 (ok), 13:58, 26/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я-то освоил Купил за много тыщ книжку Oriley с крабом могу любую сигну сделать... текст свёрнут, показать
     
  • 2.6, Аноним (6), 18:39, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Ты ни на чем не пишешь, если не видишь разницы между языком с нативной компиляцией и java
     
     
  • 3.8, pashev.ru (?), 18:49, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты ни на чём не пишешь, если не видишь разницы между языком и транслятором. В контексте Явы - это, например, gcj.
     
     
  • 4.10, Аноним (10), 18:55, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  например, gcj.

    Который мертв, с рождения.

     
     
  • 5.12, БратишкаЭрик (?), 19:00, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тогда GraalVM Native Image (правда, не всегда избавляет от Java VM, особеннр если Reflection т.д.)
     
  • 4.27, Аноним (27), 23:51, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Gcj не умеет ничего сложнее hello world
     
     
  • 5.30, pashev.ru (?), 00:22, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Особенно он не умеет pdftk.
     
  • 4.44, anonimous (?), 23:01, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >В контексте Явы - это, например

    Android Runtime (ART) and Dalvik
    https://source.android.com › devices › tech › dalvik
    ART introduces ahead-of-time (AOT) compilation, which can improve app performance.

     
  • 3.26, Аноним (27), 23:50, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Jave можно скомпилировать наивно через GraalVM
    Ещё раньше был компилятор Excelsior JET, надеюсь жив ещё
     
     
  • 4.28, Аноним (27), 23:56, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://habr.com/ru/post/452066/
    Сдох он
     
  • 2.34, Аноним (34), 02:39, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Жабист подумал, что перед ним C#, и по привычке решил выказать свое фи
     

  • 1.3, Ан (??), 18:07, 23/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Учитывая раскол создателей Elementary OS, перспективы активного развития Вальки немного туманны, хотя язык хороший.
     
     
  • 2.14, Аноним (-), 20:05, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Слышал, что в НетБЗДуны по-умолчанию пользуются Валой.
     
     
  • 3.25, Anonim (??), 22:24, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Где именно?
     
     
  • 4.36, Аноним (-), 07:04, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Луа? Перепутал?
     
     
  • 5.37, Аноним (37), 08:05, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://www.opennet.ru/opennews/art.shtml?num=38203
     
  • 5.42, Аноним (42), 15:21, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Луа? Перепутал?

    Да все норм - ну не Vala, а Lua, ну не по пользуются по умолчанию, а в склепали модуль, пару примеров и дебаг скритпы в качестве эдакого молодежного dtrace/ebpfs ... обыкновенный уровень знаний опеннета о "бздах".


     
  • 2.47, gavr (ok), 13:40, 25/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Elementary никак не относится к разработке языка, и очень сомневаюсь что она умрет изза раскола
     

  • 1.13, barmaley (??), 19:55, 23/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    100500ый язык программирования... зачем?
     
     
  • 2.15, Аноним (-), 20:05, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Он модный.
     
     
  • 3.24, Аноним (23), 22:21, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    моднее раста?!
     
     
  • 4.40, Аноним (40), 12:44, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ны что вы?! Индекс цитирования/коментирования Rust на OpenNet пока никаой другой не опередил.
     
  • 2.16, Alexey Tor. (?), 20:56, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А вы много знаете языков которые транслируют в С и потом еще имеют либы для виджетов? И не просто виджетов а современных линуксных виджетов - gtk2 gtk3 gtk4 qt5 qt6? Во Во.
     
     
  • 3.18, Аноним (18), 21:23, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >а современных линуксных виджетов - gtk2 gtk3 gtk4 qt5 qt6? Во Во.

    И что в них такого особенного? Другие графические тулкиты не хуже, и подключаются к другим языкам не хуже.

     
     
  • 4.19, Alexey Tor. (?), 21:27, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это самые нужные виджеты, при чем тут "особенного". Вот Вала их юзает. А С# или Джава не может.
     
  • 3.22, Аноним (-), 22:12, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А вы много знаете языков которые транслируют в С и потом еще
    > имеют либы для виджетов? И не просто виджетов а современных линуксных
    > виджетов - gtk2 gtk3 gtk4 qt5 qt6? Во Во.
    > qt5 qt6

    Ну-ну. Мечтать не вредно.

     
  • 3.32, Hck3r (?), 02:13, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Nim
     
  • 3.41, Аноним (40), 12:48, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >qt5 qt6

    Так, а здесь, пожалуйста, по-подробней. Vala имеет к ним биндинги?

     
     
  • 4.43, Alexey Tor. (?), 20:13, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не знаю про _эти_ биндинги, но раз язык юзается в распространенном ПО на Лине, то..
     
  • 2.21, Аноним (21), 22:04, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не осилил смысл процедуры «транслируется в С»?
     
     
  • 3.38, Совершенно другой аноним (?), 09:35, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В том, что это не компилятор, а транслятор. Т.е. на входе транслятора vala исходный текст программы на языке vala, на выходе - исходный текст программы на языке C, который затем компилируется штатным системным C-шным компилятором уже в двоичный код. Автоматом используются glib и gobject. Было время разработчики начинали развивать профиль, который требует только libc, но там, на данный момент, сразу сильно уменьшается функциональность и пока это направление, как я понимаю, поставили на паузу, т.к. полноценно сделать отвязку от glib и goblect на данный момент у разработчиков нет ресурсов.
     
  • 2.29, Корец (?), 00:09, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >зачем?

    Затем, что они удавиться готовы, лишь бы на сишечке не писать.

     
     
  • 3.39, n00by (ok), 12:11, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Они и пишут на Си, уместно используя кодогенерацию. При этом ничего не переписывают, как некоторые. ;)
     
  • 2.48, gavr (ok), 13:41, 25/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    То что ты о нем только что узнал, не значит что он новый, язык релизнулся в 2006. Затем что на си писать с GObject не очень удобно было.
     

  • 1.17, Аноним (18), 21:15, 23/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Язык развивается под эгидой проекта GNOME.

    Мне уже страшно.

     
     
  • 2.20, Аноним (21), 22:02, 23/03/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не бойся. Ты никому не нужен.
     
  • 2.33, Аноним (23), 02:21, 24/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    сходи на приём к доктору.
     
  • 2.50, Bdfybec (?), 22:49, 25/03/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Памперс чаще меняй
     

  • 1.45, Аноним (45), 23:22, 24/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А зачем страхи и бомбления? Никто никогда не отберет java и сишку. Почему у кого-то должно гореть, когда что-то написано на расте,  вале. От новых языков старые не умирают, остаются форки, остаются старые версии.
     
  • 1.53, Аноним (53), 15:00, 30/03/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Добавлена поддержка оператора foreach для типов Glib.Sequence и Glib.Array;

    Джва года ждал!

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру