The Road to Zig 1.0 - Andrew Kelley

ChariotSolutions · 167K views · 2019 · 59:48

Open on YouTube

C, C++, Rust, Go & systems languagesProgramming language designtalkdated

Why Hacker News recommends it

HN treats it as the standard introduction to Zig by its creator, with some calling it among the best talks they have seen.

What it is

Zig creator Andrew Kelley justifies why Zig exists and tours its distinctive features, including C interoperability and comptime, along with what people had built and what 1.0 would bring. It was given at Philly ETE 2019.

Recommended by 5 HN commenters across 6 different months, 2019 to 2025.

What Hacker News said

Strong rec pixelpoet · 2023-07 · on “Problems of C, and how Zig addresses them”

Andrew Kelley's intro[0] is probably the best talk I've ever seen, and his continuing leadership seems really great to me and worth supporting. Besides my reservations for its use in graphics programming (see my other comment) it looks very attractive in many practical ways (build system!! fuck CMake!) I could go from how I currently write my hobby code, sometimes a prototype for future commercial code. [0] [this video]

Strong rec matheusmoreira · 2023-11 · on “A decade of developing a programming language”

I can only hope my own language will become "incredibly small" like that one day. :) Even if a language doesn't take off, its ideas can make a difference and influence future designs. The creator of Zig certainly made an impression on me with this talk: [this video] Even if Zig hadn't been successful, the ideas it represents would've enriched the world. Gives me hope I'll be able to make something out of my own ideas too one day.

Strong rec pixelpoet · 2024-12 · on “C++ is an absolute blast”

Sorry, one more thing to add to this: Andrew Kelley is obviously a genius, and his talk introducing Zig[0] is in my top 10 of all time technical presentations, for many reasons. But I really do wish someone close to him with a passion for how coding is in many ways applied mathematics, would ask him to please have broader algebraic support for basic operations like +, -, * and maybe divide, with their basic dataflow characteristics. Optimal speed for complex numbers vs std::complex out of the box would be attractive. I understand his point about not wanting to allow every random C++ feature, but in these cases, it isn't a C++ feature, it's language-level basic algebra. In C++ land, ISPC[1] i

Recommends AndyKelley · 2019-12 · on “Game Boy Advance “Hello World” Using Zig”

Here is a newer talk (April 2019) which is also by me and also an introduction to Zig: [this video] A lot has changed since then, and a lot has changed since that Localhost talk. To catch up: * (the older talk happened here) * 0.3.0 release notes - [LINK] * 0.4.0 release notes - [LINK] * (the newer talk happened here) * 0.5.0 release notes - [LINK]

Recommends von_lohengramm · 2021-12 · on “Zig 0.9.0”

In addition to the other recommendations, the Zig Zen[0] and The Road to Zig 1.0[1] are pretty convincing. [0] [LINK] [1] [this video]

Recommends fileeditview · 2023-04 · on “Zig Build System”

I would recommend this talk by the creator of Zig: [this video] He gives some examples of C vs Zig and what they tried to improve.

Cites matheusmoreira · 2019-10 · on “JavaScript Is C”

Using anything other than C makes one's code unusable as a general purpose library due to the complexity of the binary interfaces. Writing C++ ensures the code won't be touched by anything but more C++ code. A Python script can load a C library shared object, resolve a symbol to a function pointer and call it. I don't think I'll ever see Python load a C++ library shared object, obtain a pointer to a C++ object and call methods on it using the C++ ABI and handle the C++ exceptions it may throw. The only way to interoperate is to sacrifice all the benefits of C++ and adopt a C interface. Rust has this feature as well. I like how the creator of Zig put it: if it doesn't speak the C ABI, someone

Cites AndyKelley · 2020-01 · on “Hobby x86 kernel written with Zig”

Here is a talk I gave that directly addresses this question: [this video] (the title & abstract in the youtube description is the one I gave for the RFP; I ended up going in a slightly different direction than it once I actually made the talk)