DEV Community

Cover image for Hello, Donna (A new Programming Language)
Nikolas Skyl
Nikolas Skyl

Posted on

Hello, Donna (A new Programming Language)

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:

Top comments (0)