Meet Bosque, Microsoft’s new programming language with no loops and conditions
Microsoft Research recently introduced a new open-source programming language called ‘Bosque’ that is “designed for writing code that is simple, obvious, and easy” for humans and machines to understand.
According to Mark Marron, Microsoft’s computer scientist and chief developer of the language, the key design features of the language provide ways to eliminate “accidental complexity” in the development and coding process. It does so by embracing algebraic operations and by breaking nearly 50 years of existing programming models.
As Marron pointed out in his paper, Bosque is an effort to move beyond the paradigm of structured programming that became popular in the 1970s.
A 1968 paper titled “Go To Statement Considered Harmful” by computer scientist Edsger Dijkstra popularized the fact that flow control in structured programming paradigm is managed with loops, conditionals, and subroutines.
However, Marron represents Bosque as ‘regularized programming’ that gets rid of sources of complexity like loops, mutable state, and reference equality.
“This model builds on the successes of structured programming and abstract data types by simplifying existing programming models into a regularized form that eliminates major sources of errors, simplifies code understanding and modification, and converts many automated reasoning tasks over code into trivial propositions,” explained Marron in his technical paper.
“The goal is improved developer productivity, increased software quality, and enabling a range of new compilers and developer tooling experiences,” adds Marron.
Bosque is currently in the development stage and experts recommend not to use the programming language for any production work. However, it is open for experiment and developers can add their contributions on the Microsoft Bosque GitHub repository
Bosque becomes the latest addition on Microsoft’s programming language list, which already includes popular languages like C#, F#, and TypeScript.