Microsoft has introduced a new open source programming language called Bosque. It’s inspired by the syntax of TypeScript, the semantics of ML and Node.js. The main purpose behind Bosque is to build a functional programming language which will eventually help us move beyond the paradigm of the structured programming.
Microsoft Launches Open Source Programming Language ‘Bosque’
Even after numerous improvements in the programming languages, we are still dealing with the same complexities of flow control which is managed with loops, conditionals, subroutines, mutable state and reference equality. Bosque is the brainchild of computer scientist Mark Marron who represents this language as ‘regularized programming.’
“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.
Bosque will eliminate the Accidental Complexity
Bosque is designed in a way to improve developer productivity and software quality with a range of new compilers and tool experiences. They all work together to eliminate accidental complexity. The new language is supposed to make things simple for both machines and humans.
As of now, Bosque is in the development stage and experts don’t recommend using it for any kind of production work but the language is open for experimentation. Let’s have a look at some features and design choices formed for Bosque.
- Functional programming is combined with block scopes and braces by allowing multiple assignments to updatable variables.
- Lambda constructors merge code definition for the body with a variable copy semantics for closure captured variables on lambda creation.
- Functions are first-class values and types.
- All values are immutable. This makes the understanding of the effect of statement or block of code is simplified when it is side-effect free.
- Typed strings provide a way to lift known structure about the contents of a string into a meaningful type.
- You can thread the parameters through passing ref argument. This will simplify the situations where a variable is passed to a method that may use and update it.
- Algebraic operations are available for data types, tuples, records, and nominal types and also for operations that include projection, multi-update and merge. Bulk algebraic data operations begin with bulk reads and data values updates in Bosque.
- Bosque comes with first-class support for expressing a range of invariants, diagnostic assertions, and sanity checks.
The Bosque programming language is currently just an experiment in regularized design for a machine assisted rapid and reliable software development lifecycle. Microsoft which is already popular for producing languages like C#, F#, and TypeScript, has now added Bosque as the latest programming language. If you are interested, you can find the Bosque documentation and examples on its official GitHub repository.