Home / Definitions / Bosque


Abby Braden
Last Updated May 24, 2021 8:02 am

Bosque is a free and open source programming language developed by Microsoft. It is derived from the syntax and types of TypeScript and the semantics of ML and Node/JavaScript languages. Users with a JavaScript background will find Bosque familiar. It is designed for writing code that is simple, obvious, and easy to read for both humans and machines. Bosque is focused on the implications of:

Designing a bytecode that enables deep, automated code reasoning and the deployment of development tools, compilers, and runtime systems.

Using the power of the bytecode to provide an easily accessible programming language for modern developers. It also provides a rich set of language features for developing reliable and high-performing applications.

Making cloud development the priority to address the challenges that come with the adoption of the distributed cloud development model.

Bosque supports a simple and non-opinionated type system that allows developers to use a range of structural, nominal, and combination types to convey intent and encode features of the problem domain.

Bosque programming language features

Notable features of Bosque include:


All values in the Bosque language are immutable, meaning the state cannot be modified after it is created. This is popular with many functional languages and improves readability and runtime efficiency.

Typed strings

Typed strings provide known structure about the content of a string in the type in a way that’s useful to humans. Bosque features two types of typed strings, SafeString and StringOf.

SafeString is parameterized with a Validator regular expression type, so it describes the language that the string belongs to.
StringOf is parameterized by any type implementing the Parsable concept, making it ideal for working with data that comes in a custom format or light validation.

Bulk algebraic operations

This feature supports bulk reads and updates to data values. With bulk operations, updates can be performed as an atomic operation without manually extracting and copying fields.

Errors and checks

Bosque aims to simplify the process of building reliable software. The language provides support for errors and checks. It also expresses a range of invariants, sanity checks, and diagnostic assertions.