vak: (Бодхидхарма)
[personal profile] vak
Целиком интервью можно посмотреть на Ютубе. Вот текст первой части. Остальные семь частей добавлю в комменты.

Part 1: Why Build Zig & Overcoming Technical Friction

[00:00]

What made you build Zig? I can do better. I can do better than C++, I can do better than Rust, I can do better than Go, I can do better than JavaScript. Strict no LLM, no AI policy, why? Invariably garbage. $100 million, would you take it? I'm sorry, but we will not do what you say, and if you take your money away, we will survive. You moved Zig's main repository from GitHub to Codeberg. GitHub simply stopped working for us. We moved to Codeberg and now our continuous integration server works again. When we tag 1.0, it will be like a true uncompromising labor of love. We will not have to be stuck with any like bad decisions. What's blocking it? Um, well, ultimately...

Andrew Kelley, we already have C, C++, Rust, Go. What made you build Zig anyway? Well, it's funny that you listed those languages specifically because that is exactly the set of programming languages that I first tried to use to build a digital audio workstation just before I pivoted to working on Zig. And when I tried to work on this project with each different language, I ran into a different set of problems that I found insurmountable. And at the end of this process, I concluded that no, it's not me that is having a skill issue, it's the programming language that's the problem. And so from there, that's where I developed the hubris of making a new programming language.

Comment: Andrew Kelley, creator of the Zig programming language, quit his tech job in 2018 to build Zig full-time. He runs the Zig Software Foundation on $670,000 a year and enforces a strict ban on AI contributions.

What problems exactly? The first thing that I tried to do was make the digital audio workstation in the browser using JavaScript, and what I quickly realized is that this is too high level. I don't have access to the computer's capabilities that will allow me to make a compelling user experience in this digital audio workstation. So I threw that out the window and I went to native programming language compilation.

The next thing I tried to do is Go. What I ran into with Go is, number one, trying to interact with libraries like for creating a window or making buttons or something like this using existing C code does not work very well with Go. And then I also ran into the garbage collector problem. So, of course, if you're trying to do audio, you have a real-time deadline. If you can't process the audio in exactly this amount of time, you get a glitch or a skip, and it's completely unacceptable for live performance software like a digital audio workstation.

So then I got rid of Go. Now I tried to use Rust, and this was before Rust 1.0. But what happened is that I really struggled to write code that would satisfy Rust's rules. Once I did satisfy them, I found that even trying to make little changes would cause a cascade of compile errors that would prevent me from making more progress. I remember just feeling very frustrated that I spent a whole month trying to get font rendering to work, and then felt stuck like I couldn't even make more progress after that point. So I gave up on Rust and I switched to C++.

Then I felt more productive at first. But what happened very quickly is that just a little typo here, a little mistake there, would result in a memory corruption bug that would cost me weeks in order to debug. This is just too slow. I can't create a project with this magnitude of difficulty when these little mistakes are costing me weeks and weeks over and over again. After that, I tried C++ but C-style. I would compile with the C++ compiler, but I would link with the C linker, and that would give me an error if I tried to use fancy C++ features. That limited me to only templates and a few other things, but even then, it was the same problem. It's just too easy to shoot yourself in the foot with C++. For me, that was when I said: "I can do better. I can do better than C++, I can do better than Rust, I can do better than Go, I can do better than JavaScript, I can do better than D." That was my hubris.
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
This is heart-warming, really.

Date: 2026-06-03 05:28 (UTC)
b0p0h0k: (OSDispak)
From: [personal profile] b0p0h0k
К человеку, который знает как сделать DAW from scratch, я уже отношусь как к небожителю. Такого знания должно быть вполне достаточно для хорошей карьеры на всю жизнь.
И тут он берёт и всё бросает, и начинает from scratch создавать язык, который должен победить всех.
Невероятно.
Интересно, вернётся ли он в конце концов к своей DAW.
Это напоминает мне Вирта, который говорил, что вся его карьера с языками была всего лишь diversion, подчинённая главной задаче - написать программу управления модельным вертолётом, которая поместится на одной страничке. (Задача была им решена в 1995 на подмножестве Оберона).

Date: 2026-06-03 09:24 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
This is amazing. He's absolutely right regarding all the languages mentioned. One thing is not clear to me, why he couldn't use plain C. Zig is basically like C, but with details.

Well... I would use Forth, but who uses Forth these days.

Oh, and thank you so much for posting all this long read. So inspiring. I mean, the very fact that such people exist IRL. People with such honest opinions. Amazing.
Edited Date: 2026-06-03 19:49 (UTC)

Date: 2026-06-03 17:45 (UTC)
straktor: benders (Default)
From: [personal profile] straktor
Как наверное уже сто раз шутили, "зиганул".

Нишево, пусть цветут все цветы. Практически, даже питон средний питонист знает средне. Если чел на старте меняет Io API, и исправляет юзерам код, то это цирк и несерьёзно. В си вызов creat() так и зацементирован.