Открыты исходные тексты языка программирования Flow9

Материал из Викиновостей, свободного источника новостей

30 апреля 2019 года

Компания Area9 открыла (Архивная копия от 8 ноября 2020 на Wayback Machine) исходные тексты функционального языка программирования Flow9 (Архивная копия от 23 октября 2020 на Wayback Machine), ориентированного на создание пользовательских интерфейсов. Код на языке Flow9 может как компилироваться в исполняемые файлы для Linux, iOS, Android, Windows и macOS, так и транслироваться в форму web-приложений на HTML5/JavaScript (WebAssembly) или в исходные тексты на языках Java, D, Lisp, ML и C++. Код компилятора открыт под лицензией GPLv2, а стандартной библиотеки под лицензией MIT.

Язык развивается с 2010 года в качестве универсальной и многоплатформенной альтернативы Adobe Flash. Flow9 позиционируется как платформа для создания современных графических интерфейсов, которая может применяться как для Web, так и для настольных и мобильных приложений. Проект используется во многих внутренних проектах Area9 и изначально именовался Flow, но перед открытием кода было решено переименовать его во Flow9 для избежания пересечений со статистическим анализатором Flow от компании Facebook.

Flow9 сочетает привычный синтаксис, похожий на язык Си (см. сравнение кода на Flow9 и JavaScript), со средствами функционального программирования в стиле ML и возможностями предметно-ориентированных языков, сосредоточенных на максимально эффективном решении конкретных задач (для Flow9 это разработка интерфейсов). Flow9 рассчитан на применение строгой типизации, но при необходимости предусмотрена возможность использования динамической типизации с автоматическим определением типов, а также ссылок. Поддерживается полиморфизм (одна функция может обрабатывать данные разных типов), возможность создания подтипов, модули, массивы, хэши, лямбда-выражения.

Один и тот же код может быть собран для разных платформ, без необходимости отдельного портирования и внесения изменений в код. Одно и то же приложение может запускаться в браузере, на мобильных устройствах с сенсорными экранами и на настольных системах с клавиатурой и мышью. Предлагается готовая коллекция компонентов с элементами интерфейсов в стиле React, оформленная в соответствии с концепцией Google Material Design. Оформление можно контролировать вплоть до пиксельного уровня. Для задания стилей можно использовать стандартный синтаксис CSS. Для отрисовки в Linux, macOS и Windows при компиляции в C++ используется бэкенд на базе Qt с OpenGL, а при компиляции в Java - JavaFX.

Благодаря применению методов функционального программирования, написанный код и компоненты интерфейса легко могут заимствоваться в других проектах. Язык очень компактный и включает всего 25 ключевых слов, а описание грамматики укладывается в 255 строк вместе с комментариями. Для реализации идентичной функциональности на Flow9 требуется в 2-4 раза меньше кода, чем на HTML+CSS+JavaScript, C#, Swift или Java. Например, если для тестового приложения Tic-Tac-Toe из руководства по React потребовалось написание 200 строк кода на React/JavaScript/HTML/CSS, на Flow9 удалось уложиться в 83 строки. При этом данное приложение можно не только запускать в браузере, но и скомпилировать в форму мобильных приложений для iOS и Android.

Платформа включает в себя основной компилятор flowc, написанный на Flow9 и способный работать в роли сервера компиляции; эталонный компилятор flow (написан на haxe); отладчик с поддержкой протокола gdb; cистему профилирования с анализатором памяти и отладчиком сборщика мусора; JIT-компилятор для систем x86_64; интерпретатор для ARM и других платформ; инструментарий для выборочной компиляции в C++ и Java наиболее критичных к производительности частей кода; плагины для интеграции с редакторами кода Visual Code, Sublime Text, Kate и Emacs; генератор парсеров ( PEG).

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Открыты исходные тексты языка программирования Flow9», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.