Открыты исходные тексты языка программирования 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).
Источники[править]
- Главная ссылка к новости (https://flow9.org/2019/04/26/w...) (Архивная копия от 8 ноября 2020 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.