News

Microsoft’s New Programming Language ‘Bosque’ Keeps Your Code Simple

Microsoft has launched a new programming language called Bosque. The company says Bosque has been designed to write code that is “simple, obvious, and easy to reason” for both humans and machines.

The purpose of this open-source project is to develop a functional programming language that prevents “accidental complexity” in coding and development. Codes generated in Bosque language are supposed to be simple and easy by adopting algebraic operations and avoiding techniques that create complexity.

Bosque is the brainchild of Microsoft’s computer scientist Mark Marron and is based on syntax and types of TypeScript. It also uses the semantics ML and Node/JavaScript.

Marron describes the new language as a move to shift from the paradigm of structured programming that became popular since the 1970s.

In a structured programming model, the flow control is managed through loops, conditionals, and subroutines. Bosque gets rid of sources of complexity like loops, mutable state, and reference equality. Marron described this new programming paradigm as “regularized programming” in his paper.

So Bosque doesn’t make use of ‘for,’ ‘while,’ ‘do while’ loops and it has a different approach to conditionals. Microsoft has introduced the concept of ‘Functors’ which does the same job loops and can increase software quality.

You can see in the image below how Functors differ from loops —


Image: Regularized Programming with the BOSQUE Language

Since Bosque is still in the development phase at this point, it is recommended not to use Bosque for any production work. However, developers are welcome to experiment with it and add their contributions to its GitHub repository.


With Bosque, Microsoft hopes that it’ll improve developer productivity, increase software quality, and support a range of new compilers and developer tooling experiences.

What do you think of the new programming language? Are you excited to try it?

To Top

Pin It on Pinterest

Share This