Langage de programmation Flow9 open source

Société Area9 ouvert codes sources du langage de programmation fonctionnel Flow9, axé sur la création d'interfaces utilisateur. Le code dans le langage Flow9 peut être compilé en fichiers exécutables pour Linux, iOS, Android, Windows et macOS, et traduit en applications Web en HTML5/JavaScript (WebAssembly) ou en textes sources en Java, D, Lisp, ML et C++. Code du compilateur est ouvert est sous licence GPLv2 et la bibliothèque standard est sous licence MIT.

Le langage se développe depuis 2010 comme alternative universelle et multiplateforme à Adobe Flash. Flow9 se positionne comme une plateforme de création d'interfaces graphiques modernes pouvant être utilisées à la fois pour le Web et les applications de bureau et mobiles. Le projet est utilisé dans de nombreux projets internes d'Area9 et s'appelait à l'origine Flow, mais avant d'ouvrir le code, il a été décidé de le renommer Flow9 pour éviter toute interférence avec l'analyseur statistique. Flow de Facebook.

Flow9 combine une syntaxe familière similaire au langage C (voir comparaison code en Flow9 et JavaScript), avec des outils de programmation fonctionnels dans le style ML и opportunités langages spécifiques à un domaine axés sur la résolution de problèmes spécifiques aussi efficacement que possible (pour Flow9, il s'agit du développement d'interfaces). Flow9 est conçu pour utiliser un typage strict, mais si nécessaire, il est possible d'utiliser un typage dynamique avec détection automatique de type, ainsi que liens. Le polymorphisme est pris en charge (une fonction peut traiter des données de différents types), la possibilité de créer des sous-types, des modules, des tableaux, des hachages, des expressions lambda.

Le même code peut être compilé pour différentes plates-formes, sans avoir besoin d'un portage séparé ni de modifications du code. La même application peut s’exécuter dans un navigateur, sur des appareils mobiles dotés d’écrans tactiles et sur des systèmes de bureau dotés d’un clavier et d’une souris. Nous proposons une collection de composants prêts à l'emploi avec des éléments d'interface dans le style React, conçus conformément au concept Google Material Design. La conception peut être contrôlée jusqu’au niveau des pixels. Pour définir des styles on peut utilisez la syntaxe CSS standard. Pour le rendu sous Linux, macOS et Windows lorsqu'il est compilé en C++ d'occasion backend basé sur Qt avec OpenGL, et lorsqu'il est compilé en Java - JavaFX.

Grâce à l'utilisation de techniques de programmation fonctionnelle, le code écrit et les composants d'interface peuvent facilement être empruntés à d'autres projets. Le langage est très compact et ne comprend que 25 mots-clés, et la description grammaticale tient dans 255 lignes accompagnées de commentaires. Pour implémenter des fonctionnalités identiques sur Flow9, 2 à 4 fois moins de code est nécessaire que sur HTML+CSS+JavaScript, C#, Swift ou Java. Par exemple, si pour l'application de test Tic-Tac-Toe de guides pour React, il a fallu écrire 200 lignes de code en React/JavaScript/HTML/CSS, pour Flow9 nous avons réussi à le faire en 83 lignes. De plus, cette application peut non seulement être lancée dans le navigateur, mais également compilée sous forme d'applications mobiles pour iOS et Android.

La plateforme comprend le compilateur principal flowc, écrit en Flow9 et capable de fonctionner comme un serveur de compilation ; compilateur de référence de flux (écrit en articulation); débogueur avec prise en charge du protocole gdb ; un système de profilage avec un analyseur de mémoire et un débogueur de garbage collector ; Compilateur JIT pour les systèmes x86_64 ; interprète pour ARM et autres plateformes ; des outils de compilation sélective en C++ et Java des parties du code les plus critiques en termes de performances ; plugins pour l'intégration avec les éditeurs de code Visual Code, Sublime Text, Kate et Emacs ; générateur d'analyseur (PEG).

Source: opennet.ru

Ajouter un commentaire