Zig is at a crossroads
498 segments
You know, this is a little bit different
of a video at this point.
I hope you're ready for a bit of a
yapstorm today because we got something
that originally I just wasn't going to
talk about. You know, I just didn't want
to talk about it. I didn't want to take
your time. I just I just couldn't do it.
But it just has been eating at me and
it's just been building in me like some
sort of just yap geton that's going to
come out and now it's going to come out.
So, our story starts right here. Bun,
the beloved JavaScript command line
utility that's written in Zigg, very
popular programming language, dropped
this little tweet that said, "Hey, in
Bun's Zigg fork," and you're like,
"Well, wait, wait a second. Bun has
forked Zigg. Wait, what?" They made a
small change that apparently makes debug
building up to 4x faster, improving
internal development velocity. And then
they give this a nice example right here
where you can see a bunch of what
appears to be parallel builds all going
at the exact same time. Now, you're
probably thinking, "What the hell? What
what's the controversy? Is it because
bun
for to zigg? Is that is that what we're
talking about?" No, that's that's not
it. That's not it at all. For those that
don't know, Zigg is actually quite the
popular programming language. As you can
see right here, Mitchell Hashimoto,
writer of Ghosty, yes, Ghosty is also
written in Zigg, has some high praises
for the language. And the language
itself was actually written in uh late
2015 early 2016 with the description of
it being my goal is to create a new
programming language that is more
pragmatic than C. This is like trying to
be more evil than the devil himself. Not
my words. Kind of funny. A good way to
describe your language. You just wanted
a more pragmatic C. Also, that's evil.
That's evil to do. All right. So, before
we get into the controversy and honestly
my five conclusions that I'm going to
draw from this, yes, like I said, this
is a lot of yapping that's going to
happen today. First, the bag. Kamish,
you got to listen to me.
>> Oh, no. Not one more comment from you.
I'm done rebasing your mistakes. You're
on junior CSS duty until further notice.
>> Commish, you can't do this to me.
>> Keep talking and you'll be doing store
procedures for a month now. Get out of
here. Take him with you.
Fun fact, CSS is actually touring
complete.
>> Larry, Gary, Tango, Mary, I'm just
pulling your request. It looks good to
me. You're clear to ship.
>> Thanks.
>> You're welcome. Next.
It's an awfully big PR
>> for an intern.
>> Well, I just bumped some dependencies.
It's nothing major.
>> Hey, can I get a quick stamp on this?
>> Yeah, don't worry about it.
>> Quick approval.
>> Oh, not on my watch. I'm on your disc
like a peas on slur. Not this again.
It's literally just a hex code change.
Just to prove it. Just to prove it.
Squish. Perf resisting review. Oh, I
know you're the dippler. I've seen vibe
coding, but that ain't it.
>> MERGE COP. NO,
>> MERGE COP.
>> I hate merge cop. He always makes
reviewing take forever. We have code
rabbit. Oh, come on. I wasn't even
merging the prod. It was a hex code
change. We have code rabbit. We don't
need real people reviewing such simple
changes. Code rabbit can do it for us.
Our engineers time is better spent
solving problems for customers. You can
try it too at code rabbit.ai. Next week
on Merge Cop.
>> Now my plan to merge a dip so big.
You're the dipler and I always knew it.
>> Okay, so what is the actual controversy
that's going on here? By the way, I love
saying controversy ever since I saw some
BR LITTLE SPOT BRUSH say their funny
words. They're funny English words and
one of them was controversy. Now I just
love saying it that way. Anyways, so if
you look at the tweet and you go all the
way down to the third one, it says this.
We do not currently plan to upstream
this as Zig has a strict ban on LL
authored contributions. And if you go
over and you do check out the code of
conduct and the first thing you'll
notice is that right away there's an IRC
channel. Okay, little strange that
there's an IRC channel, a language in
the year 2026 is still organizing and
strategizing on IRC. It's really a true
I mean they are truly trying to be a
more pragmatic se absolutely
Chad behavior. And if you scroll down,
just a hint, you'll see right away
strict no LLM and no AI policy, no LLM
for issues, no LLMs for poll requests.
Now, of course, what does this mean? I
think this is a big point of contention.
Does that mean you cannot generate any
code by it? Uh, but anyways, or no LLMs
for comments on the bug tracker,
including translations. English is
encouraged, but not required. You are
welcome to post your own native language
and rely on others to have their own
translation tools of choice to interpret
your words. By the way, I'm just
throwing this out there. That just
sounds like a giant pain in the ass. I
mean,
I mean, LLMs are just generally pretty
dang good at at translating. It's just
like, "No, you use an LLM, not not me."
And of course, this led to exactly what
you would expect it to lead to. Well,
screw Zig. They won't last long blocking
LLMs. Zig is going to get left behind.
Like, what what do we What What is Zig
getting left behind even mean? Like
where's it? Where's it going to go? It
can't get left by. It's a language,
people. And of course, some people are
actually happy about this, bro. They're
competing with C, not JavaScript for
sake. Makes me want to learn Zigg
more. Anyways, classic Twitter
arguments. They're all just so focused
on the exact thing that is the problem
instead of actually looking at what is
the implications of all this. What is
actually going to happen? Because
there's actually quite a bit to think
about if you have this kind of
divergence that's starting to happen
because you do have anthropic. They can
literally spend infinity tokens using
claude mythos, the most dangerous model
ever created. It's so dangerous that
Daario has decided that you could never
even look at it. Like even just looking
at it is like looking into the eyes of
Medusa. You're going to be turned to
stone and immediately start hacking the
NSA. Okay, so let me get to effectively
my the many points that I have about
kind of this weirdness that we're about
to see. The first thing obviously is
like I want features faster. Zigg has
been in development for 10 years. It's
still not at a major version. It's still
unstable release after release in the
minor versions. Still break a whole
bunch of stuff and things change. So
yeah, I can see why people would like a
little bit more velocity. And I think a
lot of people these days when they look
at velocity in its most kind of
rudimentary sense, they look at an LLM.
They're like, "Dude, why would you write
code when you could just say it in
English, the Lord's programming
language?" But I kind of want to push
back against that a little bit. Like
even though I think I'd personally
benefit seeing Zigg in a more kind of
concrete uh stable position, in fact, I
would start using Zig again in a more
realistic fashion if that was the case.
Uh but I I do want to push back a little
bit in kind of that line of thinking. If
you just even look at one of their
latest features, their new Async kind of
release of how they're handling async,
it's really really well done and it took
multiple years to actually get into that
position. Now, is it a good thing that
they took so much time to get async
await effectively in Zigg? Well, some
people could say, hey, they should have
been able to do it faster, but the way
they did it was done so well that I
think it's actually okay that they took
that time. There is a bit of beauty in
slowing down and not trying to be the
first person done, but actually being
the person that does it the correct way.
A second, I think the big controversy
here is that Bun forked a Zigg and did
not call it ZG. I I genuinely, if you're
going to fork Zigg and you're going to
diverge and you do not call it ZG, it is
truly a crime against humanity. We
better have Zigg and ZG. Just say I mean
that's a more iconic D duo than BBop and
Rock Steady. I would be genuinely upset
if this does not happen. It really just
goes to show that Daario doesn't like
humor also apparently. Okay, I expect
it. I expect it next time or I'm judging
I'm judging anthropic heavily here.
Okay, but a more important question is
how do you even how do you enforce this
in all reality? How do you enforce this?
What happen if I'm a contributor and I
just start using a little bit of tab
autocomplete? Well, that my friends is
an LLM. you know, that right there could
be an LLM. And even though I'm hand
coding effectively most of it, I could
be using an LLM. How do you know that
I'm not using an LLM? I mean, I get it
that some people out there, they have
very magical and mystical prompts that
they like to put out there. And it's
very obvious when the slop canineer
comes in with his slop trebuche just
unloading code and being like, "What?
What?" Like, "What? Why? Why are you
upset? I just added 10,000 lines of
code. This is good. This is good for
you. You should love this, brother.
Nobody loves this. This This doesn't
even work. Okay, this whole thing,
virtually none of it actually works or
really changes anything. And so, this
does kind of lead to an interesting
point. If more people were to get in,
you know, kind of excited about Zigg. I
understand that they're building this
like mentality and this is totally okay,
right? You're totally okay saying, "Hey,
we want to create a culture where you
don't use LLMs." I think you should be
able to do that. I don't understand why
people get so angry at other people for
doing it and then they point to a
singular bug or a singular feature such
as this one right here. Uh this compile
at, you know, this super cool, hey, I'm
going to compile everything much much
faster. They look at this and they're
just like, oh yeah, screw this team. Oh,
they're going to die without just like,
well, first off, they got here by the
decisions they've made, so obviously
there must be some level of wisdom in
what they've done. Bun has enjoyed what
they've been building and doing and so
they're like, "Okay, actually no, no,
wait a second. This could be kind of
neat." And so it's kind of silly to that
these people just come out and just rag
so hard. Like you didn't build the
language. You don't know what it takes.
It took 10 years to get to where they
are today through very careful
decision-making. I don't know. But we're
entering into a weird world where things
like this, this little MIT license
that's currently on Zigg, maybe these
are some of the things that might change
at some point. Maybe this becomes less
and less of appealing kind of license to
have because this kind of behavior by
big companies with billions of dollars
and infinite tokens are going to try to
give you a run for whatever kind of
creative stuff that you've done. And it
also just feels really weird because
Andrew has spent the last 10 years
building this product on a pretty like
meager salary. If you look into some of
his blog posts over here, you can see
right here he says like, "Why am I
donating $150 a month or 10% of my
income to this library?" And it just
feels weird. Like there is just
something kind of weird about a big
corporation stepping in saying, "Hey, we
don't like how you guys do it, so we're
going to do it our way." But also,
that's MIT license. Like that's that's
why you don't use it if you don't want
that to happen because it's fully within
the big corporation's right to do that.
Like that's the whole point of this
license. There's also just something I
don't like about anthropic. Okay, I I
just haven't liked them. They just seem
so adversarial to engineers. They just
seem so adversarial to pretty much
everybody that's not anthropic. They
have their own little internal circle
jerk where they're just like, "The AI is
absolutely alive. We are absolutely
shephering into the future. This is the
most dangerous thing ever. It's probably
going to kill everybody. Also, we're
going to create and make trillions of
dollars because we're the only people
that are safe." They're just like the
weirdest group of people. And so for
some odd reason, when I see them make a
fork of an MIT project, it just somehow
feels greasier. And I don't really know
how to say it because it is MIT at the
end of the day, but but at the same
time, it just it somehow feels like
they're stealing. And I'm not really
sure how to express that other than I
just don't like it. It doesn't it
doesn't feel good. Something feels wrong
about it. And yes, currently it's just a
simple single feature kind of fork. So
maybe that's all it ever ends up being.
And then it's just like, okay, whatever.
It was just a simple single fork. Or
maybe they continue to keep on doing it
and then at some point it has to become
a hard fork once you add enough
features. I don't know. There's just
something that bothers me, but I don't
really know why. I can't really put my
finger on it. And that's part of the
reason why I wasn't going to make this
video because I don't really have like a
concrete takeaway other than yeah, I
don't like it. I don't really like how
Anthropic deals with the public and how
they think of software engineers and it
just bothers me more that they're
forking MIT Goodwill projects. It just
bothers me. A lot of questions. Hey, I'm
just saying lots of weird questions.
We've never really been in this kind of
area before and I don't really know what
to make of it. If you got an answer for
me, you got to let me know. Okay. Also,
I know that was just a lot of yapping.
Okay. This was a lot of yapping. I just
I just felt like I had a bunch of things
to say cuz this last year has just been
so weird in software development and
this kind of problem has started to kind
of poke up multiple times now. I don't
even know what to make of it. The name
is the sloppen. All right, so it turns
out that after I recorded this video
that Zigg did actually respond and gave
their thoughts which are super
compelling and I'm traveling so I'm
going to record the end of this video
from my hotel bed. Wow. All right, so
the response from Zigg is actually
really amazing. And so it starts off
with AI is entirely besides the point
here. The changes in this Zigg fork are
not desirable to upstream for several
reasons. So it turns out that parallel
semantic analysis has actually been uh
as an issue and they've been kind of
thinking about it for quite some time
now and they already have a mostly
working version of this exact same
thing. Now this is what they say about
it. The rewritten type resolution
semantics were designed to avoid these
issues. These issues being that if you
do parallel semantic analysis, sometimes
depending on the order of types, you can
actually get errors that should not
exist if everything was parsed
correctly. But Bun's Zigg fork does not
incorporate the changes and has not
otherwise solved the design problems,
which means their parallelized semantic
analysis implementation will exhibit
non-deterministic behavior. That's
pretty much a non-starter for most
serious developers. You don't want your
compilation to randomly fail with
nonsense error 30% of the time. And I
think we all pretty much agree to that.
That would be wild. I'm not even exactly
sure. There's no amount of compilation
speed up that I would take in which
exhibit some sort of nondeterminism. I
guess I mean to be fair if I could
compile it in a half of a second versus
1 hour, then yeah, obviously I'd rather
roll the dice three times to make sure
it actually compiles. But okay, besides
the point. To put it more simply, we are
going to make these change enhancements,
but hacking them in for a flashy
headline isn't a good outcome for our
users. Instead, we're approaching the
problem with the care it deserves, so
that when we ultimately ship it, we
don't cause regressions. Now, again,
this is what I've been talking about
with Zigg. This is why Zigg has remained
such a good language is that every
single time there's a problem, they
think about it and they approach it and
they take great care to do the right
thing every time. It's truly impressive
what they have built so far. So, I'm
completely not surprised that when you
just simply throw something through
Claudia and Claudia is just like, "Dude,
that's such a good question. You're so
insightful and these ideas you have are
brand new. My gosh, you should tweet
about it. You should fork Zigg that this
kind of stuff ends up happening. And
then guess what? It just turns out that
perhaps the implementation wasn't
correct, at least based on what I'm
reading from Zigg. But more importantly,
he actually goes in here and kind of
disproves the entire point of this,
which is I think even more impressive.
So instead of just having this
parallelized semantic analysis, he's
like, "Okay, no, no, no. You're focusing
on the wrong problem." Which is like a
huge classic. often when people try to
make something faster or better or more
well-ritten they think about it from
such a like myopic perspective and so in
this case it's just like oh well the
problem is is that we're just not
analyzing everything in parallel that's
really where the bottleneck is and then
comes in here and says no no no that's
not what I'm saying what I'm saying the
true bottleneck is is the LLVM now we
have an experimental our own kind of
custom backend that means we can produce
stuff at the same rate 4x faster And we
also have incremental builds as well,
which means that we can actually produce
it orders of magnitude faster. We can go
from 40 second build times down to a
half second. And that's completely
different than what's going on with just
the Zig fork. It is the wellthought
through and wellared for good
engineering that it takes to build a
good product. This is what good products
look like. And once again, I'm genuinely
impressed with Zik. And I think there's
a good takeaway here. I do think you can
move super duper ultra lickety split
with an LLM. And perhaps this was like a
good thing to go spike out and say,
"Hey, if we can accomplish incremental
or parallel semantic analysis, we should
be able to run about 4x faster." And
then instead of having this big flashy
headline like we can't even commit it
back because of LLM policies, instead
perhaps they could have worked with the
team. Perhaps they could have done a
little bit of digging cuz apparently
this is already available on Mac OS and
I think Linux. So maybe we could have
just looked at it a little bit more
instead of just making these gigantic
headlines.
Ask follow-up questions or revisit key timestamps.
The video details a controversy surrounding Bun, a JavaScript utility, and the Zig programming language. Bun announced a fork of Zig that sped up debug builds by 4x but stated they wouldn't upstream the changes due to Zig's strict ban on LLM-authored contributions. The speaker initially discusses the public's mixed reactions, the challenge of enforcing an LLM ban, and the ethical implications of large corporations forking open-source projects under an MIT license. Later, an update reveals Zig's official response: the core reason for not accepting Bun's changes was not the LLM policy, but that Bun's implementation of parallel semantic analysis introduced non-deterministic behavior. Zig also clarified that they are developing their own robust solution for build speed, focusing on optimizing the LLVM backend and implementing incremental builds, which will offer significantly greater improvements without compromising stability, reflecting Zig's philosophy of careful and well-engineered development.
Videos recently processed by our community