Kompania Area9 tekste burimore të një gjuhe programuese funksionale , e orientuar drejt krijimit të ndërfaqeve përdoruese. Kodi në gjuhën Flow9 mund të kompilojë në skedarë ekzekutues për Linux, iOS, Android, Windows dhe macOS, si dhe të përkthehet në formën e aplikacioneve web në HTML5/JavaScript (WebAssembly) ose në tekste burimore në gjuhët Java, D, Lisp, ML dhe C++. Kodi i kompilatorit nën licencën GPLv2, ndërsa biblioteka standarde nën licencën MIT.
Gjuha është duke u zhvilluar që nga viti 2010 si një alternativë universale dhe multi-platforme ndaj Adobe Flash. Flow9 pozicionohet si një platformë për krijimin e ndërfaqeve grafike moderne, e cila mund të përdoret si për Web, ashtu edhe për aplikacione desktop dhe mobile. Projekti përdoret në shumë projekte të brendshme të Area9 dhe fillimisht quhej Flow, por para hapjes së kodit u vendos të ribëhet emri në Flow9 për të shmangur ndërprerjet me analizuesin statistik nga kompania Facebook.
Flow9 bashkon sintaksën e njohur që ngjan me gjuhën C (shih kodi në Flow9 dhe JavaScript), me mjetet e programimit funksional në stil dhe e gjuhëve të orientuar ndaj subjekteve, të përqendruara në zgjidhjen sa më efikase të problemeve specifike (për Flow9 kjo është zhvillimi i ndërfaqeve). Flow9 është i dizajnuar për të aplikuar tipizimin e fortë, por nëse është e nevojshme, parashikohet mundësia e përdorimit të tipizimit dinamik me përcaktimin automatik të tipeve, si dhe . Mbështetet polimorfizmi (një funksion mund të përpunojë të dhëna të tipeve të ndryshme), mundësia e krijimit të subtiplave, modulet, tabelat, heshat, shprehjet lambda.
I njĂ«jti kod mund tĂ« kompilohet pĂ«r platforma tĂ« ndryshme, pa nevojĂ«n pĂ«r portim tĂ« veçantĂ« dhe modifikimin e kodit. E njĂ«jta aplikacion mund tĂ« ekzekutohet nĂ« shfletues, nĂ« pajisje mobile me ekrane prekje dhe nĂ« sisteme desktop me tastierĂ« dhe maus. Ofrohet njĂ« koleksion i gatshĂ«m komponentĂ«sh me elementĂ« tĂ« ndĂ«rfaqeve nĂ« stilin React, i ndĂ«rtuar sipas konceptit tĂ« Google Material Design. Stilimi mund tĂ« kontrollohet deri nĂ« nivelin e pikselĂ«ve. PĂ«r tĂ« caktuar stilet pĂ«rdoren sintaksat standarde CSS. PĂ«r vizatimin nĂ« Linux, macOS dhe Windows gjatĂ« kompilimit nĂ« C++ backend nĂ« bazĂ« tĂ« Qt me OpenGL, dhe gjatĂ« kompilimit nĂ« Java â JavaFX.
Falë përdorimit të metodave të programimit funksional, kodi dhe komponentët e ndërfaqes të shkruar janë lehtësisht të huazuara në projekte të tjera. Gjuha është shumë kompakte dhe përfshin vetëm 25 fjalë kyçe, ndërsa përshkrimi i gramatikës përmbahet në 255 rreshta, përfshirë komentet. Për të realizuar funksionalitet identik në Flow9, nevojitet 2-4 herë më pak kod sesa në HTML+CSS+JavaScript, C#, Swift ose Java. Për shembull, nëse për aplikacionin testues Tic-Tac-Toe nga me React nevojitet shkruarja e 200 rreshtave të kodit në React/JavaScript/HTML/CSS, në Flow9 arrijmë të qëndrojmë në 83 rreshta. Në të njëjtën kohë, ky aplikacion mund të ekzekutohet jo vetëm në shfletues, por gjithashtu të komilohet në formën e aplikacioneve mobile për iOS dhe Android.
Platforma përfshin kompilatorin kryesor flowc, i shkruar në Flow9 dhe i aftë të funksionojë si server kompilimi; për kompilatorin referencë flow (i shkruar në ); debugin, me mbështetje për protokollin gdb; sistemin e profilizimit me analizues të kujtesës dhe debugin e mbledhësit të mbeturinave; JIT-kompilatori për sistemet x86_64; interpretor për ARM dhe platforma të tjera; mjetet për kompilim selektiv në C++ dhe Java pjesët më kritikë për performancën e kodit; pluginat për integrimin me redaktorët e kodit Visual Code, Sublime Text, Kate dhe Emacs; gjeneratorin e parserave ().
Burimi: opennet.ru
