Llenguatge de programació Flow9 de codi obert

Empresa Area9 obert codis font del llenguatge de programació funcional Flux9, centrat en la creació d'interfícies d'usuari. El codi en llenguatge Flow9 es pot compilar en fitxers executables per a Linux, iOS, Android, Windows i macOS, i es pot traduir a aplicacions web en HTML5/JavaScript (WebAssembly) o textos font en Java, D, Lisp, ML i C++. Codi del compilador obert té una llicència GPLv2 i la biblioteca estàndard té la llicència MIT.

El llenguatge s'ha desenvolupat des del 2010 com una alternativa universal i multiplataforma a Adobe Flash. Flow9 es posiciona com una plataforma per crear interfícies gràfiques modernes que es poden utilitzar tant per a la web com per a aplicacions d'escriptori i mòbils. El projecte s'utilitza en molts projectes interns d'Area9 i originalment s'anomenava Flow, però abans d'obrir el codi es va decidir reanomenar-lo a Flow9 per evitar interferències amb l'analitzador estadístic. Flux de Facebook.

Flow9 combina una sintaxi familiar similar al llenguatge C (vegeu comparació codi en Flow9 i JavaScript), amb eines de programació funcionals a l'estil ML и oportunitats Llenguatges específics del domini enfocats a resoldre problemes específics de la manera més eficient possible (per a Flow9 això és el desenvolupament d'interfícies). Flow9 està dissenyat per utilitzar una mecanografia estricta, però si és necessari, és possible utilitzar una mecanografia dinàmica amb detecció automàtica de tipus, així com enllaços. S'admet el polimorfisme (una funció pot processar dades de diferents tipus), la capacitat de crear subtipus, mòduls, matrius, hash, expressions lambda.

El mateix codi es pot compilar per a diferents plataformes, sense necessitat de portar i modificar el codi per separat. La mateixa aplicació es pot executar en un navegador, en dispositius mòbils amb pantalles tàctils i en sistemes d'escriptori amb teclat i ratolí. Oferim una col·lecció ja feta de components amb elements d'interfície a l'estil React, dissenyats d'acord amb el concepte de Google Material Design. El disseny es pot controlar fins al nivell de píxel. Per establir estils un pot utilitzar la sintaxi CSS estàndard. Per a la representació a Linux, macOS i Windows quan es compila en C++ usat backend basat en Qt amb OpenGL, i quan es compila en Java - JavaFX.

Gràcies a l'ús de tècniques de programació funcional, el codi escrit i els components de la interfície es poden agafar fàcilment d'altres projectes. El llenguatge és molt compacte i inclou només 25 paraules clau, i la descripció gramatical s'adapta a 255 línies juntament amb els comentaris. Per implementar una funcionalitat idèntica a Flow9, es necessita entre 2 i 4 vegades menys codi que en HTML+CSS+JavaScript, C#, Swift o Java. Per exemple, si per a l'aplicació de prova Tic-Tac-Toe de guies per a React va necessitar escriure 200 línies de codi en React/JavaScript/HTML/CSS, per a Flow9 vam aconseguir fer-ho en 83 línies. A més, aquesta aplicació no només es pot llançar al navegador, sinó que també es pot compilar en forma d'aplicacions mòbils per a iOS i Android.

La plataforma inclou el compilador flowc principal, escrit en Flow9 i capaç de funcionar com a servidor de compilació; compilador de referència de flux (escrit en haxe); depurador amb suport de protocol gdb; un sistema de perfilació amb un analitzador de memòria i un depurador de recollida d'escombraries; compilador JIT per a sistemes x86_64; intèrpret per a ARM i altres plataformes; eines per a la compilació selectiva en C++ i Java de les parts del codi més crítiques pel rendiment; connectors per a la integració amb els editors de codi Visual Code, Sublime Text, Kate i Emacs; generador d'analitzadors (PEG).

Font: opennet.ru

Afegeix comentari