# Zig

> Systems language meant to replace C, with no hidden control flow or hidden allocations.

- **Appeared:** 2016
- **Creators:** Andrew Kelley
- **Maintained by:** Zig Software Foundation
- **Type:** systems
- **Status:** alive
- **Born from:** Andrew Kelley designed Zig to replace C while keeping C's binary interface, so existing C libraries still link. The Zig project argues that C++, Rust and D have so many features that programmers end up debugging their knowledge of the language instead of the application.
- **Reacts to:** c, cpp, rust, d
- **Trade-offs:** manual memory; static types; compiles to native code; concurrency: threads. Cost: Still before 1.0, so the language changes between releases (0.16 in April 2026, 0.17 in October 2026), and every allocation and control path is written out by hand.
- **Slots:** systems ●●● strong; embedded ●●○ ok; cli ●●○ ok; wasm ●●○ ok; browser ○○○ none (Compiles to WebAssembly, but is not a browser language.)
- **Alternatives:** c, rust, cpp, go
- **Won where:** Ghostty, a terminal emulator whose shared core and Linux app are written in Zig [source](https://ghostty.org/docs/about); Uber, which has compiled all C and C++ in its Go monorepo with the Zig toolchain since January 2023 [source](https://www.uber.com/en-KR/blog/bootstrapping-ubers-infrastructure-on-arm64-with-zig/)
- **Timeline:** 2016: Zig is first released on 8 February 2016 [source](https://github.com/topics/zig-lang); 2020: The Zig Software Foundation is announced to promote and advance the language [source](https://ziglang.org/news/announcing-zig-software-foundation/); 2022: The compiler moves from about 80,000 lines of C++ to a 250,000-line version written in Zig [source](https://ziglang.org/news/goodbye-cpp/); 2026: Zig 0.17.0 is released, after 0.16.0 in April 2026 [source](https://ziglang.org/news/)
- **Links:** [website](https://ziglang.org), [wikipedia](https://en.wikipedia.org/wiki/Zig_(programming_language))
- **PLDB:** https://pldb.io/concepts/zig.html
- **Sources:** https://ziglang.org/learn/overview/, https://ziglang.org/learn/why_zig_rust_d_cpp/, https://en.wikipedia.org/wiki/Zig_(programming_language), https://github.com/topics/zig-lang, https://ziglang.org/news/announcing-zig-software-foundation/, https://ziglang.org/news/goodbye-cpp/, https://ziglang.org/news/, https://ghostty.org/docs/about, https://www.uber.com/en-KR/blog/bootstrapping-ubers-infrastructure-on-arm64-with-zig/, https://pldb.io/concepts/zig.html
- **Verified:** no, draft of 2026-10-30
- **Canonical:** https://langwhy.dev/lang/zig/

## Why it exists

Zig is meant to replace C. Its overview says that "Zig competes with C instead of depending on it" and that "there is no hidden control flow, no hidden memory allocations, no preprocessor, and no macros" ([Zig overview](https://ziglang.org/learn/overview/)). The project's argument against C++, Rust and D is that "C++, Rust, and D have such a large number of features that they can be distracting" ([Why Zig](https://ziglang.org/learn/why_zig_rust_d_cpp/)). Wikipedia names Andrew Kelley as the designer and says Zig was designed to replace C "while maintaining C ABI compatibility" ([Wikipedia](https://en.wikipedia.org/wiki/Zig_(programming_language))). The first release is dated 8 February 2016 ([GitHub](https://github.com/topics/zig-lang)).

## What it trades away

Zig trades convenience for visible control. It avoids implicit calls such as operator overloading and exceptions, and it leaves heap management to the library and the application, so the programmer writes more of the code by hand ([Why Zig](https://ziglang.org/learn/why_zig_rust_d_cpp/)). The language is also still before 1.0. Its news page lists 0.16.0 on 14 April 2026 and 0.17.0 on 2 October 2026, so code that works on one release can need edits for the next ([Zig news](https://ziglang.org/news/)).

## Where it won

Ghostty, a terminal emulator, has a shared core written in Zig, and its Linux app is written in Zig as well ([Ghostty](https://ghostty.org/docs/about)). Uber uses the Zig toolchain as its C and C++ compiler. Its engineering blog says that since January 2023 the Zig toolchain compiles all of the C and C++ code in the Go monorepo for Linux targets ([Uber Engineering](https://www.uber.com/en-KR/blog/bootstrapping-ubers-infrastructure-on-arm64-with-zig/)). The project itself emphasises "out of the box cross-compilation to most major platforms" ([Why Zig](https://ziglang.org/learn/why_zig_rust_d_cpp/)).

---
Data: CC0, https://github.com/langwhy/langwhy/blob/main/data/languages/zig.yaml
