Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
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 Zigg'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 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 Kelly, 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 Zigg.
And when I tried to work on this project with each different language, I I ran into a different set of 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. >> Andrew Kelly, creator of Zigg programming language, quit his tech job in 2018 to build Zigg full-time, run
Zigg Foundation on $670,000 a year. band AI. >> 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 is Go.
And what I ran into with Go is uh 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 a a live performance software like
the digital audio workstation is. So, then I got rid of Go. Now, I tried to use Rust and this was before Rust 1.0. Uh, but what happened is that I really struggled to write code that would satisfy Rust's rules. And once I did satisfy them, I found that even trying to make little changes would cause a a cascade of compile errors that would prevent me from making more progress. And I remember just feeling very frustrated that I spent a whole month trying to get font rendering work and 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, little mistake there would result in a memory corruption bug that would cause me weeks in order to debug. This is just too slow. I I can't create a project with this magnitude of difficulty when I'm these little mistakes are costing me weeks and weeks over and over again. After that, I tried
C++ but C style. So I actually 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. So that limited me to only templates and a few other things. But even that, it was the same problem. It's just too easy to shoot yourself in the foot with C++. And 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. >> Now Zeke, what is Zeke used for? What problems does it solve? >> Zigg is used when you want to have full control over the computer. You don't want to leave any performance on the table. um you want to have the best possible um performance and the best possible uh memory usage and ultimately you want to craft a compelling user experience. That's the most important thing. Just before starting Zigg, I took a new philosophy for myself to not compromise on the user experience. So I
wouldn't I would never say oh because I'm using Go or because I'm using JavaScript or something like this, I have this limitation in the software. I would say no that's not acceptable. I will change my tool chain if I have to in order to make the computer deliver the the best experience for the user. And for me at the time that was a different way of thinking about programming. It's it's not what can I do with my tool chain. It's what can the computer fundamentally do and how can I
get it to do this using any possible tool chain. Maybe even one that I would make. >> Let's talk about applications. Where is Zeke used? Uh today >> one application that comes to mind would be Ghosty. So this is a uh terminal emulator created by Mitchell Hashimoto. Um this is a really nice project written in Zigg because um the code is very high quality. Mitchell does a really good job managing the community and fuzz testing and making sure that it's good quality. There's also uh Tiger Beetle. Tiger
Beetle is a a financial transaction database that's written in Zigg and they uh batch operations together to achieve um a level of efficiency that is um not common in that space because other solutions are trying to use Postgress SQL or or some kind of relational database like this and building the OLTP on top of it. But they have they have built a special purpose database that's a thousand times faster than that kind of strategy. That project is really focused on um pre-allocating resources and then
never failing after that point. So when you start that project when that database runs it will pre-allocate all the memory you will ever use and and then that from that time it will never dynamically allocate anything ever again and then that keeps their latencies very predictable and very consistent for that database. So that's a good example of where using Zig was a nice choice because um Zigg offers you the choice between optimizing for low latency, predictable latency and what I would call the opposite of that which would be
kind of garbage collection high throughput if that makes sense. >> What about Bun? Bun is a JavaScript engine that uses JavaScript core and a bunch of other C++ libraries and then all the glue code is is written in Zigg. That project was recently sold to Anthropic I think and we've seen a lot of people uh consequently getting into um using Zig for AI. >> I also heard that Uber is using Zig. Yes, Uber is using the tool chain. Uber uses uh Zigcc to build uh some of their things for to cross compile for um ARM
64 and specifically they're using it with Go. So they have a bunch of Go code and the problem is that when you try to cross-co compile Go code uh that part works but when you try to cross compile go code with with also C code in it uh that does not work with Go out of the box. Um, but you can actually just use Zigg as the C compiler along along with Go. And then now you have cross compilation also for your your C code that the Go code depends on. >> By the way, why why is it called zig?
Why is it called zig? Uh, I wanted a short word that had zero Google results for programming language. And that was true at the time. So if you search for Zig programming language, uh when I when I named it, there was zero results. So I made a I made a little Python script that just printed some random words and uh Zigg jumped out at me, so I picked it. >> Why do you have the iguana as a muscos? >> It's a ziguana. >> Zigguana. >> Amazing. Well, uh Andrew, Zeke is in top
five most admired programming languages. Uh but no 1.0 release after 10 years. What's blocking it? >> Um well ultimately uh 1.0 can mean different things for different projects. So if we look at if we look at Go, they tagged 1.0 and they did not touch the language for a very long time. Rust tagged 1.0 pretty early, but they have this feature called additions. And so, uh, even though they maintain the backwards compatibility guarantees with 1.0, they still can change the language quite a bit. And writing modern Rust is
still different than writing 1.0 Rust at the time. So really, what is 1.0? It's a it's a backwards compatibility promise, right? The other thing I would say about that is Zigsoft Foundation is not a startup. We don't have any investment money. Uh, we don't have investors breathing down our backs. Uh we're a 501c3 nonprofit. We don't have to crash and burn. You know, we don't have to sell. We don't have an exit plan. Our plan is to make a great project and and keep improving it over a
long period of time. Uh we have the time to make steady improvements. We um we we're a very lean, very efficient, small organization. Like we don't we don't burn through a lot of capital very fast. And so we're here to stay. you know, we will keep improving Zigg until we get there and we don't have to do it prematurely. When we tag 1.0, it will be like a a true uncompromising labor of love. We will not have to be stuck with any like bad decisions that that we had to rush to to lock in.
Well, I'll continue asking about that. Okay. Like there is a concept in software development called worse is better. >> Like ship fast, fix later. like PHP, Go, they did that and they became huge. So you choose the opposite. Why? This worse is better is a pet peeve of mine because linguistically it makes no sense. Um so I think I think it's better to say doing less with less uh versus doing more with more. I think Zigg is a third option. We're trying to do more with less. So we still we still
want to offer great things, but we want to find that sweet spot where a little bit can go a long way. And you can you can find this reflected in the language with uh for example the the ratio of of a small amount of complexity of comp time feature to the high amount of utility that you get from it. And you can find that reflected in the tool chain where just one one flag can tell you tell the compiler to target a wildly different operating system and architecture and then we'll just work. >> Do you think missing 1.0
users or company adoption? >> I think it's no doubt that when we tag 1.0 we will see a sharp rise in adoption. That that's that's certain. Um but for me the I I have my eyes on the long-term future. I want to make Zigg to be a language for the next 50 years and I think we will start to see those pay off in this upcoming 0.16 release. >> Can you share us maybe deadline for that? >> Yeah, this one. Well, how about this? We can we can make this a race. Okay. So, you race to try to get this this video
uploaded and I will race to try to tag 016 and we'll see who wins. Yeah. to develop the language. You founded Zeke software foundation uh and in 2024 its total income was $670,000. Who are your main sponsors? >> If you look at the blog post where I presume you got this information from. Uh there's a nice pie chart that shows um the the different parties that our income comes from. And I'm really proud of how diverse that chart is. A lot of our sponsors are individual donors and
uh and then apart from that we have a nice healthy variety of different companies that we get donations from. So we we don't have any single entity that can say hey you know you need to do this or this we we could turn to any individual sponsor and say I'm sorry but we will not do what you say and if you take your money away we will survive. It's a very mutual beneficial relationship but just with healthy boundaries between between the business organizations. >> Can someone of your sponsors uh
influence how you develop Z? >> Well, they can influence it in the same way that anyone can influence it. They can participate on the bug tracker. They can send poll requests. Um they can chat in the in the development channels. And you know ultimately it's it's it's humans talking with humans. They don't have a secret high priority channel. You know, everyone's on on equal footing here. >> Your salary is 154,000 per year. >> Yes. >> Which is comparable to a senior
engineer, but uh you are building the entire language ecosystem. How do you decide on your own salary? Uh this was decided by the Zig Software Foundation board uh when we had our first board meeting and this was the median senior software engineer salary in New York City at the time which is where the nonprofit was formed. It seems like in your question you know you're implying that maybe I deserve more money which um thank you for the implication. Uh but honestly I feel upper middle class. I feel like I get a lot of money
and I can afford groceries easily and I can afford to mortgage for a house in in Portland, Oregon where I live. So, I'm comfy, you know, I don't I don't need more. And uh I like to to me the the autonomy of having a lean nonprofit that um that that that is sturdy and can withstand um a chaotic financial environment that we are in today. To me, that is more valuable than having some more spending money because this is what allows us to say, um, no, not yet. You know, we need a little more time for 1.0. Uh, this is
what allows us to, um, you know, this is what allowed us to, uh, raise the rates for our contractors in a year where everyone was having massive tech layoffs. Uh, and I'm I'm proud of that. I think that um I think that what we have is is a is a healthy organization and to me that benefit it fills me with satisfaction that having more income would would not fill. >> And if a large company offers Zeke say $100 million with no conditions, would you take it >> $und00 million? So to put this in
perspective, uh our um yearly annual revenue has been less than $1 million every year. Maybe starting to approach it this year. So there's two there's two limitations here I would say to this money. The first thing is sustainability of the nonprofit. So what I would what I would not want to do is take that money and then spend a significant fraction of it and so that I would need to get more of that amount of money in the future. That would be a problem because now I you know whichever instead of instead of a a surprise a
gift now we need it. Now we have an obligation to do to try to get it again. Um and then the second limitation here would be uh team size. I'm managing a team of five. I don't think I have the skills to manage a team of much more than that. Nor do I have the motivation to do it. I would certainly not take this money and and and and then just grow and and become a manager of 100 people or something like this. But you know what I could do is if if it's a $100 million, I could take that money,
put it into the bank, and then never have to fund raise for 100 years. So, sure, they'll take the money, but not grow. You see what I mean? >> I see. >> Because I think what the question is fundamentally asking is, would you grow if you had the opportunity? And I think the answer is a little bit. I think we could have more than five people, but I think maybe more than 10 would be pushing it for me. So uh team of five your salary is that like all the money from the foundation? >> Um the the foundation has one employee
which is me and uh and then five contractors. Um we have other contractors who are not active uh but about about five who are paid uh full-time and I believe the number was 91% of that money last year went to paying contractors to to work on the project. So the the vast majority of the income that that we get from donations is going directly towards paying contractors for work on the Zig project. being this open uh with the money is it is it because some obligations that nonprofit has or it's
something important to you as well? >> There's some obligations that nonprofits have. So this is a United States 501c3 nonprofit and I'll take this moment to point out that it's different than a 501c6. Um that the 501c6 is a business league. That's what the Rust Foundation is. So you know Amazon, Netflix, Microsoft, Meta, they all have a shared interest in the Rust project succeeding. So they all donate to this 501c6 so that it can help them like lobby the government and I'll
do all these things. 501c3 not allowed to lobby the government and we don't have other businesses that are in interest. It is it is serving the mission statement alone. That is the purpose of the of the 501c3. the blog post where we we break down this income and these expenses and share more of these details. Um that's voluntary transparency. Um but that also acts as marketing for us because we do good on these metrics. So it helps people to have confidence that we're doing a good job and it serves as an opportunity to
fund raise as well. >> In 2022, you left Reddit and Twitter. Why? I think that posting on these websites is is becoming a lot like posting on slash dot or dig. They're just becoming kind of irrelevant anymore. You know, we're software engineers. We want to do as little marketing as possible. And so these things just aren't um giving us um returns on our investments anymore. uh we're starting to um do more inerson events like Zigg Day and as opposed to social media where you know we interact
with trolls or just the the algorithm controls you know what gets seen and whatnot. Um this this is what we're currently thinking is is a more better investment of our focus to to grow the community. >> Then in late 2025 you took another step. You moved Zigg's main repository from GitHub to code. Why >> GitHub simply stopped working for us? Uh we would not have results for our continuous integration runs anymore. It just would stop working. So we moved to Codeberg and now our continuous
integration server works again. >> But uh you had sponsors on GitHub. Did they follow you to the new platform? That was a tough choice to to leave those behind because yeah, anytime that that funding is concerned, it's uh it's a bit spooky to potentially take a risk and and lose a source of income. But ultimately, we're here to write software and if our continuous integration server doesn't work, we need to find one that does. So that was the highest priority. >> Did the foundation uh lost some money?
Uh we're doing completely fine on that front. We're creating software with MIT license. This is a no strings attached donation, if you will, to the world of software. And people who donate money to us likewise are making no strings attached donations. Under this relationship, I've found that is there's a high amount of respect for the other party. So, you know, if someone stopped donating, I don't say, "Hey, you jerk. Why did you do that?" No, of course not.
It's no strings attached, right? And when we make these choices to move off GitHub or do this or that, I find that people are very understanding and very gracious. >> By the way, why why Codeberg specifically, not GitLab, not hosting your own server? >> Codeberg is essentially a clone of GitHub. So, it was an easy transition to make. Codeberg is also a um German nonprofit and personally I I find it to be I find using nonprofits to be a more stable businesses than startups or you
know corporations because these corporations are always chasing the next thing and um you know trying to get it trying to make the next quarter more profitable or something like this and the nonprofits are just trying to keep doing what they're doing and that stability is what I want code forge. So that was why I picked >> codeber. >> Leaving social media, leaving GitHub, uh it all sparked huge discussions, huge debates in the community like many say that uh this will stop uh ZIK's growth,
maybe turn Zeke into a niche language. Uh what do you personally think about that? I think that the code forge is um not really a marketing arm of the project. I don't think that people are discovering Zigg through GitHub or Cobberg. I think they're discovering it through like we were talking earlier about talks, meetups, stuff like this YouTube video that we're making right now. Uh Ziggday meetup groups. These are places that people find out about a language. whether we use git or mercurial or where the bug
tracker is. I mean, they affect how convenient it is to work on the language, but that's not marketing, you know. So, I think that this idea that it's a some kind of crisis of popularity, I I don't understand the reasoning behind this at all really. Let's talk about some things around Zeke that have sparked a lot of discussion. You moved away from LLVM. Why? I play a 10player competitive arcade game called Killer Queen and it's quite fun, but the the developers made the choice to use
Unity for their physics engine. And the problem is that that that physics engine the physics engine is extremely loadbearing for competitive play. even tiny little changes to it will make it um competitive players feel completely different and reset their skills. And so these these developers, they can't even update to the new Unity version because even the bugs fixed in the physics engine will cause an uproar in the community of people who play this game. So they made the they made the mistake of using a dependency for their
core product. And I think that that's a key insight is that you want to avoid a dependency for your core product. And we have done this with LVM with Zigg. And so we're in the process of of rectifying this mistake. So I think of it like training wheels on a bicycle. I've been working on Zigg for over 10 years now. And I know more about compiler development than I did 10 years ago. And so I can take the training wheels off and uh we can we can compete with LVM at this point. And so by owning our our
core product dependency or by owning our core product and and not having a dependency, this has enabled us to to unlock things that we could not do before. So, for example, um when you're using our own x86 back end, uh we now have incremental compilation that brings even massive million line code bases down to um 50 milliseconds or less with with changes. You make a change to your code, it's you have a new binary already updated, 50 milliseconds, >> million line codebase. And this is
simply not possible with LVM and but this is something that we can we can do now with our own code. >> Zeke has a strict no LLM no AI policy for issues for pull requests. Why? >> The first reason is just that those kinds of contributions are invariably garbage. Uh people are are sending us contributions that have no value whatsoever. Not not only that they have negative value because they they take review time away from the team which is very limited. We have over 200 pull requests sitting open right now and
those are all waiting for review and we you know we try to be on top of it as much as possible but when you have a small number of people in the dev team and you have a large number of contributors this is always the problem is is this this bottleneck of review time. So when we get these these slop contributions, they take our review time and then after a few reviews, we realize they have no clue what they're doing. They're just pasting what we say back to the chat and then laundering the chat
back to pretend that they're not using chat, but we can still tell. And and then at some point we realize this is never going to be a good quality because they have no idea what they're doing. And so now we wasted everybody's time. all those other people who are waiting patiently, they didn't get a review and the code never gets merged. It's worthless. We like to call it um contributor poker. So, the main point of doing code reviews and having contributions instead of just doing all the work ourselves is
mentorship. The whole point is that a contributor can become a a core team member eventually or they can become a more valuable contributor and this will help the project because we'll have more people who can contribute to Zigg skillfully and it will help their resume because they can be a better systems programmer and they can take those skills elsewhere. The idea of contributor poker is that we have limited time. So we want to notice okay who can we invest our time in to help them become better programmers, better
contributors for the project and who is um maybe we we who is maybe a driveby contributor. They're going to send something. They're going to go away. Less valuable to invest in them. And so people who are using AI, they're always in the second category. It's not worth it to invest in them. They're not learning anything. they're not going to join the core team later. Not not a chance for us. This um this policy just makes sense because the Zigg project, it's also an education project. That's
part of our mission statement is we're providing guidance and education to students. And so we're all trying to learn. We're all trying to get better at programming. And so people who are sending AI poll requests, those people are not helping this goal. Um, and in fact, I think that they're they're detracting from this goal. So, for our project, I think that the no strict no AI policy is it's an appropriate policy. You know, if I tried to say, oh, only good AI PRs can come in. Now, I have to
be the judge of that. Whereas, if it's none whatsoever, then it's a very easy policy to enforce. So, >> by the way, how do you detect AI generated contact? Is it easy? >> It's not always easy. I I'm sure that some have gotten through, some have gotten in. And lately, I think they've been they've been laundering the LLM text. You know, they they don't copy paste it directly because that's way too obvious. So, they try to rewrite it in their own voice or something or they say
try to sound human or something like this. I've reviewed so many pull requests, you know, so at some point I realize this is not what a human does when presented with this feedback. And then I and then I it becomes obvious. But it's it's pretty relentless uh lately. So I think we might need to have a different strategy than um than the current policy which allows anyone to contribute. I think we might need a more um strong filter for getting in and getting the permission to send a contribution. Unfortunately,
Z codebase uses the MIT license. So uh what's that? It's very close to public domain. Um for people unfamiliar with software licenses, it's effectively public domain. >> So like can you give an examples how how it can be used? >> Uh it can be used almost for anything. Um the only restriction that the MIT license makes is that you have to reproduce the license if you are copying the code. uh and you can't hold us accountable for you know problems that no warranty basically
this means anyone like including big companies can use your code to train AI but at the same time like you ban AI from contributing to ZIK how do you feel about this contradiction it's ironic isn't it um personally I have no issue with this uh I I really firmly believe in the no strings attached gift that Zigg is to the world. You know, if someone wants to use Zigg for AI training, great. I don't care. Uh that's fine. The fact that these companies are doing things that I don't
like, I don't like that they're doing it, but it doesn't bother me that they're using Zigg. I think that the more that Zigg is being used, it just shows that Zigg is valuable. That's the way I see it. >> Is it true that LLM struggle with Z code compared to Python or JavaScript? I haven't tried it much myself, but my understanding is that it's actually just fine. So, I know that um Mitchell Hashimoto uh uses AI coding extensively for for Zig with Ghosty. Another person I know
um his screen name is Rocker. He made a tool that makes AI work better for Zigg and he's having success. He's reporting success with Zigg. I've seen some people say it doesn't work well. I've seen some people say it works perfectly fine. >> I recently read your Masteradon post. Um, VIP coding blogs are a snoozefest like reading restaurant reviews instead of watching the chef cook. What do you mean? And what's your opinion on wife coding? >> I I I love computers and I love learning
about what people are doing with them. And there's a a sense of mystery and magic that you can get from reading someone's explanation of a project that they did that took them a very long time and they had to learn lessons and they had to increase their skill as a programmer and as a user of computers in order to accomplish this goal. And when you read a blog post like this uh it's it's brilliant. It it captures the imagination. It makes you think about what you could do yourself. It teaches
you something. it connects you to them emotionally. But I mean on the other hand, we're seeing people say, "Oh, I tried this version of Claude or that version of OpenAI and sometime it works surprisingly well." I'm always hearing people say that that AI code works surprisingly well. But to me, this is not the bar that I want to hold software to. The bar that I want to hold software to is uncompromising perfection. you know, I don't I don't want to be surprised by the absence of a bug.
That's a horrible quality bar to to believe in. So, I mean, it's just so many people saying, "I don't know. I I I tried coding this app and it kind of works." Okay. You know, uh it's just so uninspiring. >> But, uh have you tried VIP coding yourself? I I did a call I did a private call with uh with Richard Feldman, a friend of mine, and he showed me how to use um vibe coding with uh with Zed, and I tried it out. And um I thought that I think that the technology is
fundamentally interesting. What really turns me off is the fact that it's centrally controlled by I don't know, four companies and they have total control over over what it's doing. They have total control over the models. I mean, it's I'm not going to go from using my own computer and my own electricity uh to to do my code in order to use closed source programming on someone else's computer through the network. This is a that I have to pay for monthly. I mean, some people are paying $300 a month for this.
Uh to me this is an insane proposition. I I would never want to give up what I have in order to get the results of Genai >> in general. How do you feel about the future of programming? Like in 10 20 years will humans still write code? >> People will never stop writing code because writing code is really fun. You know it will always be at the very least a hobby. And I will say on my phone, the apps that I use and on my computer, the apps that I use, the very best ones are the ones that were made by people in
their free time for a hobby. The ones that are made by companies that I have to use because of whatever reason, I feel like I have a hostile relationship with these apps. They're always trying to get me to buy stuff or advertise to me or coersse me into doing some kind of engagement metric that they've decided that they care about. But whenever I use an app that was made by someone as a hobby, uh it respects me. It it it treats me as the boss of the computer. And that's the relationship I want to
have with my software. And so that will never go away. People will always want to make software for a hobby. People will always want to make free and open source software. People will always want to have the relationship with their devices where they're the boss. That will never go away. No matter how much these these companies will try to become the bosses of our own hardware. >> Yeah. So, you've mentioned those projects like you often criticize blowed software like what are top three
software projects that you actually admire? Like what makes them great? >> Well, number one would have to be Linux. Uh it's maybe hard to imagine a world in which we didn't have it but it would be you know a world a world with only proprietary operating systems would be significantly worse I think than the one in which we get to enjoy Linux and I think we can all agree that Linux has been not only incredible for um for free and open source software developers but it has also um been a boon for for just
economy you know just uh countries around the world businesses around the world being able to build their businesses on Linux for free is really good for the economy. So whether however you want to look at it um from you know from a hippie perspective or a fiscally conservative perspective it's really good you know. Next I would say Blender. So, Blender, I really respect Blender because it's used professionally and it's an open source project where it's competing with companies that have a lot of money, a
lot of software development um labor to spend on the problem and it's winning and it's open- source software. That's brilliant and it's also a nonprofit. Uh and the third one would be VC. uh VC, another nonprofit organization. I think that um if I if I remember correctly, the president is still JB. I met him in person uh in Paris and I'm I think that that is a really well-run nonprofit. Earlier on, when I was just out of college, I contributed to FFmpeg, which VC uses as a dependency. and the VC
organization paid for the travel to go to videoand dev days for anyone who had contributed to VC or any of the libraries it used. And so I got I was this kid and I got to go to uh Dublin and Paris for uh Videoland Dev Days on that nonprofit organization's dime. And that that was a an incredible experience that I got to have there. And I was really impressed with how um with how JB handled the organization. And I mean who doesn't love VC, right? Everyone loves VC. I used to teach Blender to kids many
years ago. Uh of course I'm using VC and also our showrunner noticed that you use uh the Firefox browser on your streams. Like I use it too, but she was very surprised. Why Firefox? I'm a little concerned with how l how few browser diversity there is. So after Microsoft killed Internet Explorer, uh I mean good riddance I guess, but now there's only Chromium, Safari, and Firefox left. And Chromium has like the vast majority of the market share. And I think that that's a problem for the web.
I think that I mean we I think it's a pretty uncontroversial thing to say that in general monopolies are bad and having a monopoly on the web browser would be worse for users than if there was healthy competition. So originally I just picked Firefox because it was the underdog. It's a nonprofit and that's uh I know that as a user that's my contribution to trying to not be part of the Chromium monopoly. But I have to say that lately I've been not very happy with Mozilla. uh even though it's a
nonprofit, I think it's an example of one that uh has a lot of corruption and their alignment is not with their users. It feels like to me that's an area where I feel really frustrated because there is not really an alternative. Chromium is Google, Safari is Apple, and then we have Firefox, which seems to be in a tail spin. So, I don't know. I don't know what to do about this. There's some new browser projects being made, but uh you know until those come to fruition, I don't I
don't know what to do. >> Andrew, Zeke is sometimes positioned as a C replacement, but uh C is everywhere. Linux kernel, embedded system, 7 million of developers. Uh what makes Zeke better than C? Zig is better than C because ZIG does not give up any of the power that C offers. while improving the flaws and the weaknesses that C has. The other attempts to replace C always give up something that C has. So I think a good example of this would be Go. Um the Go programming language is really nice for
writing um server software. It has you know HTTP in the standard library, that sort of thing. But there is a whole class of tasks that you can never use Go for that you can use C for. So it's a trade-off. you had to give up something to get those nice things with go for example so that's why go is not a C replacement um with Zigg you have not given up anything anything that C can do Zig can do and it can do it better and it can do it with less foot guns and it can do it in a way that's more debugable if you run into a
problem um in a in a way Zigg embraces C more than C embraces C only has optimized integers for signed integers and C only has wraparound uh semantics for unsigned integers. In zig you can have whichever one you want. You can have um you can have wraparound unsigned or unsigned and you can have promise no overflow unsigned or unsigned. This is just a glaring missing feature from C. It's a lack of power that C has. So Zigg is actually offering you arguably it's being more seike than C is if that makes sense. But uh is it
even possible to replace C? >> In order to replace C, you have to you have to be C at its own game. You have to offer people a way to write code that is reusable everywhere. So code that can run in an operating system kernel, code that can run on embedded devices, code that can run in video games, code that can run in web assembly. This is this is why C sticks around. If we provide these features um and we become as stable as C then people will make the right choice. They will choose what works better. They will
choose what is better performance leads to fewer bugs but they will never give up what C has. And so that's why I think that Zigg will succeed in replacing C because we did not give up anything that C has. >> How Zeke is different from Rust. >> The core feature that's different from Zig and Rust is the type system. So, Zigg is a simpler language than Rust in the sense that the type system does not have a um it does not have a meta language that describes what types are allowed to pass to which functions. So
in Rust uh you when you have a function and you take a parameter you have to say okay this parameter supports cloning or it supports this interface or that interface and you have to describe in entirety the rules about what you can pass to this function. Zig does not have any of this machinery. So in Zigg you have to pass a concrete type or you have to pass a generic type like templates. they work like templates in C++ in the sense that the code will get substituted with what you pass in. So that is a
that's a trade-off. So with the Rust code, you're going to have more guarantees about the type system and with the zig code, you're going to have more simplicity in in the code that you're reading. But beyond that, there's some deeper differences in Rust and Zigg. So I think one would be around memory management. So with Rust, Rust is leading you down a very similar memory management style with C++. So this people like to say R AI and what that basically means is that you have
objects. Those objects have links to other objects and these are all reference counted and when the references go back to zero then things are deconstructed. And in Rust this happens automatically um just like in C++ how destructures are run. And that's how you kind of have to manage memory in Rust. That's what the language will lead you towards doing. That's what you will not be fighting an uphill battle if you if you were doing it. In Zigg, allocators are much more explicit. So we can use we can do this
kind of um reference counting style, but it will require uh writing this reference counting code explicitly. In reality, what we end up doing usually is a more tailored memory allocation style towards the application. Maybe we use an arena allocator to group these allocations all together and then toss them all at once. Very common in Zigg. Sometimes we use a general purpose allocator for this more object-oriented approach. And you can even come up with with other kind of mixes of different ways of doing
it for very specific applications. But this more um focus on optimizing your memory layout I feel is more of a Zigg uh programming language feature than it is in in Rust. And Rust you are more you're more tied to this objectoriented um lifetime strategy if that makes sense. >> That's uh that's about language features but what about maybe technological domains? When would you choose Zigg over Rust? you would choose Zig over Rust if you want to have more control over exactly what your code is doing. In
Rust, you're going to try to make your source code match the the Rust way of of organizing modeling reality. Uh you're going to try to make the biochecker happy. You're going to try to create um traits that satisfy your constraints. And you're going to try to satisfy the type theory of everything. In Zigg, you're going to think about what do I want the CPU to do? And then you're going to write the code that makes it do that thing. And so if you have this latter mentality, then Zigg
will be a more natural fit for programming than Rust. >> What's uh Zigg's killer feature and why? >> The killer feature is the tool chain. When you use Zigg, you're using a software suite that has no dependencies on the system. So it will work on any operating system that you choose. and you will be able to target your code for any operating system that you choose. So you have you have independence from the system that you're running on. So one thing that I that I like to focus on as
a measure of how easy is it to hack on a project is it's the readme check. So the the steps steps to contribute in the readme. What do I have to do? Do I have to install a bunch of packages from my system? Is it different depending on which operating system I'm on? How many commands do I need to run in order to get an environment? Do I need Docker? Do I need um to have specific hardware or something? And for me, the gold standard is one line, one dependency, and it always works for everybody, no matter
what computer they're on. And so when you use Zigg, when you use the Zigg tool chain, we have accomplished this. You can if you look at a Zigg project the in the readme it should say steps to compile steps to build from source zig build that's it and and that is what the zig tool chain offers projects is that all the contributors will need to do is zig build and it will always work >> many people argue that zig is unnecessarily strict with uh unused variables like why why are they treated
as compilation errors >> that This is an opinion that tends to flip the moment that the person has to refactor a large a large amount of code because the bottom line is that it saves time. That that error actually saves time because it catches bugs and those bugs take a long time to find and it does not take a long time to to add your annotations to discard the variables. And the and the thing is that um thanks to to editor support to um specifically thank you to the ZLS team for implementing this. You can enable a
setting in your in your editor to have your preference to have these annotations added automatically. So an annotation I mean it will just discard the variable if it's unused and then take away the discard if you use it again. And you may think well what's the point of this? You're just getting rid of the error. But the point is that now you can have two people who are collaborating on the same code and they both can have their preference made because the person who wants the errors,
they can uncheck the setting in the ID. The person who thinks that they're annoying can check the setting in the IDE. Now this person doesn't have to care about um getting the errors. This person does get to get the errors and they can both edit the same code. And in in the source control, the annotations are always present. So everybody wins. And the bug and then it just saves so much time when you don't have to solve these bugs from from this error. >> Some developers struggle with the new IO
interface. Is it too complex or just different? >> I do think that I found an optimum here. So the purpose of IO streams is abstraction. The purpose of it is to write code once. Uh maybe you are writing an image loading library. You're writing code that will serialize to a data format. You're writing code that is supposed to be reusable. And so to do that you want to take a parameter which is either a reader because you're consuming data or a writer because you are um outputting data and you want to
write this code that can that will be independently you can put it into a package and use it in this application that application and this logic can be unchanged. That's the point. The problem when you do this is you you might throw away performance because if you if you have your um if you have your reading and your writing um underneath this abstraction layer, it can be hard for the compiler to perceive that logic and and do these optimizations. So I found this optimum where this interface
has the buffer in the interface and that helps the compiler to make good code while still allowing the user to achieve the main goal of reusability. I think that it is simple to use the interface but there is a complexity in implementing the interface. That's what I think is more difficult. Um, however, I would argue that that complexity is not accidental. That complexity is the natural consequence of of finding this optimum of both um performance and reusability. And that just means that this is what the implementation has to
look like. So I would make it simpler if I could, but this is the way that we write reusable code that will make the computer do what you want it to do. And that's that that is our order of priorities. in Zigg. >> So, Zigg has a lot of unique features. What's the best way to learn Zigg? >> I would highly recommend for new users to pick up Zigglings. And I want to really thank um Dave Gower for creating the project and drawing the really cute picture in the readme. Uh as well as um
Chris Bosch for dutifully maintaining it. Um that project has been consistently popular with new users. It has a series of exercises where you have almost working code but there's a problem and then you have to try to fix the broken program in order to learn a new language feature and over the course of doing these exercises you you learn the entire language. So I would highly recommend for beginners to pick that up. >> If you know C is it easy to move to ZIK or is it a completely different mindset?
I think that in C to Zigg is a particularly smooth transition. There's everything you can do in C, you can do in Zigg and it and with fewer foot guns along the way. Um, just a simple example is if you get a segmentation fault in C. Uh, typically you will see no output other than segmentation fault. You know, good luck. Hopefully you know how to use a debugger. uh if the same thing happens in Zigg, you will get a full stack trace uh pointing to each line of code where you're where you were when this when
this happened. But you can do the same thing as you can do in C. So when C people come to Zigg u they find that all of their skills transfer over perfectly and then they find that all of the sudden uh they make fewer mistakes, debugging is easier, their productivity skyrockets. So that is a very particularly smooth transition I think. >> But uh there is a big debate in forums. Should someone learn Zeke as their first programming language? >> So what do you think about that? >> I think that that really depends on the
person and you know some people they have a functional mindset. They really want to learn lisp first or something like this. Um I do think that Zigg is a nice language to learn. If you are trying to learn how computers work, you will learn about CPUs. You will learn about memory and any skills that you pick up in Zigg, they will transfer to other programming languages. You're not learning how, you know, Zig does not have a borrow checker or something like this. You're not learning you're not learning Zigg rules, you're
learning computer rules. And so that information will be valuable to beginners even if they give up and decide to go to a higher level language. What's your personal setup for writing Zeke? Like what tools do you use? >> Well, because I make breaking changes a lot or because at least I used to. Um I don't have a very high-tech solution. It's just the terminal and Vim and because Vim is very resilient. You know, if I change the syntax of the language, I can still edit the code. some of these
other advanced things, you know, like tree sitter or or or something else, they require a stable syntax tree or a stable language and things kind of will break or or language server, for example. Things will just kind of break if you well if you break it. So, I needed a I need a setup that is resilient towards these things. Um, but I have to give a shout out to the ZLS team because um they've really done a good job filling a gap where where people need this language server and it's not something that we provide yet.
ZLS in simple terms, what is it? >> ZLS stands for Zigg language server. It is an implementation of the language server protocol for Zigg. That is a thirdparty project that's not done that's not run by the Zig software foundation. So those contributors are doing all that work. um of their own valition and if you enjoy their work then I would I would suggest to visit their homepage and consider making a donation or something like this. >> Zig's website also recommends some Jet
Brains products. Have you used them yourself? >> I have never used the Jet Brains product because it's closed source. >> What's missing in Zeke ID support today? What do you wish tools like Jet Brain Cine or VS Code did better? >> Back in the day, I saw the high level refactoring tools that things like um Jet Brains or Eclipse can do with Java. Uh things like extract to function or reordering function parameters or globally renaming something. um just these things that can take a lot of time
to do by hand but the computer can do perfectly and instantly with type information and syntax information. I thought that was really nice and that is something that I eventually want to add to my workflow personally instead of using you know vim macros or said or something like this. I would also imagine even a more sophisticated refactoring tool almost like a a query language for making what big changes across based on type information and and other other cues where you can where you can make you know 10,000 line diffs that
you're confident are correct because all of the changes verified that the type matched a certain type or something like this. Eventually I dream of these these like these productivity features. >> One could say that AI agent can solve it for you >> but then I have to review it. If if I let's say that my task is rename a variable. Okay. And if I use a tool to rename a variable and I know that that tool will work. I can then do that make a commit and never look at the commit. I
don't need to review that. I know exactly what that did. I have a 100% confidence that it's correct. If I ask the AI tool, rename the variable, I still have to review the code. That's worse. That's that will take so much longer than the other change. You know, >> your other belief fell benevolent dictator for life. Can you explain what it is? >> Yeah, you know, it's funny. Every time I uh jaywalk in front of a bus, I think about this. In software projects, uh you
kind of have to choose between having a hierarchical control uh or having some kind of democratic process. A lot of projects choose hierarchical control because it's simpler. So you don't have people struggling for power or you don't have to try to build consensus on changes through some kind of voting system. You know, as as we know, um democracy is difficult. uh and so um a lot of projects will choose uh BDFL style for for simplicity if nothing else and that is the default style that a
project has when only one person is the maintainer. So um unless you try to introduce a more democratic process into a project then BDFL is what you will get by default. Why is one dictator better for language design than the committee like in C++? >> The trade-off here is if you have one person in control, then that person has the responsibility to try to understand everything and have a coherent vision for the project. When you have a committee, sometimes you can have the problem where many different
people have disagreeing visions for the project. And these disagreements are valid. This person has a valid use case. This person has a valid use case. But there is not a single way to do the project that will support both of these use cases. They're at odds. And so if you compromise, then you end up with a worse product than if one of those persons lost and one of those persons won. And with a committee or with a more democratic process, we try to find these compromises more because we try to
cooperate. You know, we want to be nice to each other. We want to help each other. That is what the process leads to is is compromise. And while I think that that has social benefits, it also has the trade-off of lacking the coherent vision for the software project. Don't you feel this model has a risk? Zig, today is you. What happens if you leave tomorrow? >> Software engineering wise, I think we'll be fine because um my my colleagues are are very talented and they're very capable of of carrying on the operation.
However, from a political perspective, from from a organizational perspective of the Zig Software Foundation, I think that my work is not yet done because if I were not doing BDFL style, then the project would suffer from I if you will oxidation from from being in contact with money. You know, whenever money flows through a system, the system becomes corrupted. and having a strong hierarchical leadership as long as the person in charge wants to resist those influences then that will happen but when you try to set
up a democratic process the money corrupts it but I don't think that a strong leader controlling everything is sustainable um at some point I want to retire at some point I want to do something else and um you know we've all we've all seen European history where monarchies are fine under a good leader but and their offspring is a a bad leader and then everything goes to Um, and so it's not sustainable. You need a you need a democracy for long-term sustainability and then the challenge is setting that up so that it
does not get corrupted over time with the influence of money. >> You've been working on Zeke like for over 10 years. Like what motivates you to keep going? >> I love my job. Uh I I wake up every day excited to work on Zigg. Um to me it's almost uh it's kind of dorky, but Zigg project is kind of a a shrine to computers, you know? I uh I love them. I love computers, and I I want computers to serve people. Zigg is is is my optimistic gift to the world that uh that a great programming language and
tool chain will lead to this outcome. And I'm putting my faith in my my fellow humanity to use this tool to to to do this this task. I love it. I think that it's like very satisfying to um to please users and to make software that creates this compelling user experience. Um, it's like a performance, you know, the same thing a musician, the same feeling a musician will get from performing on stage, I I will get for making great software for users. >> What is the hardest part of this
process? >> Taxes. Mostly kidding. Uh, but the paperwork of running the nonprofit. Yeah. And yeah, running the nonprofit, it's completely necessary to, you know, to be legally above board and to accept larger donations and like obviously this must be done. someone has to do it. And right now that someone is me and it's just, you know, nobody likes paperwork. Some days I hold my nose and do the, you know, do the accounting work and some days I get to do programming and those are the good days.
And when it comes to actually coding, are there hard parts there? >> Sometimes um it takes a long time to update code when when making changes. So for example uh earlier we talked about um IO reader IO writer changes that came out in 0.15. Um initially working on these interfaces was very satisfying because I solved a problem. I found an optimum. I came up with an API. I tested it. I got it working. I found a a novel solution to the problem space compared to other programming languages. Great. Then I
spent the next six months um fixing the standard library and projects in the ecosystem and updating the code to rewriting code that was working before now to use these new interfaces. In other words, like taking on the same suffering that I was inflicting upon my users, I also had to suffer uh you know in the standard library and that sort of thing. And that was a slo that took a long time and some days it was I had to rally the willpower to continue. Um but I got through it and so we we got to we
got to where we are today. But sometimes these these big changes they do require um they do require willpower and determination to get them finished. >> Yeah. Have you ever experienced a burnout as a programmer or as a leader? >> I think that burnout happens when you're putting in a lot of efforts but you're not seeing a lot of rewards for this effort. And I think that I'm largely protected from burnout because while I am putting in a large amount of efforts, I am seeing rewards. I do see happy
users. I do get to, you know, make a release of Zigg and and look at all the release notes that I just wrote up and see all the improvements that we made. Sometimes the reward is delayed like when I was doing this big change to IO and it took you know many months to update the code that starts to feel a little bit like burnout because the reward does not come for many months but eventually it comes and I feel better, you know. So to the large to to a large degree I think that I I have not experienced burnout because
I do derive a large amount of satisfaction from my job. >> Do you have any advice to those who struggle with that? Maybe if you mentor something is it a topic to discuss with them. >> Okay. So the first thing I would say would be don't forget to exercise and get good sleep you know and eat healthy. These things uh compound uh so just check those boxes and maybe that will solve the problem. Okay, but now let's move on in the flowchart. I think that a lot of people's jobs are unsatisfying.
If you don't like what you have to do, if you think that what your company is doing is not valuable for the world and then you have to work hard, that's a recipe for burnout. And so you have two choices in that situation. You can do the hard work of finding uh a different job or trying to do entrepreneurship, you know, create your own job, which will be a lot of work, or you can slack off and and stop trying at the company that you work at. We don't want to believe that that's a good solution to
the problem. I think if you have the motivation and energy and drive, the first one is better. Uh but I mean if you if you work for a soulless corporation then stop trying you know uh go home at 5:00 p.m. and uh do something else. Don't try so hard. That would be my advice for people who feel burnt out. >> What brings you joy outside of programming? >> When I finally quit working as an employee for my career, but at the time it was for OkayCid. Um, I went from moonlighting Zigg, working on nights and
weekends, uh, which was very stressful to now it's my main job and now I have this like free time. That was a really beautiful turning point in my life because I got to have hobbies again. So, um, the first thing I did after that was run a marathon. I've done one exactly in my life. I think that's enough for me. >> Is is it possible to quit doing marathons? I still run. I I I have to agree with you. Yeah, I think I will try to run another one because I did finish, but I walked the
part of it at the end and I feel like I want to run the whole way. So, maybe I will try another one. I also remember um I you know I I got to mile 21. I hit that wall really hard and started walking and then a man ran past me. must have been 70 years old. And I thought to myself, how how do how are you doing this right now? How am I? And I still I even when I saw this man pass me, I couldn't run. I still walked. I still think about that to this day. >> That's a lot of motivation. I believe.
Yes. So maybe I'll try again. Um marathon. But >> I also read somewhere that you are learning Japanese, right? Yes. Why? It's hard. It's very hard to learn Japanese and I'm United States born and raised. So, I only know English and I always wanted to know a different language just to be, you know, part of the world. Uh, and so I I picked Japanese and I I've always loved animation. I like the challenge of learning Japanese and I think the culture is like very interesting. And I have to say, um,
yeah, shout outs to my, uh, my tutor, uh, Yuko. Uh, she's a very, very nice teacher who I found recently in in Portland, Oregon. Because it's so difficult to learn Japanese, I've sometimes suffered from a little burnout trying to learn. U, but after I found Yuko, Yuko Sensei, um, my motivation has picked up and, um, I I feel like motivated to keep studying every day. So, I wanted to say thank you to her. >> How many hours per day? >> Maybe one every day. >> What does success look like for Zeke?
I think there's two answers to this. So, in one sense, you could say uh it's already been achieved because we have a diverse income stream. So, we have financial independence from any any single entity. Uh we already have users who are happy and who continue to use Zigg. Uh we're already uh working on on improving it. um you know every year we have about two releases and so this is nice this is sustainable like we don't have to change um course like the course is good already from one sense that's
already done from another sense I do think that I do I would like to see more adoption one measurement of success would be adoption on the level of go and rust >> when you say adoption is it important for you to have commercial adoption or it doesn't matter. >> Commercial adoption is useful because we can get money from uh from corporate donations. We have to be careful to keep those um you know diverse uh but it's still very useful. So I would I would not ignore this use case and also to
make something that's generally useful. It will certainly be useful for corporations and we can see this reflected in in how many companies are or how many people are using ZigG for AI right now. You know, if you make something useful, people will use it. So that's good. You know, I even if I find someone's vibecoded project personally to be boring, I do think that it would be a sign of a useful programming language that people are doing what's popular with it today. >> If you could go back to 2015, would you
still start Zigg? >> Absolutely. The day that I quit OkayCid and started to work on Zigg full-time was the best day of my life as far as the trajectory of where it went. I'm I'm so happy that I did it and it's just given me a profound sense of uh fulfillment and independence and and just like a value of myself, of how I see myself and contributions to society. I I think that I think that I'm basically unemployable and I got lucky through my career that no one found out and I I just I needed to be my own boss
in order to be happy. And so once I was able to do that then I achieved happiness. Now I am happy.