Flow9 programmeringsspråk öppen källkod

Area9 Company öppnad funktionella källkoder för programmeringsspråk Flöde 9, fokuserat på att skapa användargränssnitt. Kod på Flow9-språket kan kompileras till körbara filer för Linux, iOS, Android, Windows och macOS, och översättas till webbapplikationer i HTML5/JavaScript (WebAssembly) eller källtexter i Java, D, Lisp, ML och C++. Kompilatorkod är öppen är licensierad under GPLv2 och standardbiblioteket är licensierad under MIT-licensen.

Språket har utvecklats sedan 2010 som ett universellt och multiplattformsalternativ till Adobe Flash. Flow9 är positionerat som en plattform för att skapa moderna grafiska gränssnitt som kan användas för både webben och stationära och mobila applikationer. Projektet används i många interna Area9-projekt och hette ursprungligen Flow, men innan koden öppnades beslutades det att döpa om det till Flow9 för att undvika störningar med den statistiska analysatorn Flöde från Facebook.

Flow9 kombinerar en välbekant syntax som liknar C-språket (se jämförelse kod i Flow9 och JavaScript), med funktionella programmeringsverktyg i stilen ML и möjligheter domänspecifika språk fokuserade på att lösa specifika problem så effektivt som möjligt (för Flow9 är detta gränssnittsutveckling). Flow9 är designat för att använda strikt typning, men vid behov är det möjligt att använda dynamisk typning med automatisk typdetektering, samt länkar. Polymorfism stöds (en funktion kan bearbeta data av olika typer), möjligheten att skapa undertyper, moduler, arrayer, hash, lambda-uttryck.

Samma kod kan kompileras för olika plattformar, utan behov av separat portering och ändringar av koden. Samma applikation kan köras i en webbläsare, på mobila enheter med pekskärmar och på stationära system med tangentbord och mus. Vi erbjuder en färdig samling komponenter med gränssnittselement i React-stil, designade i enlighet med Google Material Design-konceptet. Designen kan styras ner till pixelnivå. För att ställa in stilar kan man använd standard CSS-syntax. För rendering på Linux, macOS och Windows när de kompileras i C++ används backend baserad på Qt med OpenGL, och när den kompileras i Java - JavaFX.

Tack vare användningen av funktionella programmeringstekniker kan den skrivna koden och gränssnittskomponenterna enkelt lånas från andra projekt. Språket är mycket kompakt och innehåller endast 25 nyckelord, och grammatikbeskrivningen ryms i 255 rader tillsammans med kommentarer. För att implementera identisk funktionalitet på Flow9 krävs 2-4 gånger mindre kod än på HTML+CSS+JavaScript, C#, Swift eller Java. Till exempel om för testapplikationen Tic-Tac-Toe från guider för React tog det att skriva 200 rader kod i React/JavaScript/HTML/CSS, för Flow9 lyckades vi göra det på 83 rader. Dessutom kan denna applikation inte bara startas i webbläsaren, utan också kompileras i form av mobilapplikationer för iOS och Android.

Plattformen inkluderar den huvudsakliga flowc-kompilatorn, skriven i Flow9 och kan fungera som en kompileringsserver; flödesreferenskompilator (skriven i ben); debugger med gdb-protokollstöd; ett profileringssystem med en minnesanalysator och en avlusare för sopsamlare; JIT-kompilator för x86_64-system; tolk för ARM och andra plattformar; verktyg för selektiv kompilering i C++ och Java av de mest prestandakritiska delarna av koden; plugins för integration med kodredigerare Visual Code, Sublime Text, Kate och Emacs; parsergenerator (PEG).

Källa: opennet.ru

Lägg en kommentar