Flow9 basa programming open source

Perusahaan Area9 dibuka kode sumber basa programming fungsional Aliran9, fokus kana nyieun interfaces pamaké. Kode dina basa Flow9 tiasa disusun kana file anu tiasa dieksekusi pikeun Linux, iOS, Android, Windows sareng macOS, sareng ditarjamahkeun kana aplikasi wéb dina HTML5/JavaScript (WebAssembly) atanapi sumber téks dina Java, D, Lisp, ML sareng C++. Kodeu kompiler kabuka dilisensikeun dina GPLv2 sareng perpustakaan standar dilisensikeun ku lisénsi MIT.

Basa éta parantos ngembang ti taun 2010 salaku alternatif universal sareng multi-platform pikeun Adobe Flash. Flow9 diposisikan salaku platform pikeun nyiptakeun antarmuka grafis modéren anu tiasa dianggo pikeun Wéb sareng desktop sareng aplikasi mobile. Proyék ieu dianggo dina seueur proyék Area9 internal sareng asalna disebut Flow, tapi sateuacan muka kode éta diputuskeun pikeun ngaganti nami ka Flow9 pikeun ngahindarkeun gangguan sareng analisa statistik. aliran ti Facebook.

Flow9 ngagabungkeun sintaksis anu akrab sareng basa C (tingali ngabandingkeun kode dina Flow9 sarta JavaScript), kalawan parabot programming fungsional dina gaya ML и kasempetan basa domain-spésifik fokus kana ngarengsekeun masalah husus salaku éfisién mungkin (pikeun Flow9 ieu ngembangkeun panganteur). Flow9 dirancang pikeun ngagunakeun ketikan anu ketat, tapi upami diperyogikeun, anjeun tiasa nganggo ngetik dinamis kalayan deteksi jinis otomatis, ogé Tumbu. Polymorphism dirojong (hiji fungsi bisa ngolah data tina tipena béda), kamampuhan pikeun nyieun subtypes, modul, arrays, hashes, ekspresi lambda.

Kodeu sarua bisa disusun pikeun platform béda, tanpa merlukeun porting misah sarta parobahan kode. Aplikasi anu sami tiasa dijalankeun dina browser, dina alat sélulér sareng layar rampa, sareng dina sistem desktop nganggo keyboard sareng beurit. Kami nawiskeun koléksi komponén anu siap sareng elemen antarmuka dina gaya React, dirarancang saluyu sareng konsép Desain Bahan Google. Desain bisa dikawasa handap ka tingkat piksel. Pikeun nyetel gaya bisa ngagunakeun sintaksis CSS baku. Pikeun rendering dina Linux, macOS sareng Windows nalika disusun dina C++ digunakeun backend dumasar kana Qt kalawan OpenGL, sarta lamun disusun dina Java - JavaFX.

Hatur nuhun kana pamakéan téknik programming fungsional, kode ditulis jeung komponén panganteur bisa gampang diinjeum ti proyék séjén. Basana kompak pisan sareng ngan kalebet 25 kecap konci, sareng pedaran grammar pas kana 255 baris sareng koméntar. Pikeun nerapkeun fungsionalitas idéntik dina Flow9, kode 2-4 kali kirang diperlukeun ti on HTML + CSS + JavaScript, C #, Swift atawa Java. Contona, upami pikeun aplikasi test Tic-Tac-Toe ti kapamimpinan pikeun meta eta nyandak nulis 200 garis kode dina meta / JavaScript / HTML / CSS, pikeun Flow9 kami junun ngalakukeun eta dina 83 garis. Sumawona, aplikasi ieu henteu ngan ukur tiasa diluncurkeun dina browser, tapi ogé dikompilasi dina bentuk aplikasi sélulér pikeun ios sareng Android.

Platformna kalebet kompiler flowc utama, ditulis dina Flow9 sareng tiasa dianggo salaku server kompilasi; kompiler rujukan aliran (ditulis dina haxe); debugger kalawan rojongan protokol gdb; sistem profil sareng analis mémori sareng debugger kolektor sampah; JIT compiler pikeun sistem x86_64; juru pikeun ARM sareng platform anu sanés; parabot pikeun kompilasi selektif dina C ++ jeung Java sahiji bagian paling kinerja-kritis kode teh; plugins pikeun integrasi jeung redaktur kode Visual Code, Sublime Text, Kate jeung Emacs; generator parser (kaki palsu).

sumber: opennet.ru

Tambahkeun komentar