Flow9 programski jezik otvorenog koda

Area9 Company otvorio izvorni kodovi funkcionalnog programskog jezika Flow9, fokusiran na kreiranje korisničkih interfejsa. Kod na jeziku Flow9 može se kompajlirati u izvršne datoteke za Linux, iOS, Android, Windows i macOS i prevesti u web aplikacije u HTML5/JavaScript (WebAssembly) ili izvorne tekstove u Javi, D, Lisp, ML i C++. Kod kompajlera otvoren je licencirana pod GPLv2, a standardna biblioteka je licencirana pod MIT licencom.

Jezik se razvija od 2010. godine kao univerzalna i višeplatformska alternativa Adobe Flash-u. Flow9 je pozicioniran kao platforma za kreiranje modernih grafičkih interfejsa koji se mogu koristiti i za Web i za desktop i mobilne aplikacije. Projekat se koristi u mnogim internim Area9 projektima i izvorno se zvao Flow, ali prije otvaranja koda odlučeno je da se preimenuje u Flow9 kako bi se izbjegle smetnje sa statističkim analizatorom. Flow sa Facebooka.

Flow9 kombinuje poznatu sintaksu sličnu jeziku C (vidi poređenje kod u Flow9 i JavaScript), sa funkcionalnim programskim alatima u stilu ML и mogućnosti domenski specifični jezici fokusirani na rješavanje specifičnih problema što je moguće efikasnije (za Flow9 ovo je razvoj interfejsa). Flow9 je dizajniran da koristi strogo kucanje, ali ako je potrebno, moguće je koristiti dinamičko kucanje sa automatskom detekcijom tipa, kao i linkovi. Podržan je polimorfizam (jedna funkcija može obraditi podatke različitih tipova), mogućnost kreiranja podtipova, modula, nizova, hashova, lambda izraza.

Isti kod se može kompajlirati za različite platforme, bez potrebe za odvojenim prijenosom i promjenama koda. Ista aplikacija može da radi u pretraživaču, na mobilnim uređajima sa ekranima osetljivim na dodir i na desktop sistemima sa tastaturom i mišem. Nudimo gotovu kolekciju komponenti sa elementima interfejsa u React stilu, dizajniranih u skladu sa Google Material Design konceptom. Dizajn se može kontrolisati sve do nivoa piksela. Za postavljanje stilova moći koristite standardnu ​​CSS sintaksu. Za renderiranje na Linuxu, macOS-u i Windowsu kada se kompajlira u C++ polovan backend baziran na Qt-u sa OpenGL-om, a kada se kompajlira u Javi - JavaFX.

Zahvaljujući korištenju tehnika funkcionalnog programiranja, pisani kod i komponente interfejsa mogu se lako posuditi iz drugih projekata. Jezik je vrlo kompaktan i uključuje samo 25 ključnih riječi, a gramatički opis staje u 255 redova zajedno s komentarima. Za implementaciju identične funkcionalnosti na Flow9, potrebno je 2-4 puta manje koda nego na HTML+CSS+JavaScript, C#, Swift ili Java. Na primjer, ako za testnu aplikaciju Tic-Tac-Toe from vodiči za React je bilo potrebno napisati 200 linija koda u React/JavaScript/HTML/CSS, za Flow9 smo to uspjeli napraviti u 83 reda. Štaviše, ova aplikacija se ne može samo pokrenuti u pretraživaču, već i kompajlirati u obliku mobilnih aplikacija za iOS i Android.

Platforma uključuje glavni flowc kompajler, napisan u Flow9 i sposoban da radi kao kompilacijski server; kompajler reference toka (upisan u zglob); debuger sa podrškom za gdb protokol; sistem profilisanja sa analizatorom memorije i debugerom sakupljača smeća; JIT kompajler za x86_64 sisteme; tumač za ARM i druge platforme; alati za selektivnu kompilaciju u C++ i Javi najkritičnijih delova koda; dodaci za integraciju sa uređivačima koda Visual Code, Sublime Text, Kate i Emacs; generator parsera (PEG).

izvor: opennet.ru

Dodajte komentar