Flow9 programmeertaal open source

Area9-bedrijf geopend functionele programmeertaalbroncodes Flow9, gericht op het creëren van gebruikersinterfaces. Code in de Flow9-taal kan worden gecompileerd tot uitvoerbare bestanden voor Linux, iOS, Android, Windows en macOS, en worden vertaald naar webapplicaties in HTML5/JavaScript (WebAssembly) of bronteksten in Java, D, Lisp, ML en C++. Compilercode is open is gelicentieerd onder GPLv2 en de standaardbibliotheek is gelicentieerd onder de MIT-licentie.

De taal ontwikkelt zich sinds 2010 als een universeel en multi-platform alternatief voor Adobe Flash. Flow9 is gepositioneerd als een platform voor het creëren van moderne grafische interfaces die kunnen worden gebruikt voor zowel het web als desktop- en mobiele applicaties. Het project wordt in veel interne Area9-projecten gebruikt en heette oorspronkelijk Flow, maar voordat de code werd geopend, werd besloten de naam Flow9 te hernoemen om interferentie met de statistische analysator te voorkomen Stroom van Facebook.

Flow9 combineert een bekende syntaxis die lijkt op de C-taal (zie сравнение code in Flow9 en JavaScript), met functionele programmeertools in de stijl ML и kansen domeinspecifieke talen gericht op het zo efficiënt mogelijk oplossen van specifieke problemen (voor Flow9 is dit interface-ontwikkeling). Flow9 is ontworpen om strikt typen te gebruiken, maar indien nodig is het mogelijk om dynamisch typen te gebruiken met automatische typedetectie, evenals referentie. Polymorfisme wordt ondersteund (één functie kan gegevens van verschillende typen verwerken), de mogelijkheid om subtypen, modules, arrays, hashes en lambda-expressies te maken.

Dezelfde code kan voor verschillende platforms worden samengesteld, zonder dat er afzonderlijke portering en wijzigingen in de code nodig zijn. Dezelfde applicatie kan worden uitgevoerd in een browser, op mobiele apparaten met aanraakschermen en op desktopsystemen met een toetsenbord en muis. Wij bieden een kant-en-klare verzameling componenten met interface-elementen in de React-stijl, ontworpen volgens het Google Material Design-concept. Het ontwerp kan tot op pixelniveau worden gecontroleerd. Om stijlen in te stellen men kan gebruik de standaard CSS-syntaxis. Voor weergave op Linux, macOS en Windows wanneer gecompileerd in C++ gebruikt backend gebaseerd op Qt met OpenGL, en wanneer gecompileerd in Java - JavaFX.

Dankzij het gebruik van functionele programmeertechnieken kunnen de geschreven code en interfacecomponenten eenvoudig worden geleend van andere projecten. De taal is erg compact en bevat slechts 25 trefwoorden, en de grammaticabeschrijving past in 255 regels, samen met commentaar. Om identieke functionaliteit op Flow9 te implementeren is 2-4 keer minder code nodig dan op HTML+CSS+JavaScript, C#, Swift of Java. Als u bijvoorbeeld voor de testtoepassing Tic-Tac-Toe uit gidsen voor React waren er 200 regels code nodig in React/JavaScript/HTML/CSS, voor Flow9 zijn we erin geslaagd dit in 83 regels te doen. Bovendien kan deze applicatie niet alleen in de browser worden gestart, maar ook worden gecompileerd in de vorm van mobiele applicaties voor iOS en Android.

Het platform bevat de belangrijkste flowc-compiler, geschreven in Flow9 en kan werken als een compilatieserver; stroomreferentie-compiler (geschreven in hax); debugger met ondersteuning voor het gdb-protocol; een profileringssysteem met een geheugenanalysator en een garbage collector-debugger; JIT-compiler voor x86_64-systemen; tolk voor ARM en andere platforms; tools voor selectieve compilatie in C++ en Java van de meest prestatiekritische delen van de code; plug-ins voor integratie met code-editors Visual Code, Sublime Text, Kate en Emacs; parsergenerator (PEG).

Bron: opennet.ru

Voeg een reactie