Open source programovací jazyk Flow9

Společnost Area9 otevřel zdrojové kódy funkčních programovacích jazyků Flow9, zaměřený na tvorbu uživatelských rozhraní. Kód v jazyce Flow9 lze zkompilovat do spustitelných souborů pro Linux, iOS, Android, Windows a macOS a přeložit do webových aplikací v HTML5/JavaScriptu (WebAssembly) nebo do zdrojových textů v Javě, D, Lisp, ML a C++. Kód kompilátoru je otevřeno je licencována pod GPLv2 a standardní knihovna je licencována pod licencí MIT.

Jazyk se vyvíjí od roku 2010 jako univerzální a multiplatformní alternativa k Adobe Flash. Flow9 je umístěn jako platforma pro vytváření moderních grafických rozhraní, která lze použít jak pro web, tak pro desktopové a mobilní aplikace. Projekt se používá v mnoha interních projektech Area9 a původně se jmenoval Flow, ale před otevřením kódu bylo rozhodnuto jej přejmenovat na Flow9, aby se zabránilo interferenci se statistickým analyzátorem. Flow z Facebooku.

Flow9 kombinuje známou syntaxi podobnou jazyku C (viz srovnání kód ve Flow9 a JavaScript), s funkčními programovacími nástroji ve stylu ML и příležitosti doménově specifické jazyky zaměřené na co nejefektivnější řešení konkrétních problémů (pro Flow9 se jedná o vývoj rozhraní). Flow9 je navržen pro použití striktního psaní, ale v případě potřeby je možné použít dynamické psaní s automatickou detekcí typu, stejně jako odkazy. Podporován je polymorfismus (jedna funkce může zpracovávat data různých typů), možnost vytvářet podtypy, moduly, pole, hashe, lambda výrazy.

Stejný kód lze zkompilovat pro různé platformy, bez nutnosti samostatného portování a změn kódu. Stejnou aplikaci lze spustit v prohlížeči, na mobilních zařízeních s dotykovými obrazovkami a na stolních systémech s klávesnicí a myší. Nabízíme hotovou kolekci komponent s prvky rozhraní ve stylu React, navrženou v souladu s konceptem Google Material Design. Design lze ovládat až na úroveň pixelů. Chcete-li nastavit styly jeden může použijte standardní syntaxi CSS. Pro vykreslování v systémech Linux, macOS a Windows při kompilaci v C++ použitý backend založený na Qt s OpenGL a při kompilaci v Javě - JavaFX.

Díky využití technik funkcionálního programování lze psaný kód a komponenty rozhraní snadno vypůjčit z jiných projektů. Jazyk je velmi kompaktní a obsahuje pouze 25 klíčových slov a popis gramatiky se vejde do 255 řádků spolu s komentáři. K implementaci stejné funkce na Flow9 je potřeba 2-4krát méně kódu než na HTML+CSS+JavaScript, C#, Swift nebo Java. Například pokud pro testovací aplikaci Tic-Tac-Toe od průvodci pro React bylo potřeba napsat 200 řádků kódu v React/JavaScript/HTML/CSS, pro Flow9 jsme to zvládli na 83 řádcích. Tuto aplikaci lze navíc nejen spustit v prohlížeči, ale také zkompilovat do podoby mobilních aplikací pro iOS a Android.

Platforma obsahuje hlavní kompilátor toku, napsaný ve Flow9 a schopný pracovat jako kompilační server; kompilátor toku reference (zapsaný v noha); debugger s podporou protokolu gdb; profilovací systém s analyzátorem paměti a debuggerem pro sběrač odpadků; JIT kompilátor pro systémy x86_64; interpret pro ARM a další platformy; nástroje pro selektivní kompilaci nejkritičtějších částí kódu v C++ a Javě; pluginy pro integraci s editory kódu Visual Code, Sublime Text, Kate a Emacs; generátor analyzátoru (PEG).

Zdroj: opennet.ru

Přidat komentář