In the past few months, I have been designing and implementing a new programming language called Donna.
Before I explain more about it, I want to be honest and mention that its development has been heavily assisted by AI.
What's Donna
Donna is a functional, statically typed, self-hosted programming language that compiles to native binaries using QBE as its compiler backend.
Donna’s syntax is inspired mostly by Gleam, with a few Python-like touches.
Bootstrap story
The current compiler is the Stage 2 compiler (there were previously Stage 0 and Stage 1 compilers) and is independent from the previous implementations.
Before every release, the compiler is tested and built through GitHub Actions. The release pipeline then generates assembly sources for each supported target and stores them in a separate repository. These generated sources are later used to build the next compiler release, continuing the bootstrap process.
Easy to learn
As mentioned before, Donna takes heavy inspiration from Gleam, so it is relatively easy to pick up and build a small project over a weekend.
Donna is intentionally small and aims to stay that way. The vision is:
- small language
- great developer experience
- native binaries that are easy to distribute
Where Donna is strong
In my opinion, some of Donna’s strongest points are:
- Successfully self-hosted (the Donna compiler is written in Donna)
- QBE supports the full C ABI, making FFI in Donna very straightforward
- Clean and pleasant syntax
- Native binaries
- Statically typed
Visit us
If you want to check Donna out, try it, discuss it, contribute, or simply follow the project, you can find it here:
- GitHub: https://github.com/donna-lang
- Website: https://donna-lang.org
Top comments (0)