Flow9 programavimo kalba atviro kodo

„Area9“ įmonė atidarytas funkcinių programavimo kalbų šaltinio kodai Flow9, orientuota į vartotojo sąsajų kūrimą. Kodą Flow9 kalba galima kompiliuoti į vykdomuosius failus, skirtus Linux, iOS, Android, Windows ir macOS, ir išversti į žiniatinklio programas HTML5/JavaScript (WebAssembly) arba šaltinio tekstus Java, D, Lisp, ML ir C++. Kompiliatoriaus kodas atviras yra licencijuota pagal GPLv2, o standartinė biblioteka yra licencijuota pagal MIT licenciją.

Kalba buvo kuriama nuo 2010 m. kaip universali ir kelių platformų alternatyva Adobe Flash. „Flow9“ yra platforma, skirta kurti modernias grafines sąsajas, kurios gali būti naudojamos tiek žiniatinklyje, tiek darbalaukio ir mobiliųjų įrenginių programoms. Projektas naudojamas daugelyje vidinių „Area9“ projektų ir iš pradžių vadinosi „Flow“, tačiau prieš atidarant kodą buvo nuspręsta jį pervadinti į „Flow9“, kad būtų išvengta trikdžių su statistiniu analizatoriumi. Tėkmė iš Facebook.

Flow9 sujungia pažįstamą sintaksę, panašią į C kalbą (žr palyginimas kodas „Flow9“ ir „JavaScript“) su funkciniais programavimo įrankiais ML и galimybes domenui būdingos kalbos, orientuotos į konkrečių problemų sprendimą kuo efektyviau (Flow9 tai yra sąsajos kūrimas). Flow9 sukurtas naudoti griežtą spausdinimą, tačiau esant poreikiui galima naudoti dinaminį spausdinimą su automatiniu tipo aptikimu, taip pat nuorodos. Palaikomas polimorfizmas (viena funkcija gali apdoroti skirtingų tipų duomenis), galimybė kurti potipius, modulius, masyvus, maišos, lambda išraiškas.

Tas pats kodas gali būti sudarytas skirtingoms platformoms, nereikia atskiro perkėlimo ir kodo pakeitimų. Ta pati programa gali veikti naršyklėje, mobiliuosiuose įrenginiuose su jutikliniais ekranais ir stalinių kompiuterių sistemose su klaviatūra ir pele. Siūlome paruoštą komponentų kolekciją su React stiliaus sąsajos elementais, sukurtus pagal Google Material Design koncepciją. Dizainą galima valdyti iki pikselių lygio. Norėdami nustatyti stilius vienas gali naudoti standartinę CSS sintaksę. Atvaizdavimui Linux, macOS ir Windows, kai kompiliuojama C++ naudotas backend, pagrįsta Qt su OpenGL, o kai kompiliuojama Java - JavaFX.

Dėl funkcinio programavimo technikos rašytinį kodą ir sąsajos komponentus galima lengvai pasiskolinti iš kitų projektų. Kalba labai kompaktiška ir apima tik 25 raktinius žodžius, o gramatikos aprašymas telpa į 255 eilutes kartu su komentarais. Norint įdiegti identiškas funkcijas Flow9, reikia 2–4 ​​kartus mažiau kodo nei HTML+CSS+JavaScript, C#, Swift ar Java. Pavyzdžiui, jei bandomajai programai Tic-Tac-Toe iš vadovavimas React prireikė parašyti 200 kodo eilučių React/JavaScript/HTML/CSS, Flow9 tai pavyko padaryti per 83 eilutes. Be to, šią programą galima ne tik paleisti naršyklėje, bet ir sukompiliuoti į mobiliąsias programas, skirtas iOS ir Android.

Platformoje yra pagrindinis „flowc“ kompiliatorius, parašytas „Flow9“ ir galintis veikti kaip kompiliavimo serveris; srauto nuorodų kompiliatorius (parašytas haxe); derintuvas su gdb protokolo palaikymu; profiliavimo sistema su atminties analizatoriumi ir šiukšlių rinktuvo derintuvu; JIT kompiliatorius x86_64 sistemoms; vertėjas ARM ir kitoms platformoms; įrankiai, skirti pasirinktiniam našumui svarbiausių kodo dalių kompiliavimui C++ ir Java kalbomis; įskiepiai, skirti integracijai su kodo redaktoriais Visual Code, Sublime Text, Kate ir Emacs; analizatoriaus generatorius (PEG).

Šaltinis: opennet.ru

Добавить комментарий