Linguaggio di programmazione Flow9 open source

Azienda Area9 ha aperto codici sorgente del linguaggio di programmazione funzionale Flow9, incentrato sulla creazione di interfacce utente. Il codice nel linguaggio Flow9 può essere compilato in file eseguibili per Linux, iOS, Android, Windows e macOS e tradotto in applicazioni web in HTML5/JavaScript (WebAssembly) o testi sorgente in Java, D, Lisp, ML e C++. Codice del compilatore è aperto è concesso in licenza con GPLv2 e la libreria standard è concessa in licenza con la licenza MIT.

Il linguaggio è stato sviluppato dal 2010 come alternativa universale e multipiattaforma ad Adobe Flash. Flow9 si posiziona come piattaforma per la creazione di moderne interfacce grafiche che possono essere utilizzate sia per il Web che per applicazioni desktop e mobili. Il progetto è utilizzato in molti progetti interni ad Area9 e originariamente si chiamava Flow, ma prima di aprire il codice si è deciso di rinominarlo in Flow9 per evitare interferenze con l'analizzatore statistico Flow da Facebook.

Flow9 combina una sintassi familiare simile al linguaggio C (vedi сравнение codice in Flow9 e JavaScript), con strumenti di programmazione funzionali nello stile ML и le possibilità linguaggi specifici del dominio focalizzati sulla risoluzione di problemi specifici nel modo più efficiente possibile (per Flow9 questo è lo sviluppo dell'interfaccia). Flow9 è progettato per utilizzare la digitazione rigorosa, ma, se necessario, è possibile utilizzare la digitazione dinamica con rilevamento automatico del tipo, nonché riferimento. È supportato il polimorfismo (una funzione può elaborare dati di diversi tipi), la possibilità di creare sottotipi, moduli, array, hash, espressioni lambda.

Lo stesso codice può essere compilato per piattaforme diverse, senza la necessità di porting separati e modifiche al codice. La stessa applicazione può essere eseguita in un browser, su dispositivi mobili con touch screen e su sistemi desktop con tastiera e mouse. Offriamo una raccolta già pronta di componenti con elementi di interfaccia in stile React, progettati secondo il concetto di Google Material Design. Il design può essere controllato fino al livello dei pixel. Per impostare gli stili si può utilizzare la sintassi CSS standard. Per il rendering su Linux, macOS e Windows se compilato in C++ usato backend basato su Qt con OpenGL e quando compilato in Java - JavaFX.

Grazie all'utilizzo di tecniche di programmazione funzionale, il codice scritto e i componenti dell'interfaccia possono essere facilmente presi in prestito da altri progetti. Il linguaggio è molto compatto e comprende solo 25 parole chiave e la descrizione grammaticale si inserisce in 255 righe insieme ai commenti. Per implementare funzionalità identiche su Flow9, è necessario 2-4 volte meno codice rispetto a HTML+CSS+JavaScript, C#, Swift o Java. Ad esempio, se per l'applicazione di prova Tic-Tac-Toe da guide per React ci sono volute scrivere 200 righe di codice in React/JavaScript/HTML/CSS, per Flow9 siamo riusciti a farlo in 83 righe. Inoltre, questa applicazione non solo può essere avviata nel browser, ma anche compilata sotto forma di applicazioni mobili per iOS e Android.

La piattaforma include il compilatore principale di flowc, scritto in Flow9 e in grado di funzionare come server di compilazione; compilatore di riferimenti al flusso (scritto in hax); debugger con supporto del protocollo gdb; un sistema di profilazione con un analizzatore di memoria e un debugger del garbage collector; Compilatore JIT per sistemi x86_64; interprete per ARM e altre piattaforme; strumenti per la compilazione selettiva in C++ e Java delle parti del codice più critiche in termini di prestazioni; plugin per l'integrazione con gli editor di codice Visual Code, Sublime Text, Kate ed Emacs; generatore di parser (PEG).

Fonte: opennet.ru

Aggiungi un commento