Linguaxe de programación Flow9 de código aberto

Empresa Área 9 aberto códigos fonte da linguaxe de programación funcional Fluxo9, centrada na creación de interfaces de usuario. O código na linguaxe Flow9 pódese compilar en ficheiros executables para Linux, iOS, Android, Windows e macOS, e traducirse en aplicacións web en HTML5/JavaScript (WebAssembly) ou textos fonte en Java, D, Lisp, ML e C++. Código compilador aberto está licenciado baixo GPLv2 e a biblioteca estándar ten licenza baixo a licenza MIT.

A linguaxe desenvolveuse desde 2010 como unha alternativa universal e multiplataforma a Adobe Flash. Flow9 sitúase como unha plataforma para crear interfaces gráficas modernas que se poden usar tanto para a web como para aplicacións de escritorio e móbiles. O proxecto utilízase en moitos proxectos internos de Area9 e orixinalmente chamábase Flow, pero antes de abrir o código decidiuse renomear a Flow9 para evitar interferencias co analizador estatístico. Fluxo de Facebook.

Flow9 combina unha sintaxe familiar semellante á linguaxe C (ver comparación código en Flow9 e JavaScript), con ferramentas de programación funcionais no estilo ML и oportunidades Linguaxes específicas de dominio enfocadas a resolver problemas específicos da forma máis eficiente posible (para Flow9 isto é o desenvolvemento de interfaces). Flow9 está deseñado para usar dixitación estrita, pero se é necesario, é posible usar a escritura dinámica con detección automática de tipos, así como ligazóns. Admítese o polimorfismo (unha función pode procesar datos de diferentes tipos), a capacidade de crear subtipos, módulos, matrices, hash, expresións lambda.

Pódese compilar o mesmo código para diferentes plataformas, sen necesidade de realizar unha portabilidade e cambios no código por separado. A mesma aplicación pódese executar nun navegador, en dispositivos móbiles con pantalla táctil e en sistemas de escritorio con teclado e rato. Ofrecemos unha colección preparada de compoñentes con elementos de interface ao estilo React, deseñados segundo o concepto de Google Material Design. O deseño pódese controlar ata o nivel de píxeles. Para establecer estilos unha lata utilizar a sintaxe CSS estándar. Para renderizar en Linux, macOS e Windows cando se compila en C++ se usa backend baseado en Qt con OpenGL e cando se compila en Java - JavaFX.

Grazas ao uso de técnicas de programación funcionais, o código escrito e os compoñentes da interface poden ser facilmente tomados en préstamo doutros proxectos. A linguaxe é moi compacta e inclúe só 25 palabras clave, e a descrición gramatical encádrase en 255 liñas xunto cos comentarios. Para implementar unha funcionalidade idéntica en Flow9, requírese de 2 a 4 veces menos código que en HTML+CSS+JavaScript, C#, Swift ou Java. Por exemplo, se para a aplicación de proba Tic-Tac-Toe de guías para React levouse escribir 200 liñas de código en React/JavaScript/HTML/CSS, para Flow9 conseguimos facelo en 83 liñas. Ademais, esta aplicación non só se pode lanzar no navegador, senón que tamén se pode compilar en forma de aplicacións móbiles para iOS e Android.

A plataforma inclúe o compilador flowc principal, escrito en Flow9 e capaz de funcionar como servidor de compilación; compilador de referencia de fluxo (escrito en haxe); depurador con soporte de protocolo gdb; un sistema de perfís cun analizador de memoria e un depurador de lixo; compilador JIT para sistemas x86_64; intérprete para ARM e outras plataformas; ferramentas para a compilación selectiva en C++ e Java das partes máis críticas para o rendemento do código; complementos para a integración cos editores de código Visual Code, Sublime Text, Kate e Emacs; xerador de analizadores (Peg).

Fonte: opennet.ru

Engadir un comentario