Bosque - Programación Regularizada fácil, simple y obvia

Lenguaje de Programación Bosque - David's Devel

¿Bosque? ¿Programación Regularizada? ¿Que quiere Microsoft con este nuevo lenguaje? ¿Se estandarizara este lenguaje de programación?

Bosque - Programación Regularizada fácil, simple y obvia.

Hace poco el equipo de Microsoft presento uno de sus nuevos proyectos, un lenguaje de programación pensado para ser simple y sencillo. Bosque viene a solventar algunos problemas de la Programación Estructurada.

Es un lenguaje de programación creado por Mark Marron, científico de computación de Microsoft. Este deriva de una combinación de la sintaxis y tipos de TypeScript, mas la semántica de ML y JavaScript.

El lenguaje de programación Bosque, fue diseñado para "escribir código simple, obvio y sencillo". Con el cual se quiere que este sea fácil para entender, tanto para humanos como para maquinas. Tratando de eliminar la llamada complejidad accidental, que es crear un código complejo sin desearlo, ya que la estructura del lenguaje te lleva a eso.

Lenguajes como C++ o Python, utilizan un lenguaje estructurado basado en bucles, subrutinas, etc. Pero Bosque elimina por completo los bucles estructurados, y los reemplaza por procesos iterativos de alto-nivel, llamados Functors.

Pero Bosque no solo trae esto, también trae algunas características "inusuales". Algunas de ellas son: 

Valores Inmutables


Todos los valores en Bosque son inmutables. Debido a que se simplifica la comprensión de los efectos de un bloque de código, cuando no tienen efectos secundarios, por esta razón Bosque adopta un modelo funcional solo con datos inmutables.

Cadenas de Textos Tipadas

Las Cadenes de Textos Tipadas, proporcionan un mecanismo novedoso para mejorar la estructuración de las cadenas de textos, de manera que pueda ser significativa para los humanos y poder ser usadas por el verificador de tipos. Y podemos tener código como el siguiente:

function foo(zip: String[Zipcode], name: String) {...}

var zc: String[Zipcode] = ...;
var user: String = ...;

foo(user, zc) //error de Tipo: String no se puede convertir a String[Zipcode]
foo(zc, user) //ok

Invocación Flexible

Bosque provee una argumentos nombrados, los cuales pueden ser usados con los operadores spread y rest. Estos pueden ser usados para tener una forma simple y eficiente para manipular los datos en las llamadas de funciones y los constructores.


function nsum(d: Int, ...args: List[Int]): Int {
    return args.sum(default=d);
}

function np(p1: Int, p2: Int): {x: Int, y: Int} {
    return @{x=p1, y=p2};
}

//Llamadas con argumentos explicitos
var x = nsum(0, 1, 2, 3); //retorna 6

var a = np(1, 2);         //retorna @{x=1, y=2}
var b = np(p2=2, 1);      //tambien retorna @{x=1, y=2}

//Llamadas con argumentos Spread
var t = @[1, 2, 3];
var p = nsum(0, ...t);    //retorna 6 -- igual que la llamada explicita

var r = @{p1=1, p2=2};
var q = np(...r);         //retorna @{x=1, y=2} -- igual que la llamada explicita

Estas son 3, pero Microsoft trae mas características innovadoras con este lenguaje. ¡Como sea!, Bosque actualmente se encuentra en fase de desarrollo, y como la mayoría de las innovaciones, es Open Source.

Si quieres contribuir con este lenguaje puedes hacerlo en su repositorio de GitHub: Bosque Languaje. Microsoft recomienda por los momentos no usar Bosque para proyectos de producción, pero se puede usar para aprender, experimentar, crear hasta que se libere la versión estable.

¿Y tu que crees? ¿Bosque se convertirá en un Estándar de programación? En estos días aprendí que los jugadores novatos de fútbol corren tras el balón, pero los buenos jugadores, saben donde estará el balón y se mueven para allá.

Comentarios

Entradas populares de este blog

ExpressJS - Crea Aplicaciones Web Robustas y de Calidad

Mejora la reputación online de tu marca - Importancia del sitio web

Diseño mas allá de lo visual - ¿Que es diseño?