Odprtokodni programski jezik Flow9

Podjetje Area9 odprl izvorne kode funkcijskega programskega jezika pretok9, osredotočen na ustvarjanje uporabniških vmesnikov. Kodo v jeziku Flow9 je mogoče prevesti v izvedljive datoteke za Linux, iOS, Android, Windows in macOS ter prevesti v spletne aplikacije v HTML5/JavaScript (WebAssembly) ali izvorna besedila v Javi, D, Lisp, ML in C++. Koda prevajalnika odprto je licenciran pod GPLv2 in standardna knjižnica je licencirana pod licenco MIT.

Jezik se razvija od leta 2010 kot univerzalna in večplatformska alternativa Adobe Flashu. Flow9 je pozicioniran kot platforma za ustvarjanje sodobnih grafičnih vmesnikov, ki se lahko uporabljajo tako za spletne kot za namizne in mobilne aplikacije. Projekt se uporablja v številnih internih projektih Area9 in se je prvotno imenoval Flow, vendar je bilo pred odpiranjem kode odločeno, da se preimenuje v Flow9, da bi se izognili motnjam v statističnem analizatorju Pretok iz Facebooka.

Flow9 združuje znano sintakso, podobno jeziku C (glejte primerjava kodo v Flow9 in JavaScript), s funkcionalnimi programskimi orodji v slogu ML и priložnosti domensko specifični jeziki, osredotočeni na čim bolj učinkovito reševanje specifičnih problemov (za Flow9 je to razvoj vmesnika). Flow9 je zasnovan za uporabo strogega tipkanja, po potrebi pa je mogoče uporabiti dinamično tipkanje s samodejnim zaznavanjem tipa, kot tudi povezave. Podprt je polimorfizem (ena funkcija lahko obdeluje podatke različnih tipov), možnost ustvarjanja podtipov, modulov, nizov, zgoščenj, lambda izrazov.

Isto kodo je mogoče prevesti za različne platforme, ne da bi bilo treba ločeno prenašati in spreminjati kodo. Ista aplikacija se lahko izvaja v brskalniku, na mobilnih napravah z zasloni na dotik in na namiznih sistemih s tipkovnico in miško. Ponujamo že pripravljeno zbirko komponent z elementi vmesnika v slogu React, oblikovanih v skladu s konceptom Google Material Design. Oblikovanje je mogoče nadzorovati do ravni slikovnih pik. Za nastavitev stilov eno lahko uporabite standardno sintakso CSS. Za upodabljanje v sistemih Linux, macOS in Windows, ko je preveden v C++ rabljeni backend, ki temelji na Qt z OpenGL, in ko je preveden v Javo - JavaFX.

Zahvaljujoč uporabi tehnik funkcionalnega programiranja si je napisano kodo in komponente vmesnika mogoče enostavno izposoditi iz drugih projektov. Jezik je zelo kompakten in vključuje samo 25 ključnih besed, slovnični opis pa se skupaj s komentarji prilega 255 vrsticam. Za implementacijo enake funkcionalnosti na Flow9 je potrebno 2-4 krat manj kode kot na HTML+CSS+JavaScript, C#, Swift ali Java. Na primer, če za testno aplikacijo Tic-Tac-Toe iz vodniki za React je bilo potrebno napisati 200 vrstic kode v React/JavaScript/HTML/CSS, za Flow9 nam je to uspelo v 83 vrsticah. Poleg tega te aplikacije ni mogoče samo zagnati v brskalniku, temveč jo tudi sestaviti v obliki mobilnih aplikacij za iOS in Android.

Platforma vključuje glavni prevajalnik flowc, napisan v Flow9 in zmožen delati kot strežnik za prevajanje; prevajalnik referenčnega toka (napisano v členek); razhroščevalnik s podporo za protokol gdb; sistem za profiliranje z analizatorjem pomnilnika in razhroščevalnikom smeti; prevajalnik JIT za sisteme x86_64; tolmač za ARM in druge platforme; orodja za selektivno prevajanje v C++ in Javi najbolj kritičnih delov kode; vtičniki za integracijo z urejevalniki kod Visual Code, Sublime Text, Kate in Emacs; generator razčlenjevalnika (PEG).

Vir: opennet.ru

Dodaj komentar