Home  >  Plataformas

Microsoft busca simplicidade com linguagem de programação Bosque

Nova linguagem de programação de código aberto é projetada para escrever códigos simples e óbvios para humanos e máquinas

Paul Krill, da InforWorld (EUA)

26/04/2019 às 8h10

Foto: Shutterstock

A Microsoft lançou um novo projeto de código aberto para desenvolver a linguagem de programação Bosque. O objetivo do projeto de linguagem Bosque é construir uma linguagem de programação funcional que evite a “complexidade acidental” no processo de desenvolvimento.

As metas de design para a linguagem Bosque incluem produtividade aprimorada de desenvolvedor, melhor qualidade de software e habilitação de uma série de novos compiladores e experiências de ferramentas. A linguagem é posicionada como um experimento em projeto regularizado para um ciclo de vida de desenvolvimento de software assistido por máquina, rápido e confiável.

Um objetivo fundamental é a eliminação da complexidade acidental. O código Bosque é supostamente simples e fácil de compreender tanto para máquinas quanto para seres humanos. Mas o Bosque permanece muito em desenvolvimento neste momento; os proponentes não recomendam usar o Bosque para qualquer trabalho de produção. Os desenvolvedores são encorajados a experimentá-lo.

Algumas características e escolhas de design feitas para o Bosque incluem o seguinte:

• Todos os valores são imutáveis, com o Bosque adotando um modelo funcional com dados imutáveis. Entender o efeito de uma declaração de bloco de código é simplificado quando é livre de efeitos colaterais, afirma a documentação do Bosque. As linguagens funcionais beneficiaram-se de simplificações para o desenvolvimento de programas, ferramentas sofisticadas e otimizações de compiladores permitidas por este modelo.
• A programação funcional é combinada com escopos de bloco e {…} chaves, permitindo várias atribuições a variáveis atualizáveis var!.
• Funções são valores e tipos de primeira classe.
• Os construtores Lambda combinam a definição de código para o corpo lambda com uma semântica de cópia variável para as variáveis capturadas de fechamento na criação de lambda.
• Um sistema de tipos simples e sem opinião permite o uso de uma variedade de tipos estruturais, combinados e nominais para transmitir intenção e codificar recursos relevantes do domínio do problema.
• As strings tipificadas fornecem um mecanismo para elevar a estrutura conhecida sobre o conteúdo de uma string no tipo, de uma forma que seja significativa para as pessoas e usada pelo verificador de tipos.
• Os parâmetros podem ser encadeados através da passagem de argumentos ref. Uma alternativa aos valores de vários retornos, isso simplifica os cenários em que uma variável é passada para um método que pode usá-la e atualizá-la. Permitir a atualização no parâmetro elimina o gerenciamento de valor de retorno extra que seria necessário. Este recurso ainda não está implementado.
• Argumentos nomeados são fornecidos, assim como os operadores de descanso e disseminação. Estes podem executar manipulação de dados como parte de invocações e operações de construtor.
• Suporte de primeira classe é oferecido para expressar uma série de invariantes, verificações de sanidade e afirmações de diagnóstico.
• As operações de dados algébricos em massa no Bosque começam com leituras em massa e atualizações para valores de dados. Os operadores produzidos ajudam a concentrar o código na intenção geral e permitem que os desenvolvedores executem o raciocínio algébrico nas operações da estrutura de dados. As operações algébricas são fornecidas para tipos de dados, conjuntos compostos, registros e tipos nominais, bem como para operações, incluindo projeção, atualização múltipla e mesclagem.
• Com uma capacidade de processamento iterativo, os loops estruturados são trocados por construções de processamento iterativo de alto nível. Remover o clichê de gravar os mesmos loops, elimina classes de erros, incluindo cálculos vinculados; a tentativa é feita com intenção de limpar.

O Bosque se torna o mais recente projeto de linguagem da Microsoft, que produziu idiomas incluindo C#, uma linguagem orientada a objetos; F#, uma linguagem funcional; e TypeScript, um superconjunto digitado de JavaScript.

A gigante do software teve um bom grau de sucesso no desenvolvimento de idiomas que ganham popularidade. O C#, por exemplo, ficou em quinto lugar e o TypeScript em 12º lugar nas mais recentes classificações de linguagem do RedMonk, baseadas em discussões no Stack Overflow e uso de código no GitHub.

Você pode encontrar documentação do Bosque, exemplos e uma implementação de referência no GitHub. Tutoriais estão em andamento.