Lingwa ta' programmar Flow9 sors miftuħ

Kumpanija Żona9 miftuħa kodiċi tas-sors tal-lingwa tal-ipprogrammar funzjonali Fluss9, iffukat fuq il-ħolqien ta' interfaces tal-utent. Kodiċi fil-lingwa Flow9 jista 'jiġi kkompilat f'fajls eżekutibbli għal Linux, iOS, Android, Windows u macOS, u tradott f'applikazzjonijiet tal-web f'HTML5/JavaScript (WebAssembly) jew testi sors f'Java, D, Lisp, ML u C++. Kodiċi tal-kompilatur miftuħa hija liċenzjata taħt GPLv2 u l-librerija standard hija liċenzjata taħt il-liċenzja MIT.

Il-lingwa ilha tiżviluppa mill-2010 bħala alternattiva universali u multi-pjattaforma għall-Adobe Flash. Flow9 huwa pożizzjonat bħala pjattaforma għall-ħolqien ta 'interfaces grafiċi moderni li jistgħu jintużaw kemm għall-Web u desktop u applikazzjonijiet mobbli. Il-proġett jintuża f'ħafna proġetti interni ta' Area9 u oriġinarjament kien jissejjaħ Flow, iżda qabel ma fetaħ il-kodiċi ġie deċiż li jibdel l-isem għal Flow9 biex tiġi evitata interferenza mal-analizzatur statistiku Fluss minn Facebook.

Flow9 jgħaqqad sintassi familjari simili għal-lingwa C (ara paragun kodiċi fi Flow9 u JavaScript), b'għodod ta 'programmazzjoni funzjonali fl-istil ML и opportunitajiet Lingwi speċifiċi għad-dominju ffukati fuq is-soluzzjoni ta' problemi speċifiċi bl-aktar mod effiċjenti possibbli (għal Flow9 dan huwa żvilupp ta' interface). Flow9 huwa ddisinjat biex juża ttajpjar strett, iżda jekk meħtieġ, huwa possibbli li tuża ttajpjar dinamiku b'sejbien tat-tip awtomatiku, kif ukoll links. Il-polimorfiżmu huwa appoġġjat (funzjoni waħda tista 'tipproċessa data ta' tipi differenti), il-kapaċità li toħloq sottotipi, moduli, arrays, hashes, espressjonijiet lambda.

L-istess kodiċi jista 'jiġi kkompilat għal pjattaformi differenti, mingħajr il-ħtieġa għal porting separat u bidliet fil-kodiċi. L-istess applikazzjoni tista 'taħdem fi browser, fuq apparat mobbli bi touch screens, u fuq sistemi desktop b'tastiera u maws. Noffru kollezzjoni lesta ta 'komponenti b'elementi ta' interface fl-istil React, iddisinjati skont il-kunċett ta 'Google Material Design. Id-disinn jista 'jiġi kkontrollat ​​sal-livell tal-pixel. Biex jiġu stabbiliti stili wieħed jista ' uża sintassi CSS standard. Għall-għoti fuq Linux, macOS u Windows meta kkumpilati f'C++ użati backend ibbażat fuq Qt b'OpenGL, u meta kkumpilat f'Java - JavaFX.

Grazzi għall-użu ta 'tekniki ta' programmazzjoni funzjonali, il-kodiċi bil-miktub u l-komponenti tal-interface jistgħu faċilment jiġu mislufa minn proġetti oħra. Il-lingwa hija kompatta ħafna u tinkludi biss 25 kelma prinċipali, u d-deskrizzjoni tal-grammatika tidħol f'255 linja flimkien mal-kummenti. Biex timplimenta funzjonalità identika fuq Flow9, huwa meħtieġ 2-4 darbiet inqas kodiċi milli fuq HTML+CSS+JavaScript, C#, Swift jew Java. Per eżempju, jekk għall-applikazzjoni tat-test Tic-Tac-Toe minn gwidi għal React ħadet kitba ta '200 linja ta' kodiċi f'React/JavaScript/HTML/CSS, għal Flow9 irnexxielna nagħmluha fi 83 linja. Barra minn hekk, din l-applikazzjoni tista 'mhux biss tiġi mnedija fil-browser, iżda wkoll miġbura fil-forma ta' applikazzjonijiet mobbli għal iOS u Android.

Il-pjattaforma tinkludi l-kompilatur ewlieni tal-flowc, miktub f'Flow9 u kapaċi jaħdem bħala server ta' kumpilazzjoni; kompilatur ta' referenza tal-fluss (miktub fi riġel); debugger b'appoġġ għall-protokoll gdb; sistema ta' profiling b'analizzatur tal-memorja u debugger tal-kollettur taż-żibel; kompilatur JIT għal sistemi x86_64; interpretu għal ARM u pjattaformi oħra; għodod għall-kumpilazzjoni selettiva f'C++ u Java tal-partijiet l-aktar kritiċi għall-prestazzjoni tal-kodiċi; plugins għall-integrazzjoni mal-edituri tal-kodiċi Visual Code, Sublime Text, Kate u Emacs; ġeneratur parser (PEG).

Sors: opennet.ru

Żid kumment