Flow9 programozási nyelv nyílt forráskódú

Area9 Társaság nyitott funkcionális programozási nyelv forráskódjai Flow9, amely a felhasználói felületek létrehozására összpontosított. A Flow9 nyelvű kód futtatható fájlokká fordítható Linux, iOS, Android, Windows és macOS rendszerekhez, és lefordítható webalkalmazásokká HTML5/JavaScript nyelven (WebAssembly), vagy forrásszövegként Java, D, Lisp, ML és C++ nyelven. Fordító kód nyisd ki a GPLv2, a szabványos könyvtár pedig az MIT licenc alatt van licencelve.

A nyelvet 2010 óta fejlesztik az Adobe Flash univerzális és többplatformos alternatívájaként. A Flow9 platformot jelent a modern grafikus felületek létrehozásához, amelyek webes és asztali és mobil alkalmazásokhoz egyaránt használhatók. A projektet számos belső Area9 projektben használják, eredeti neve Flow, de a kód megnyitása előtt úgy döntöttek, hogy átnevezzük Flow9-re, hogy elkerüljük a statisztikai elemzővel való interferenciát. Folyik a Facebookról.

A Flow9 a C nyelvhez hasonló ismert szintaxist kombinál (lásd összehasonlítás kód Flow9-ben és JavaScriptben), funkcionális programozási eszközökkel a stílusban ML и lehetőségeket domain-specifikus nyelvek, amelyek konkrét problémák lehető leghatékonyabb megoldására összpontosítanak (a Flow9 esetében ez az interfészfejlesztés). A Flow9 szigorú gépelésre készült, de szükség esetén lehetőség van dinamikus gépelésre automatikus típusészlelés mellett, valamint referencia. A polimorfizmus támogatott (egy függvény különböző típusú adatokat tud feldolgozni), altípusok, modulok, tömbök, hash-ek, lambda kifejezések létrehozásának lehetősége.

Ugyanaz a kód lefordítható különböző platformokhoz anélkül, hogy külön portolásra és a kód módosítására lenne szükség. Ugyanaz az alkalmazás futhat böngészőben, érintőképernyős mobileszközökön, valamint billentyűzettel és egérrel rendelkező asztali rendszereken. Kész komponensgyűjteményt kínálunk React stílusú interfész elemekkel, a Google Material Design koncepciójának megfelelően. A dizájn egészen pixelszintig vezérelhető. Stílusok beállításához tud szabványos CSS szintaxist használjon. Rendereléshez Linuxon, macOS-en és Windowson, ha C++ nyelven fordítják le használt a Qt-n alapuló háttérrendszer OpenGL-lel, és ha Java-ban van lefordítva - JavaFX.

A funkcionális programozási technikák használatának köszönhetően az írott kód és interfész komponensek könnyen kölcsönözhetők más projektekből. A nyelv nagyon kompakt, és mindössze 25 kulcsszót tartalmaz, a nyelvtani leírás pedig 255 sorba illeszkedik a megjegyzésekkel együtt. Az azonos funkcionalitás megvalósításához a Flow9-en 2-4-szer kevesebb kódra van szükség, mint HTML+CSS+JavaScript, C#, Swift vagy Java esetén. Például, ha a tesztalkalmazáshoz a Tic-Tac-Toe from útmutatók A React esetében 200 sornyi kódot kellett megírni React/JavaScript/HTML/CSS-ben, a Flow9 esetében pedig 83 sorral sikerült. Sőt, ez az alkalmazás nem csak a böngészőben indítható el, hanem iOS és Android mobilalkalmazások formájában is lefordítható.

A platform tartalmazza a fő flowc fordítót, amely Flow9 nyelven íródott, és fordítószerverként is képes működni; áramlási referencia fordító (írva haxe); hibakereső gdb protokoll támogatással; profilozó rendszer memóriaelemzővel és szemétgyűjtő hibakeresővel; JIT fordító x86_64 rendszerekhez; tolmács az ARM-hez és más platformokhoz; eszközök a kód teljesítmény szempontjából legkritikusabb részeinek C++ és Java nyelven történő szelektív fordításához; bővítmények a Visual Code, Sublime Text, Kate és Emacs kódszerkesztőkkel való integrációhoz; értelmező generátor (PEG).

Forrás: opennet.ru

Hozzászólás