Open source programovací jazyk Flow9

Spoločnosť Area9 otvoril zdrojové kódy funkčného programovacieho jazyka Prietok9, zameraný na tvorbu používateľských rozhraní. Kód v jazyku Flow9 je možné skompilovať do spustiteľných súborov pre Linux, iOS, Android, Windows a macOS a preložiť do webových aplikácií v HTML5/JavaScript (WebAssembly) alebo zdrojových textov v jazyku Java, D, Lisp, ML a C++. Kód kompilátora je otvorený je licencovaná pod GPLv2 a štandardná knižnica je licencovaná pod licenciou MIT.

Jazyk sa vyvíja od roku 2010 ako univerzálna a multiplatformová alternatíva k Adobe Flash. Flow9 je umiestnená ako platforma na vytváranie moderných grafických rozhraní, ktoré možno použiť pre web, ako aj pre desktopové a mobilné aplikácie. Projekt sa používa v mnohých interných projektoch Area9 a pôvodne sa volal Flow, ale pred otvorením kódu bolo rozhodnuté premenovať ho na Flow9, aby sa predišlo rušeniu so štatistickým analyzátorom. flow z Facebooku.

Flow9 kombinuje známu syntax podobnú jazyku C (pozri nákupný kód vo Flow9 a JavaScript), s funkčnými programovacími nástrojmi v tomto štýle ML и príležitosti doménovo špecifické jazyky so zameraním na čo najefektívnejšie riešenie konkrétnych problémov (pre Flow9 ide o vývoj rozhrania). Flow9 je navrhnutý tak, aby používal prísne písanie, no v prípade potreby je možné použiť dynamické písanie s automatickou detekciou typu, ako aj odkazy. Podporovaný je polymorfizmus (jedna funkcia dokáže spracovávať dáta rôznych typov), možnosť vytvárať podtypy, moduly, polia, hashe, lambda výrazy.

Rovnaký kód je možné zostaviť pre rôzne platformy, bez potreby samostatného portovania a zmien kódu. Tá istá aplikácia môže bežať v prehliadači, na mobilných zariadeniach s dotykovými obrazovkami a na stolných počítačoch s klávesnicou a myšou. Ponúkame hotovú kolekciu komponentov s prvkami rozhrania v štýle React, navrhnutých v súlade s konceptom Google Material Design. Dizajn je možné ovládať až na úroveň pixelov. Na nastavenie štýlov jeden môže použite štandardnú syntax CSS. Na vykresľovanie v systémoch Linux, MacOS a Windows pri kompilácii v C++ použitý backend založený na Qt s OpenGL a pri kompilácii v jazyku Java - JavaFX.

Vďaka použitiu techník funkčného programovania je možné písaný kód a komponenty rozhrania ľahko požičať z iných projektov. Jazyk je veľmi kompaktný a obsahuje iba 25 kľúčových slov a popis gramatiky sa zmestí do 255 riadkov spolu s komentármi. Na implementáciu rovnakej funkcionality na Flow9 je potrebných 2-4 krát menej kódu ako na HTML+CSS+JavaScript, C#, Swift alebo Java. Napríklad, ak pre test aplikácie Tic-Tac-Toe od sprievodcov pre React to trvalo napísať 200 riadkov kódu v React/JavaScript/HTML/CSS, pre Flow9 sa nám to podarilo v 83 riadkoch. Navyše túto aplikáciu je možné nielen spustiť v prehliadači, ale aj skompilovať do podoby mobilných aplikácií pre iOS a Android.

Platforma obsahuje hlavný kompilátor toku, napísaný vo Flow9 a schopný pracovať ako kompilačný server; kompilátor toku referencií (zapísaný v haxe); debugger s podporou protokolu gdb; profilovací systém s analyzátorom pamäte a debuggerom na zberač odpadu; JIT kompilátor pre x86_64 systémy; tlmočník pre ARM a iné platformy; nástroje na selektívnu kompiláciu najdôležitejších častí kódu v C++ a Java; pluginy pre integráciu s editormi kódu Visual Code, Sublime Text, Kate a Emacs; generátor analyzátora (PEG).

Zdroj: opennet.ru

Pridať komentár