Last Updated: October 29, 2020
· pombo

A programming language to make concurrent programs easy to write

Alan is a general purpose programming language that is barely "Turing Incomplete". This tradeoff allows Alan to make many developer errors difficult or impossible. It also allows the VM find and exploit opportunities for parallelization across the computing resources available without using threads, channels, locks, futures, etc.

Why a new programming language?

We dream of a day in which the same program/backend can run on a single core or across many machines in the cloud without any operational complexity (extra deployment configuration or maintenance), extra code (frameworks or vendor APIs) or constraints (delayed execution, limited runtime, no persistent connections, etc). We created a new programming language to see if we could have a compiled language with a simplified bytecode, wrt to traditional languages which allow arbitrary computation that is not guaranteed to halt, that could be automatically parallelized across many cores and machines in the cloud by a VM/runtime (written in Rust 🦀) based on the size and shape of the data.

Please let us know what you find most interesting about the language and help us find bugs! My friend and I are working full time on this and we are looking for people interested in contributing to it too.