Linguagem de programação Flow9 de código aberto

Empresa Area9 aberto códigos-fonte de linguagem de programação funcional Flow9, focado na criação de interfaces de usuário. O código na linguagem Flow9 pode ser compilado em arquivos executáveis ​​para Linux, iOS, Android, Windows e macOS, e traduzido em aplicações web em HTML5/JavaScript (WebAssembly) ou textos fonte em Java, D, Lisp, ML e C++. Código do compilador está aberto é licenciado sob GPLv2 e a biblioteca padrão é licenciada sob a licença MIT.

A linguagem vem se desenvolvendo desde 2010 como uma alternativa universal e multiplataforma ao Adobe Flash. Flow9 se posiciona como uma plataforma para a criação de interfaces gráficas modernas que podem ser usadas tanto para Web quanto para aplicativos desktop e móveis. O projeto é utilizado em muitos projetos internos do Area9 e originalmente se chamava Flow, mas antes de abrir o código decidiu-se renomeá-lo para Flow9 para evitar interferência com o analisador estatístico Fluxo do Facebook.

Flow9 combina uma sintaxe familiar semelhante à linguagem C (veja comparação código em Flow9 e JavaScript), com ferramentas de programação funcional no estilo ML и as possibilidades linguagens específicas de domínio focadas em resolver problemas específicos da maneira mais eficiente possível (para Flow9 isso é desenvolvimento de interface). Flow9 foi projetado para usar digitação estrita, mas se necessário, é possível usar digitação dinâmica com detecção automática de tipo, bem como ligações. O polimorfismo é suportado (uma função pode processar dados de diferentes tipos), a capacidade de criar subtipos, módulos, matrizes, hashes, expressões lambda.

O mesmo código pode ser compilado para diferentes plataformas, sem a necessidade de portabilidade separada e alterações no código. O mesmo aplicativo pode ser executado em um navegador, em dispositivos móveis com telas sensíveis ao toque e em sistemas desktop com teclado e mouse. Oferecemos uma coleção pronta de componentes com elementos de interface no estilo React, projetados de acordo com o conceito do Google Material Design. O design pode ser controlado até o nível do pixel. Para definir estilos uma lata use a sintaxe CSS padrão. Para renderização em Linux, macOS e Windows quando compilado em C++ usado backend baseado em Qt com OpenGL, e quando compilado em Java - JavaFX.

Graças ao uso de técnicas de programação funcional, o código escrito e os componentes de interface podem ser facilmente emprestados de outros projetos. A linguagem é muito compacta e inclui apenas 25 palavras-chave, e a descrição gramatical cabe em 255 linhas junto com comentários. Para implementar funcionalidades idênticas no Flow9, é necessário 2 a 4 vezes menos código do que em HTML+CSS+JavaScript, C#, Swift ou Java. Por exemplo, se para a aplicação de teste Tic-Tac-Toe de guias para React foram necessárias 200 linhas de código em React/JavaScript/HTML/CSS, para Flow9 conseguimos fazer isso em 83 linhas. Além disso, este aplicativo não só pode ser iniciado no navegador, mas também compilado na forma de aplicativos móveis para iOS e Android.

A plataforma inclui o compilador principal flowc, escrito em Flow9 e capaz de funcionar como servidor de compilação; compilador de referência de fluxo (escrito em perna); depurador com suporte ao protocolo gdb; um sistema de criação de perfil com analisador de memória e depurador de coletor de lixo; Compilador JIT para sistemas x86_64; intérprete para ARM e outras plataformas; ferramentas para compilação seletiva em C++ e Java das partes do código com maior desempenho crítico; plugins para integração com editores de código Visual Code, Sublime Text, Kate e Emacs; gerador de analisador (PEG).

Fonte: opennet.ru

Adicionar um comentário