Flow9 ohjelmointikieli avoimen lähdekoodin

Area9 yritys avattu toiminnalliset ohjelmointikielen lähdekoodit Flow9, joka keskittyy käyttöliittymien luomiseen. Flow9-kielen koodi voidaan kääntää suoritettaviksi tiedostoiksi Linuxille, iOS:lle, Androidille, Windowsille ja macOS:lle ja kääntää verkkosovelluksiin HTML5/JavaScriptillä (WebAssembly) tai lähdeteksteiksi Java-, D-, Lisp-, ML- ja C++-kielillä. Kääntäjän koodi on auki on lisensoitu GPLv2:lla ja vakiokirjasto on lisensoitu MIT-lisenssillä.

Kieli on kehittynyt vuodesta 2010 lähtien universaaliksi ja monikäyttöiseksi vaihtoehdoksi Adobe Flashille. Flow9 on sijoitettu alustaksi luoda nykyaikaisia ​​graafisia käyttöliittymiä, joita voidaan käyttää sekä web- että työpöytä- ja mobiilisovelluksiin. Projektia käytetään monissa sisäisissä Area9-projekteissa ja se oli alunperin nimeltään Flow, mutta ennen koodin avaamista päätettiin nimetä se uudelleen Flow9:ksi tilasto-analysaattorin häiriöiden välttämiseksi. Virtaus Facebookista.

Flow9 yhdistää tutun syntaksin, joka on samanlainen kuin C-kieli (katso сравнение koodi Flow9:ssä ja JavaScriptissä), toiminnallisilla ohjelmointityökaluilla tyylillä ML и mahdollisuudet verkkoaluekohtaiset kielet, jotka keskittyvät tiettyjen ongelmien ratkaisemiseen mahdollisimman tehokkaasti (Flow9:lle tämä on käyttöliittymän kehitystä). Flow9 on suunniteltu käyttämään tiukkaa kirjoitusta, mutta tarvittaessa on mahdollista käyttää dynaamista kirjoitusta automaattisella tyyppitunnistuksella sekä viittaus. Polymorfismi on tuettu (yksi funktio voi käsitellä erityyppisiä tietoja), kyky luoda alatyyppejä, moduuleja, taulukoita, tiivisteitä, lambda-lausekkeita.

Sama koodi voidaan kääntää eri alustoille ilman erillistä portointia ja koodin muutoksia. Sama sovellus voi toimia selaimessa, kosketusnäytöllisissä mobiililaitteissa ja pöytätietokoneissa näppäimistöllä ja hiirellä. Tarjoamme valmiin kokoelman komponentteja, joissa on React-tyylisiä käyttöliittymäelementtejä, jotka on suunniteltu Google Material Design -konseptin mukaisesti. Suunnittelua voidaan ohjata pikselitasolle asti. Tyylien asettaminen voidaan muodostaa käytä tavallista CSS-syntaksia. Renderöintiin Linuxissa, macOS:ssä ja Windowsissa, kun se on käännetty C++:lla käytetty taustajärjestelmä, joka perustuu Qt:hen ja OpenGL:ään, ja JavaFX-kielellä käännettynä.

Toiminnallisten ohjelmointitekniikoiden käytön ansiosta kirjoitettu koodi ja käyttöliittymäkomponentit ovat helposti lainattavissa muista projekteista. Kieli on erittäin kompakti ja sisältää vain 25 avainsanaa, ja kieliopin kuvaus mahtuu 255 riville kommenttien kanssa. Identtisten toimintojen toteuttaminen Flow9:ssä vaatii 2-4 kertaa vähemmän koodia kuin HTML+CSS+JavaScript, C#, Swift tai Java. Esimerkiksi jos testisovellukselle Tic-Tac-Toe alkaen oppaita Reactille kesti kirjoittaa 200 riviä koodia Reactissa/JavaScriptissä/HTML:ssä/CSS:ssä, Flow9:ssä onnistuimme tekemään sen 83 rivillä. Lisäksi tätä sovellusta ei voi käynnistää vain selaimessa, vaan se voidaan myös koota mobiilisovellusten muotoon iOS:lle ja Androidille.

Alusta sisältää pääflowc-kääntäjän, joka on kirjoitettu Flow9:llä ja joka pystyy toimimaan käännöspalvelimena; virtausviittauksen kääntäjä (kirjoitettu haxe); debuggeri gdb-protokollan tuella; profilointijärjestelmä, jossa on muistianalysaattori ja roskankeräimen debuggeri; JIT-kääntäjä x86_64-järjestelmille; tulkki ARM:lle ja muille alustoille; työkalut koodin suorituskyvyn kannalta kriittisimpien osien valikoivaan kokoamiseen C++:ssa ja Javassa; laajennukset integroitavaksi koodieditoreihin Visual Code, Sublime Text, Kate ja Emacs; jäsennysgeneraattori (PEG).

Lähde: opennet.ru

Lisää kommentti