Bosque: El Nuevo Lenguaje Libre de Bucles de Microsoft para Mejorar la Calidad del Código
Bosque: El Nuevo Lenguaje Libre de Bucles de Microsoft para Mejorar la Calidad del Código
- El lenguaje Bosque busca mejorar la calidad del software y aumentar la productividad de los programadores.
- Elimina fuentes de complejidad como el estado mutable, la igualdad de referencias y los bucles.
- Está inspirado en los lenguajes de programación TypeScript y JavaScript.
La Programación Estructurada y los Tipos de Datos Abstractos se popularizaron en la década de 1970, y desde entonces los hemos estado usando en casi todos los lenguajes de programación. Estas metodologías permitieron a los programadores enfocarse en la intención y el comportamiento central de su código sin preocuparse por la arquitectura del hardware. Pronto esto llevó a una era dorada de compiladores y Entornos de Desarrollo Integrado.
Para mejorar aún más la productividad, mejorar la calidad del software y permitir varias nuevas experiencias de compiladores y herramientas de desarrollo, ingenieros de Microsoft presentaron recientemente un nuevo lenguaje de programación llamado Bosque.
Bosque está diseñado para escribir código simple y fácil de razonar tanto para máquinas como para humanos. Ofrece varias formas de evitar la "complejidad accidental" en el proceso de codificación y desarrollo.
Programación Regularizada
El control de flujo en un modelo de programación estructurada se gestiona mediante condiciones, subrutinas y bucles. El nuevo lenguaje de programación, por otro lado, elimina fuentes de complejidad como el estado mutable, la igualdad de referencias y los bucles. Por eso los desarrolladores han descrito este paradigma como "programación regularizada".
Bosque deriva de una combinación de sintaxis y tipos inspirados en TypeScript más ML, y semántica inspirada en JavaScript/Node. Soporta un sistema de tipos no opinado que permite a los programadores usar diferentes tipos nominales, estructurales y de combinación para codificar las características relevantes del dominio del problema de forma flexible.
Referencia: Microsoft | Moving Beyond Structured Programming
El lenguaje no usa bucles "while", "do while" y "for" y tiene un enfoque completamente diferente cuando se trata de aplicar condiciones. Mark Marron, un científico informático de Microsoft, introdujo el concepto de "Functors" para reemplazar los bucles estructurados mientras aumenta la calidad del software.
Functors con Transformadores Simbólicos
Bosque proporciona operaciones algebraicas de datos en masa especializadas y soporte integrado para procesamiento de none (o datos opcionales). También soporta canalización para procesamiento de colecciones, y if y match como expresiones.
Hay menos necesidad de un gran conjunto de combinadores de declaraciones debido al rico conjunto de primitivas de expresión en Bosque. El lenguaje proporciona un assert (habilitado solo para builds de depuración) y check (habilitado para todos los builds) como características de primera clase, además de pre/post-condiciones e invariantes de clase. Tampoco hay ningún constructo de bucle en Bosque.
Bosque podría ser extremadamente útil en proyectos de desarrollo basados en la nube cuyas arquitecturas dependen de microservicios, funciones serverless y APIs RESTful. Podría permitir carga de costo cero para inicio rápido, trazado de sobrecarga ultra-baja y runtime con variabilidad mínima de rendimiento.
¿Qué Sigue?
Este nuevo lenguaje aún está en fase de desarrollo, y si quieres probarlo, el código está disponible en GitHub.
Los experimentos iniciales indican que puede potenciar varias experiencias de próxima generación, como auto-marshaling de API, fuzzing mejorado, pruebas simbólicas y compilación en tiempo real con soporte GC estable.
Leer: Las 10 Reglas de Codificación de la NASA para Escribir Programas Críticos de Seguridad
Bosque está sujeto a revisión, hay varios errores y funcionalidad faltante, y el rendimiento aún puede mejorar mucho. Marron y su equipo se centrarán en experiencias de herramientas de desarrollo más avanzadas, como establecer automáticamente límites para el uso de memoria a lo largo del tiempo y verificar aplicaciones libres de errores de runtime sin esfuerzo adicional.
Tecnología Industrial
- Fundamentos de Programación de Microprocesadores
- Bucles de Enlace de Fase (PLL): Fundamentos, Aplicaciones y Mejores Prácticas de Diseño
- Microsoft presenta avance en IA conversacional con red neuronal multi-tarea avanzada
- GLTR: Herramienta estadística fiable para identificar texto generado por IA
- Descubre los 9 Lenguajes de Programación Imprescindibles de 2021
- Top 10 lenguajes de programación cloud que todo desarrollador debe dominar
- Dominando los operadores en programación C: guía completa
- Domina la programación en C: Tutorial completo en PDF para principiantes
- Dominar la programación en C: Tutorial completo para principiantes
- Lenguaje de programación C: Visión general completa
- Print en Python sin salto de línea: dominando el parámetro end y otras técnicas