Lenguaje de programación Flow9 de código abierto.

Área9 empresa abrió códigos fuente del lenguaje de programación funcional Flow9, enfocado a la creación de interfaces de usuario. El código en el lenguaje Flow9 puede compilarse en archivos ejecutables para Linux, iOS, Android, Windows y macOS, y traducirse a aplicaciones web en HTML5/JavaScript (WebAssembly) o textos fuente en Java, D, Lisp, ML y C++. código compilador está abierto tiene licencia GPLv2 y la biblioteca estándar tiene licencia MIT.

El lenguaje se ha ido desarrollando desde 2010 como una alternativa universal y multiplataforma a Adobe Flash. Flow9 se posiciona como una plataforma para crear interfaces gráficas modernas que se pueden utilizar tanto para la web como para aplicaciones móviles y de escritorio. El proyecto se utiliza en muchos proyectos internos de Area9 y originalmente se llamaba Flow, pero antes de abrir el código se decidió cambiarle el nombre a Flow9 para evitar interferencias con el analizador estadístico. Flujo de Facebook.

Flow9 combina una sintaxis familiar similar al lenguaje C (ver comparación código en Flow9 y JavaScript), con herramientas de programación funcionales al estilo ML и las posibilidades lenguajes de dominio específico enfocados en resolver problemas específicos de la manera más eficiente posible (para Flow9 esto es desarrollo de interfaz). Flow9 está diseñado para usar escritura estricta, pero si es necesario, es posible usar escritura dinámica con detección automática de tipo, así como enlaces. Se admite el polimorfismo (una función puede procesar datos de diferentes tipos), la capacidad de crear subtipos, módulos, matrices, hashes y expresiones lambda.

El mismo código se puede compilar para diferentes plataformas, sin necesidad de portar ni realizar cambios en el código por separado. La misma aplicación se puede ejecutar en un navegador, en dispositivos móviles con pantalla táctil y en sistemas de escritorio con teclado y mouse. Ofrecemos una colección lista para usar de componentes con elementos de interfaz en estilo React, diseñados de acuerdo con el concepto de Google Material Design. El diseño se puede controlar hasta el nivel de píxel. Para configurar estilos uno puede Utilice la sintaxis CSS estándar. Para renderizar en Linux, macOS y Windows cuando se compila en C++ utilizado backend basado en Qt con OpenGL y cuando se compila en Java: JavaFX.

Gracias al uso de técnicas de programación funcional, el código escrito y los componentes de la interfaz se pueden tomar prestados fácilmente de otros proyectos. El lenguaje es muy compacto e incluye sólo 25 palabras clave, y la descripción gramatical cabe en 255 líneas junto con los comentarios. Para implementar una funcionalidad idéntica en Flow9, se requiere de 2 a 4 veces menos código que en HTML+CSS+JavaScript, C#, Swift o Java. Por ejemplo, si para la aplicación de prueba Tic-Tac-Toe de guías para React fue necesario escribir 200 líneas de código en React/JavaScript/HTML/CSS, para Flow9 logramos hacerlo en 83 líneas. Además, esta aplicación no sólo se puede ejecutar en el navegador, sino también compilarse en forma de aplicaciones móviles para iOS y Android.

La plataforma incluye el compilador principal flowc, escrito en Flow9 y capaz de funcionar como servidor de compilación; compilador de referencia de flujo (escrito en pierna); depurador con soporte para el protocolo gdb; un sistema de creación de perfiles con un analizador de memoria y un depurador del recolector de basura; Compilador JIT para sistemas x86_64; intérprete para ARM y otras plataformas; herramientas para la compilación selectiva en C++ y Java de las partes del código más críticas para el rendimiento; complementos para la integración con editores de código Visual Code, Sublime Text, Kate y Emacs; generador de analizador (PEG).

Fuente: opennet.ru

Añadir un comentario