Zura: a low-level compiled alternative to C and C++

Why? | Goals | Status | Join Us

Introduction

Zura is a statically typed, compiled, low-level programming language. It is designed to be simple and easy to use. It is inspired by C and Go. It is currently in development and is not ready for production use.

Why

C++ remains the dominant programming language for performance-critical software, with massive and growing codebases and investments. However, it is struggling to improve and meet developers' needs, as outlined above, in no small part due to accumulating decades of technical debt. Incrementally improving C++ is extremely difficult, both due to the technical debt itself and challenges with its evolution process. The best way to address these problems is to avoid inheriting the legacy of C or C++ directly, and instead start with solid language foundations like modern generics system, modular code organization, and consistent, simple syntax.

Existing modern languages already provide an excellent developer experience: Go, Swift, Kotlin, Rust, and many more. Developers that can use one of these existing languages should. Unfortunately, the designs of these languages present significant barriers to adoption and migration from C++. These barriers range from changes in the idiomatic design of software to performance overhead.

Zura is fundamentally a successor language approach, rather than an attempt to incrementally evolve C++. It is designed around interoperability with C++ as well as large-scale adoption and migration for existing C++ codebases and developers. A successor language for C++ requires:

Zura aims to fill an analogous role for C++:

Language Goals

I am designing Zura to support:

While many languages share subsets of these goals, what distinguishes Zura is their combination.

I also have explicit non-goals for Zura, notably including:

My detailed goals document fleshes out these ideas and provides a deeper view into my goals for the Zura project and language.

Project Status

Zura Language is currently an experimental project. There is no working compiler or toolchain. The demo interpreter for Zura is coming soon.

I want to better understand whether I can build a language that meets a successor language criteria, and whether the resulting language can gather a critical mass of interest within the larger C++ industry and community.

Currently, I have fleshed out several core aspects of both Zura the project and the language:

You can see my full roadmap for more details.

Join Us

I am looking for collaborators to help build Zura. If you are interested in contributing to the project, please reach out to me at here or join the dicord server here.