Microsoft apunta a la simplicidad con el lenguaje de programación Bosque

Microsoft ha lanzado un nuevo proyecto de código abierto para desarrollar el lenguaje de programación Bosque. El propósito del proyecto de lenguaje Bosque es construir un lenguaje de programación funcional que evite la “complejidad accidental” en el proceso de desarrollo.

Los objetivos de diseño para el lenguaje Bosque incluyen una productividad mejorada del desarrollador, una mejor calidad del software y la habilitación de una variedad de nuevos compiladores y experiencias de herramientas. El nuevo lenguaje se posiciona como un experimento en diseño regularizado para un ciclo de vida de desarrollo de software asistido por máquina, rápido y confiable.

Un objetivo clave es la eliminación de la complejidad accidental. Se supone que el código de Bosque es simple y fácil de comprender tanto para máquinas como para humanos. Pero Bosque permanece mucho en desarrollo en este momento; los proponentes no recomiendan utilizar Bosque para ningún trabajo de producción. Se anima a los desarrolladores a experimentar con él.

Algunas características y elecciones de diseño hechas para Bosque incluyen las siguientes:

  • Todos los valores son inmutables, con Bosque adoptando un modelo funcional con datos inmutables. Comprender el efecto de una declaración de bloque de código se simplifica cuando no tiene efectos secundarios, afirma la documentación de Bosque. Los lenguajes funcionales se han beneficiado de simplificaciones en el desarrollo de programas, herramientas sofisticadas y optimizaciones del compilador habilitadas por este modelo.
  • La programación funcional se fusiona con alcances de bloque y {…}llaves al permitir múltiples asignaciones a variables actualizables var!.
  • Las funciones son valores y tipos de primera clase.
  • Los constructores de Lambda combinan la definición de código para el cuerpo de lambda con una semántica de copia de variable para las variables capturadas de cierre en la creación de lambda.
  • Un sistema de tipos simple y sin opiniones permite el uso de una variedad de tipos estructurales, de combinación y nominales para transmitir la intención y codificar características relevantes del dominio del problema.
  • Las cadenas mecanografiadas proporcionan un mecanismo para elevar la estructura conocida sobre el contenido de una cadena en el tipo de manera que sea significativa para las personas y utilizada por el verificador de tipos.
  • Los parámetros se pueden enhebrar mediante el refpaso de argumentos. Una alternativa a los valores de retorno múltiple, simplifica los escenarios en los que una variable se pasa a un método que puede usarla y actualizarla. Permitir la actualización en el parámetro elimina la gestión adicional del valor de retorno que sería necesaria. Esta función aún no está implementada.
  • Se proporcionan argumentos con nombre, al igual que los operadores rest y spread. Estos pueden realizar la manipulación de datos como parte de invocaciones y operaciones de constructor.
  • Se ofrece soporte de primera clase para expresar una variedad de invariantes, comprobaciones de cordura y afirmaciones de diagnóstico.
  • Las operaciones de datos algebraicos masivos en Bosque comienzan con lecturas masivas y actualizaciones de los valores de los datos. Los operadores producidos ayudan a enfocar el código en la intención general y permiten a los desarrolladores realizar el razonamiento algebraico en las operaciones de estructura de datos. Se proporcionan operaciones algebraicas para tipos de datos, tuplas, registros y tipos nominales, así como para operaciones que incluyen proyección, actualización múltiple y fusión.
  • Con una capacidad de procesamiento iterativo, los bucles estructurados se intercambian por construcciones de procesamiento iterativo de alto nivel. La eliminación de la repetición de escribir los mismos bucles elimina clases de errores, incluidos los cálculos limitados; la intención se deja clara.

Bosque se convierte en el último proyecto de lenguaje de Microsoft, que ha producido lenguajes como C #, un lenguaje orientado a objetos; F #, un lenguaje funcional; y TypeScript, un superconjunto escrito de JavaScript. El gigante del software ha tenido un buen grado de éxito en el desarrollo de lenguajes que ganan popularidad. C #, por ejemplo, ocupó el quinto lugar y TypeScript el 12 en las clasificaciones de lenguajes RedMonk más recientes, que se basan en discusiones en Stack Overflow y en el uso de código en GitHub. 

Puede encontrar documentación de Bosque, ejemplos y una implementación de referencia en GitHub. Los tutoriales están en proceso.