Zig is a modern, general-purpose systems programming language with a clear and pragmatic mission: to be a robust, optimal, and maintainable replacement for C. Its influence on Ribbon is significant, particularly in its formalization of modern C programming methodologies and its unwavering commitment to explicitness and developer control.

What We Admire and Share

Zig’s design philosophy is exemplary in its elevation of the “unwritten rules” and hard-won knowledge of experienced C programmers into first-class language features.

The Philosophical Divergence

While Ribbon shares Zig’s commitment to safety and control, our philosophies diverge on who should be responsible for defining the boundaries of a system.

This means that while Zig offers one set of extremely well-designed safety rules for everyone, Ribbon allows you to create custom-tailored safety rules for your application’s users. We allow for more freedom at the language level, but use our advanced type system to provide even stronger, more domain-specific static guarantees.

A First-Class Friend

Ribbon does not view Zig as a competitor, but as a close philosophical sibling and a first-class FFI friend. The reference implementation of the Ribbon compiler and runtime is currently written in Zig, a testament to its power and suitability for building robust, high-performance software. Our goal is for the interoperability between Ribbon and Zig to be just as seamless as our interoperability with C, allowing developers to leverage the strengths of each language in a single, cohesive project.