Flow9 programski jezik otvorenog koda

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

Jezik se razvija od 2010. kao univerzalna i višeplatformska alternativa Adobe Flashu. Flow9 je pozicioniran kao platforma za kreiranje modernih grafičkih sučelja koja se mogu koristiti i za web i za desktop i mobilne aplikacije. Projekt se koristi u mnogim internim Area9 projektima i izvorno se zvao Flow, ali prije otvaranja koda odlučeno je preimenovati ga u Flow9 kako bi se izbjeglo ometanje statističkog analizatora Protok s Facebooka.

Flow9 kombinira poznatu sintaksu sličnu C jeziku (vidi usporedba kod u Flow9 i JavaScript), s funkcionalnim alatima za programiranje u stilu ML и prilike jezici specifični za domenu usmjereni na što učinkovitije rješavanje specifičnih problema (za Flow9 ovo je razvoj sučelja). Flow9 je dizajniran da koristi striktno tipkanje, ali ako je potrebno, moguće je koristiti dinamičko tipkanje s automatskom detekcijom tipa, kao i poveznice. Podržan je polimorfizam (jedna funkcija može obraditi podatke različitih tipova), mogućnost stvaranja podtipova, modula, nizova, hashova, lambda izraza.

Isti kod može se kompajlirati za različite platforme, bez potrebe za zasebnim prijenosom i promjenama koda. Ista aplikacija može se pokrenuti u pregledniku, na mobilnim uređajima sa zaslonom osjetljivim na dodir i na stolnim sustavima s tipkovnicom i mišem. Nudimo gotovu kolekciju komponenti s elementima sučelja u React stilu, dizajniranim u skladu s konceptom Google Material Design. Dizajn se može kontrolirati do razine piksela. Za postavljanje stilova može se koristiti standardnu ​​CSS sintaksu. Za iscrtavanje na Linuxu, macOS-u i Windowsima kada se kompajlira u C++ polovan backend temeljen na Qt-u s OpenGL-om, a kada se kompajlira u Javi - JavaFX.

Zahvaljujući korištenju tehnika funkcionalnog programiranja, pisani kod i komponente sučelja mogu se lako posuditi iz drugih projekata. Jezik je vrlo kompaktan i uključuje samo 25 ključnih riječi, a gramatički opis stane u 255 redaka 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 iz rukovodstvo za React je bilo potrebno napisati 200 linija koda u React/JavaScript/HTML/CSS, za Flow9 uspjeli smo to napraviti u 83 linije. Štoviše, ova aplikacija ne samo da se može pokrenuti u pregledniku, već i kompajlirati u obliku mobilnih aplikacija za iOS i Android.

Platforma uključuje glavni flowc kompajler, napisan u Flow9 i sposoban raditi kao poslužitelj kompilacije; prevodilac reference toka (napisano u haxe); program za ispravljanje pogrešaka s podrškom za gdb protokol; sustav za profiliranje s analizatorom memorije i debuggerom za sakupljanje smeća; JIT kompajler za x86_64 sustave; tumač za ARM i druge platforme; alati za selektivnu kompilaciju u C++ i Javi dijelova koda koji su najkritičniji za performanse; dodaci za integraciju s uređivačima koda Visual Code, Sublime Text, Kate i Emacs; generator parsera (PEG).

Izvor: opennet.ru

Dodajte komentar