Flow9 programmeerimiskeel avatud lähtekoodiga

Firma Area9 avatud funktsionaalse programmeerimiskeele lähtekoodid Voog9, ориентированного на создание пользовательских интерфейсов. Код на языке Flow9 может как компилироваться в исполняемые файлы для Linux, iOS, Android, Windows и macOS, так и транслироваться в форму web-приложений на HTML5/JavaScript (WebAssembly) или в исходные тексты на языках Java, D, Lisp, ML и C++. Код компилятора on avatud on litsentsitud GPLv2 alusel ja standardraamatukogu on litsentsitud MIT litsentsi alusel.

Keel on arenenud alates 2010. aastast universaalse ja mitmeplatvormilise alternatiivina Adobe Flashile. Flow9 on positsioneeritud platvormina kaasaegsete graafiliste liideste loomiseks, mida saab kasutada nii veebis kui ka laua- ja mobiilirakendustes. Projekt on kasutusel paljudes Area9 siseprojektides ja kandis algselt nime Flow, kuid enne koodi avamist otsustati see ümber nimetada Flow9-ks, et vältida häireid statistilise analüsaatori töös. voolama Facebookist.

Flow9 сочетает привычный синтаксис, похожий на язык Си (см. võrdlus кода на Flow9 и JavaScript), со средствами функционального программирования в стиле ML и возможностями domeenispetsiifilised keeled, mis on keskendunud konkreetsete probleemide võimalikult tõhusale lahendamisele (Flow9 jaoks on see liidese arendamine). Flow9 on loodud kasutama ranget tippimist, kuid vajadusel on võimalik kasutada automaatse tüübituvastusega dünaamilist tippimist, samuti lingid. Toetatud on polümorfism (üks funktsioon suudab töödelda erinevat tüüpi andmeid), võimalus luua alatüüpe, mooduleid, massiive, räsisid, lambda avaldisi.

Sama koodi saab koostada erinevatele platvormidele, ilma et oleks vaja eraldi portimist ja koodi muutmist. Sama rakendus võib töötada brauseris, puuteekraaniga mobiilseadmetes ning klaviatuuri ja hiirega lauaarvutisüsteemides. Pakume valmis komponentide kollektsiooni koos liideseelementidega React stiilis, mis on kujundatud Google Material Designi kontseptsiooni järgi. Disaini saab juhtida kuni pikslitasemeni. Stiilide määramiseks keegi ei saa использовать стандартный синтаксис CSS. Для отрисовки в Linux, macOS и Windows при компиляции в C++ kasutatud бэкенд на базе Qt с OpenGL, а при компиляции в Java — JavaFX.

Tänu funktsionaalsete programmeerimistehnikate kasutamisele saab kirjutatud koodi ja liidese komponente hõlpsasti teistest projektidest laenata. Keel on väga kompaktne ja sisaldab vaid 25 märksõna ning grammatikakirjeldus mahub koos kommentaaridega 255 reale. Identsete funktsioonide rakendamiseks Flow9-s on vaja 2–4 ​​korda vähem koodi kui HTML+CSS+JavaScript, C#, Swift või Java puhul. Näiteks kui testrakenduse jaoks Tic-Tac-Toe alates juhtimine Reacti jaoks kulus Reacti/JavaScripti/HTML/CSS-i koodi kirjutamiseks 200 rida, Flow9 jaoks saime sellega hakkama 83 reaga. Pealegi ei saa seda rakendust mitte ainult brauseris käivitada, vaid ka iOS-i ja Androidi mobiilirakenduste kujul kompileerida.

Платформа включает в себя основной компилятор flowc, написанный на Flow9 и способный работать в роли сервера компиляции; эталонный компилятор flow (написан на sõrmenukk); отладчик с поддержкой протокола gdb; cистему профилирования с анализатором памяти и отладчиком сборщика мусора; JIT-компилятор для систем x86_64; интерпретатор для ARM и других платформ; инструментарий для выборочной компиляции в C++ и Java наиболее критичных к производительности частей кода; плагины для интеграции с редакторами кода Visual Code, Sublime Text, Kate и Emacs; генератор парсеров (PEG).

Allikas: opennet.ru

Lisa kommentaar