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

Вышла новая версия компилятора для языка программирования Vala 0.50.0. Код на Vala транслируется в программу на языке C, которая, в свою очередь, компилируется в бинарный файл и выполняется со скоростью приложения, откомпилированного в объектный код целевой платформы. Vala является самым используемым языком в GNOME после C (C, Vala, Python, C++), а также основным языком в Elementary OS.

Язык Vala по своему синтаксису очень похож на C# и полностью реализует объектно-ориентированный подход. Поддерживаются интроспекция, выведение типов, сборка мусора за счет автоматической подстановки вызовов деструкторов на этапе компиляции (ARC как в Swift), лямбда-функции, концепция сигналов и слотов, подобная используемой в Qt, но реализованная на уровне языка, строковые типы, обобщённое программирование, срезы массивов, оператор перечисления элементов коллекции foreach, делегаты, замыкания, интерфейсы, свойства и исключения.

Самые заметные изменения:

  • Новое ключевое слово with для синтаксиса каскадных вызовов. Внутри with поддерживается создание локальных переменных:

    with (var x = y ())

    Вызов функций, возвращающих значение:

    with (y ())

    Подключение сигналов, строгий non null режим и вызов новых «with» рекурсивно.

  • Новый синтаксис срезов — теперь пустота считаются за первый или последний элемент коллекции.

    array[begin:] => array[begin:array.length-1] array[:end] => array[0:end] array[:] => array[0:array.length-1]

  • Упрощено переписывание C-проектов на Vala по частям (когда в проекте будет множество вызовов Vala кода из C и наоборот).
  • Реализованы не виртуальные сигналы с телом функции.
  • Обеспечено наследование пространства имён потомка.

Источник: opennet.ru