Zig is a programming language that’s attempting to become “the new C” – the language of choice for low-level systems programming and embedded hardware. Going into that space not only puts it in competition with C and C++, but also other newcomers like Rust and Go. So what makes Zig special?
Joining us to discuss it is Loris Cro from the Zig Foundation. We talk through Zig’s reasons to exist, its language design features, which parts of the C ecosystem it’s tackling, and how the Zig Foundation is set up for the long-term health of the language.
–
Loris’ website:
Kris on Twitter:
Kris on LinkedIn:
Zig homepage:
The “learn zig” guide:
Learn Zig with Ziglings:
Find the Zig community:
Rust’s cargo-zigbuild:
Using zig as a better linker:
“The Economics of Programming Languages” by Evan Czaplicki (Strange Loop 2023) –
–
0:00 Intro
2:08 Podcast
1:22:08 Outro
#programming #programminglanguages #software #zig #ziglang #llvm #rust #go
source

I was expecting more technical answers to questions like,
"Why not Rust or another language?" Instead, the responses felt quite generic, along the lines of, "It's complicated…", without going into the technical reasoning or trade-offs.
://
don't recommend channel, because I don't like question mark abuse in my recommendations
C will always be king because to use C u need to understand how computers work all those people saying there going to kill C are just projecting the fact that they don't understand how computers work. It's that simple.
I think Zig might die. For it to succeed at this stage, it should be in use in the Linux kernel or some other major project like this. And Bun switching to Rust will be a big blow. “Nobody ever got fired for picking Zig” must hold true for it to succeed.
When Zig is 1.0 I'll look at it.
This is encouraging me to take a much deeper look into LLVM.
You should totally be Snape in the next Harry Potter.
Im using zig to learn c and c++ so my current projects use the 3 programming languages if I need a lib I use c++ or c if posible then abstract cpp with extern "c" then pass it to a zig file where I add the error handling then use everything in zig that would easly compile with zig build, No Cmake, no Make files, No dsl and no Ninja or any build overhead, build zig had flags for shipping and even testing and fmt, At the end if you wish you dont change c and cpp you just do a big handshake
Zig is cool but I often think they are making the same mistake that was made with Perl. Though once upon a time Perl was sitting on top the prospect of being a highly competitive language, it took like a decade to get an upgrade and by the time it came it was only a niche. Zig has been in beta for a decade now. While I can play around in Zig all day, it is still not something I get to use for productivity. I will say one thing though, even if C is less used it will always have a place as a sort of universal programming language. One you can use externally without absorbing it into your own code.
I'm getting Priyanka Chopra Jonas vibes
I wish we could all be honest that C++ is just a deeply flawed language than cannot be repaired. The very existence of this explosion of low-level languages is an admission of that. That part should be easy to agree on, but this explosion of languages also reveals that no one can seem to agree on what those flaws actually are.
Before even watching the video I can guarantee you that Nim also has those things, and much more (I'll still watch it though)
Is that a sm57 mic? sound very much like it…
You talk about C and C++ at the beginning. Almost all AAA video games are written in C++, but in a style that imitates C. Think of it as mostly C with some C++ mixed in. Like constructors and classes, but slow things like dynamic_cast turned off at the compiler level to make smaller faster code. Most meta programming in game development is frowned on. And as you know, video games are very performant. I thought that'd be interesting to know.
great content! Loris is super!
I’m so glad I came across this podcast, thank you Kris.
Isn’t C’s longevity a testimony to its power and stability?
Having to explicitly pass the (heap memory) allocator to all functions that MAY one day need it creates a lot of boilerplate "noise" in the Zig source code, hurting readability.
Why not be able to declare an Allocator instance as the default allocator, and let the compiler include that instance on any calls that do not explicitly declare an Allocator parameter, but needs one. That default type instance declaration could also be expanded to cover ANY type, making it implicitly available.
Likey likey
But does it zag?
Hmm so zig has plans for the LLVM compiler backend to be optional
that leads me to believe that it is able to take the same input from zig, rust, c, c++ and etc
So my question is will that be usable for other programming languages as a compiler backend as well
Zig is 10000% more exciting to me than anything AI related
liked that part when saying Rust is complex.
Zig doesn't look like easy tbh
I have to say, this guy gives too much credit to C and too little to Fortran and Pascal, where many of his concepts actually come from — like string literals and pointer arithmetic.Another Fun fact i can mention is, i really can also tell this Guy does not often use a Windows OS. Which is fair, but otherwise he would have mentioned, the Windows API calls are using null terminated strings, but Fortran/Pascal Function Calling convention.
at 29.10 good
You need to proofread the captions. They frequently confuse Zig with C, which can be pretty misleading. In general, youtube's autocaptioning is utter trash and should be considered for entertainment only.
> What's Zig got that C, Rust and Go don't have?
…a practically non-existent userbase? Zero adaptation? Lol
Both of you are excellent communicators. So impressed. Wish i can be as smooth explaining as Loris is.
There is no point in reinventing the wheel unless you make it better.