Zig's creator can't stop himself
Read full transcript 47 segments
-
Stop me if you heard this one before. Stop me if you heard this one before. Buns being ported from Zigg to Rust with Buns being ported from Zigg to Rust with Buns being ported from Zigg to Rust with Claude. Well, it was. And there's a blog Claude. Well, it was. And there's a blog Claude. Well, it was. And there's a blog post now. And I think it's fair to say post now. And I think it's fair to say post now. And I think it's fair to say that this blog post is the end of Zigg that this blog post is the end of Zigg that this blog post is the end of Zigg and the respect the community has. You and the respect the community has. You and the respect the community has. You might be thinking that's cuz this blog might be thinking that's cuz this blog might be thinking that's cuz this blog post tears Zigg apart and talks about post tears Zigg apart and talks about post tears Zigg apart and talks about how terrible it is. That is not what how terrible it is. That is not what how terrible it is. That is not what we're talking about at all. In fact, we're talking about at all. In fact, we're talking about at all. In fact, this blog post does a great service both this blog post does a great service both this blog post does a great service both in sharing the details of how Jared did in sharing the details of how Jared did in sharing the details of how Jared did this port, but also being super kind to this port, but also being super kind to this port, but also being super kind to Zigg and the Zig Foundation. Zigg and the Zig Foundation. Zigg and the Zig Foundation. So, why is this the death of Zigg? You So, why is this the death of Zigg? You So, why is this the death of Zigg? You should ask Andrew Kelly because the blog should ask Andrew Kelly because the blog should ask Andrew Kelly because the blog post that's going to kill Zigg wasn't post that's going to kill Zigg wasn't post that's going to kill Zigg wasn't written by Jared or the Bun community. written by Jared or the Bun community. written by Jared or the Bun community. It was written by Andrew Kelly, the It was written by Andrew Kelly, the It was written by Andrew Kelly, the creator of Zigg itself. He crashed out creator of Zigg itself. He crashed out creator of Zigg itself. He crashed out so hard at Jared over him making this so hard at Jared over him making this so hard at Jared over him making this move that I ended up crashing out, too. move that I ended up crashing out, too. move that I ended up crashing out, too. I am refilming this intro for the third I am refilming this intro for the third I am refilming this intro for the third time because the first time I filmed it, time because the first time I filmed it, time because the first time I filmed it, I hadn't read the article yet. And the I hadn't read the article yet. And the I hadn't read the article yet. And the second time I filmed it, I don't think I second time I filmed it, I don't think I second time I filmed it, I don't think I accentuated how absurd things were accentuated how absurd things were accentuated how absurd things were properly. This whole thing is stupid and properly. This whole thing is stupid and properly. This whole thing is stupid and it is absurd just how stupid it is. And it is absurd just how stupid it is. And it is absurd just how stupid it is. And as such, I had to split this video into as such, I had to split this video into as such, I had to split this video into two parts. Part one is the smart part two parts. Part one is the smart part two parts. Part one is the smart part where we go over how Jared did this where we go over how Jared did this where we go over how Jared did this insane million plus line port in just a insane million plus line port in just a insane million plus line port in just a week because he used the hell out of week because he used the hell out of week because he used the hell out of Claude and AI tools to make this happen.
-
Claude and AI tools to make this happen. Claude and AI tools to make this happen. And I do genuinely believe there's a lot And I do genuinely believe there's a lot And I do genuinely believe there's a lot we can learn from this. The other half we can learn from this. The other half we can learn from this. The other half is me going through Andrew Kelly's post is me going through Andrew Kelly's post is me going through Andrew Kelly's post and being the angriest I think I've ever and being the angriest I think I've ever and being the angriest I think I've ever been in a video because it is you want been in a video because it is you want been in a video because it is you want to see what it looks like to kill your to see what it looks like to kill your to see what it looks like to kill your own language, it's this blog post. own language, it's this blog post. own language, it's this blog post. Personally, I think the first half is Personally, I think the first half is Personally, I think the first half is the better half of this video. But if the better half of this video. But if the better half of this video. But if you just want to skip to the crash out, you just want to skip to the crash out, you just want to skip to the crash out, I understand. But I would politely I understand. But I would politely I understand. But I would politely request that you wait for a quick word request that you wait for a quick word request that you wait for a quick word from today's sponsor. I'm going to be from today's sponsor. I'm going to be from today's sponsor. I'm going to be real with y'all. If you're working on real with y'all. If you're working on real with y'all. If you're working on something that other companies have something that other companies have something that other companies have built before, there's a very good chance built before, there's a very good chance built before, there's a very good chance you can vibe code it. Once the code is you can vibe code it. Once the code is you can vibe code it. Once the code is in the training data, it's able to be in the training data, it's able to be in the training data, it's able to be reproduced a lot, which is why something reproduced a lot, which is why something reproduced a lot, which is why something as trivial as O should be really easy to as trivial as O should be really easy to as trivial as O should be really easy to vibe code, right? Well, it is, but it's vibe code, right? Well, it is, but it's vibe code, right? Well, it is, but it's hard to get right. And importantly, it hard to get right. And importantly, it hard to get right. And importantly, it is changing really fast now, more so is changing really fast now, more so is changing really fast now, more so than ever. If you want to replicate a than ever. If you want to replicate a than ever. If you want to replicate a basic Google signin button that every basic Google signin button that every basic Google signin button that every site uses, cool, fine. But what happens site uses, cool, fine. But what happens site uses, cool, fine. But what happens when you need to onboard enterprises? when you need to onboard enterprises? when you need to onboard enterprises? What happens when their agents want to What happens when their agents want to What happens when their agents want to be able to sign up themselves? At that be able to sign up themselves? At that be able to sign up themselves? At that point, I certainly hope you're using point, I certainly hope you're using point, I certainly hope you're using work OS because these guys understand work OS because these guys understand work OS because these guys understand what businesses really need. Not just what businesses really need. Not just what businesses really need. Not just the libraries, which obviously they have the libraries, which obviously they have the libraries, which obviously they have all of the frameworks, SDKs, and things all of the frameworks, SDKs, and things all of the frameworks, SDKs, and things that you would expect, but more that you would expect, but more that you would expect, but more importantly, what a business expects you importantly, what a business expects you importantly, what a business expects you to have ready for them when you go to to have ready for them when you go to to have ready for them when you go to negotiate a contract or trying to sign negotiate a contract or trying to sign negotiate a contract or trying to sign up their teams. Or if their agents are up their teams. Or if their agents are up their teams. Or if their agents are trying to sign up for your service, you trying to sign up for your service, you trying to sign up for your service, you need a way for them to do that, too. And need a way for them to do that, too. And need a way for them to do that, too. And computer use is great and all, but computer use is great and all, but computer use is great and all, but filling out forms and dealing with filling out forms and dealing with filling out forms and dealing with captures is far from the best use of captures is far from the best use of captures is far from the best use of GPT56, especially in a world where GPT56, especially in a world where GPT56, especially in a world where agents want to sign up to lots of agents want to sign up to lots of agents want to sign up to lots of different things at the same time, and different things at the same time, and different things at the same time, and you don't want to be rate limited. If you don't want to be rate limited. If you don't want to be rate limited. If you set up an OMD for your service, then you set up an OMD for your service, then you set up an OMD for your service, then agents can register on the behalf of agents can register on the behalf of agents can register on the behalf of their users, which is a pattern I think their users, which is a pattern I think their users, which is a pattern I think is going to catch on huge in the not too
-
is going to catch on huge in the not too is going to catch on huge in the not too distant future. And I'm not the only one distant future. And I'm not the only one distant future. And I'm not the only one who feels this way. Cloudflare, who feels this way. Cloudflare, who feels this way. Cloudflare, Firecraw, and more have already Firecraw, and more have already Firecraw, and more have already partnered with Work OS to make this partnered with Work OS to make this partnered with Work OS to make this standard real. Make sure your OTH is standard real. Make sure your OTH is standard real. Make sure your OTH is user ready, enterprise ready, and agent user ready, enterprise ready, and agent user ready, enterprise ready, and agent ready at soyv.link/workos. ready at soyv.link/workos. ready at soyv.link/workos. Let's read what Jared has to say. I'm Let's read what Jared has to say. I'm Let's read what Jared has to say. I'm actually pretty excited about this. I've actually pretty excited about this. I've actually pretty excited about this. I've only seen parts of the article so far. only seen parts of the article so far. only seen parts of the article so far. So, let's dig in. He opens with the So, let's dig in. He opens with the So, let's dig in. He opens with the disclosure that he's now part of disclosure that he's now part of disclosure that he's now part of anthropic, yada yada. Bunst started as a anthropic, yada yada. Bunst started as a anthropic, yada yada. Bunst started as a line for port of ESU's JavaScript and line for port of ESU's JavaScript and line for port of ESU's JavaScript and Typicer transpiler from Go to Zigg. He Typicer transpiler from Go to Zigg. He Typicer transpiler from Go to Zigg. He wrote his first line of Zigg in April of wrote his first line of Zigg in April of wrote his first line of Zigg in April of 2021. He bet on Zig after seeing the 2021. He bet on Zig after seeing the 2021. He bet on Zig after seeing the single page Zigg language reference on single page Zigg language reference on single page Zigg language reference on HackerNews and getting really excited HackerNews and getting really excited HackerNews and getting really excited about the low-level control and care for about the low-level control and care for about the low-level control and care for performance. From the start, Bun's scope performance. From the start, Bun's scope performance. From the start, Bun's scope was massive. There's going to be a JS, was massive. There's going to be a JS, was massive. There's going to be a JS, TS, and CSS transpiler, minifier, and TS, and CSS transpiler, minifier, and TS, and CSS transpiler, minifier, and bundler, npm compatible package manager bundler, npm compatible package manager bundler, npm compatible package manager just like testr runner, node and just like testr runner, node and just like testr runner, node and typescript compatible module typescript compatible module typescript compatible module resolutions, proper HTTP1 and websocket resolutions, proper HTTP1 and websocket resolutions, proper HTTP1 and websocket clients, as well as a Node.js full API clients, as well as a Node.js full API clients, as well as a Node.js full API implementation for things like FSN, Net, implementation for things like FSN, Net, implementation for things like FSN, Net, TLS, and dozens of other built-in TLS, and dozens of other built-in TLS, and dozens of other built-in modules. The initial version of Bun was modules. The initial version of Bun was modules. The initial version of Bun was written by Jared in one year in a written by Jared in one year in a written by Jared in one year in a cramped Oakland apartment pre-LM in cramped Oakland apartment pre-LM in cramped Oakland apartment pre-LM in Zigg. Fun fact about this, I had Jared Zigg. Fun fact about this, I had Jared Zigg. Fun fact about this, I had Jared come over to my current apartment when I come over to my current apartment when I come over to my current apartment when I first moved here so we could hang out.
-
first moved here so we could hang out. first moved here so we could hang out. And he was surprised by how close it was And he was surprised by how close it was And he was surprised by how close it was to the bun office. And we had a to the bun office. And we had a to the bun office. And we had a conversation about that and he realized, conversation about that and he realized, conversation about that and he realized, oh, I didn't realize I could just like oh, I didn't realize I could just like oh, I didn't realize I could just like live closer to the office. This seems live closer to the office. This seems live closer to the office. This seems really nice. I should probably stop really nice. I should probably stop really nice. I should probably stop living in my cramped Oakland apartment living in my cramped Oakland apartment living in my cramped Oakland apartment after raising a bunch of money. and I after raising a bunch of money. and I after raising a bunch of money. and I yelled at him about it and convinced him yelled at him about it and convinced him yelled at him about it and convinced him to move here where he lives in a much to move here where he lives in a much to move here where he lives in a much nicer spot. Back in like 2023, I want to nicer spot. Back in like 2023, I want to nicer spot. Back in like 2023, I want to say he stayed in that apartment way say he stayed in that apartment way say he stayed in that apartment way longer than he should have. Silly aside, longer than he should have. Silly aside, longer than he should have. Silly aside, but like I have known this kid for a but like I have known this kid for a but like I have known this kid for a while. He just kind of sits and does the while. He just kind of sits and does the while. He just kind of sits and does the thing until somebody taps him on the thing until somebody taps him on the thing until somebody taps him on the shoulder and says, "Hey, this other shoulder and says, "Hey, this other shoulder and says, "Hey, this other thing next to it also matters." And his thing next to it also matters." And his thing next to it also matters." And his apartment is one of the silliest apartment is one of the silliest apartment is one of the silliest examples. Back to the article. The examples. Back to the article. The examples. Back to the article. The default outcome for ambitiously scoped default outcome for ambitiously scoped default outcome for ambitiously scoped projects like Bun is joining the projects like Bun is joining the projects like Bun is joining the graveyard of dead side projects on a graveyard of dead side projects on a graveyard of dead side projects on a GitHub profile page. Don't call me out GitHub profile page. Don't call me out GitHub profile page. Don't call me out like that. Zigg made bun possible. I like that. Zigg made bun possible. I like that. Zigg made bun possible. I would never have been able to build this would never have been able to build this would never have been able to build this much in one year if it wasn't for Zigg. much in one year if it wasn't for Zigg. much in one year if it wasn't for Zigg. Nowadays, the Bun CLI gets over 22 Nowadays, the Bun CLI gets over 22 Nowadays, the Bun CLI gets over 22 million monthly downloads. Popular tools million monthly downloads. Popular tools million monthly downloads. Popular tools like Claude Code and Open Code bet on like Claude Code and Open Code bet on like Claude Code and Open Code bet on Bun as their runtime. Open Code is Bun as their runtime. Open Code is Bun as their runtime. Open Code is moving to Node for what it's worth. moving to Node for what it's worth. moving to Node for what it's worth. Verscell, Railway, Digital Ocean, and Verscell, Railway, Digital Ocean, and Verscell, Railway, Digital Ocean, and more all have firstparty support for more all have firstparty support for more all have firstparty support for Bun. Bun Scope's also been a challenge Bun. Bun Scope's also been a challenge Bun. Bun Scope's also been a challenge for stability. Here's a small sample of for stability. Here's a small sample of for stability. Here's a small sample of bugs that they had to fix in the most bugs that they had to fix in the most bugs that they had to fix in the most recent release. A bunch of weird recent release. A bunch of weird recent release. A bunch of weird crashes, memory leaks, and out of crashes, memory leaks, and out of crashes, memory leaks, and out of bounds. We could have kept fixing these bounds. We could have kept fixing these bounds. We could have kept fixing these kinds of bugs one-off in perpetuity, but kinds of bugs one-off in perpetuity, but kinds of bugs one-off in perpetuity, but we owe it to our users counting on us to we owe it to our users counting on us to we owe it to our users counting on us to do better than that and systematically do better than that and systematically do better than that and systematically preventing these kinds of bugs from preventing these kinds of bugs from preventing these kinds of bugs from recurring. So, what did they start recurring. So, what did they start recurring. So, what did they start doing? They patched the Zig compiler to doing? They patched the Zig compiler to doing? They patched the Zig compiler to add address sanitizer support. They ran add address sanitizer support. They ran add address sanitizer support. They ran their test suite with an address their test suite with an address their test suite with an address sanitizer checks on every commit. They
-
sanitizer checks on every commit. They sanitizer checks on every commit. They shipped the Zig safety checked release shipped the Zig safety checked release shipped the Zig safety checked release safe builds on Windows. They fuzz buns safe builds on Windows. They fuzz buns safe builds on Windows. They fuzz buns runtime APIs 24/7 using fuzzy, which is runtime APIs 24/7 using fuzzy, which is runtime APIs 24/7 using fuzzy, which is a JS engine fuzzer used by the V8 and JS a JS engine fuzzer used by the V8 and JS a JS engine fuzzer used by the V8 and JS core teams. and they have a whole bunch core teams. and they have a whole bunch core teams. and they have a whole bunch of endto-end memory leak tests. Most of endto-end memory leak tests. Most of endto-end memory leak tests. Most projects don't go this far. He says it's projects don't go this far. He says it's projects don't go this far. He says it's more than most do and I totally agree. more than most do and I totally agree. more than most do and I totally agree. So why don't you just be really smart So why don't you just be really smart So why don't you just be really smart and not make mistakes? Our bug fix list and not make mistakes? Our bug fix list and not make mistakes? Our bug fix list felt bad and I was tired of going to felt bad and I was tired of going to felt bad and I was tired of going to sleep worrying about crashes in bun. I sleep worrying about crashes in bun. I sleep worrying about crashes in bun. I don't blame Zigg for that. Other users don't blame Zigg for that. Other users don't blame Zigg for that. Other users of Zig don't have the bugs that he has of Zig don't have the bugs that he has of Zig don't have the bugs that he has in mixing GC with manually managed in mixing GC with manually managed in mixing GC with manually managed memory is an uncommon enough thing for memory is an uncommon enough thing for memory is an uncommon enough thing for software to need that no language really software to need that no language really software to need that no language really designs for it. We wouldn't have gotten designs for it. We wouldn't have gotten designs for it. We wouldn't have gotten this far if not for Zigg and I'll always this far if not for Zigg and I'll always this far if not for Zigg and I'll always be grateful. Until very recently, be grateful. Until very recently, be grateful. Until very recently, programming language choice was a programming language choice was a programming language choice was a one-way decision for a project like Bun. one-way decision for a project like Bun. one-way decision for a project like Bun. Notice all of the nice things he's Notice all of the nice things he's Notice all of the nice things he's saying about Zigg. Remember that for the saying about Zigg. Remember that for the saying about Zigg. Remember that for the next thing we read, JS is a garbage next thing we read, JS is a garbage next thing we read, JS is a garbage collected language, and a modern JS collected language, and a modern JS collected language, and a modern JS engine like JSC or V8 have strict rules engine like JSC or V8 have strict rules engine like JSC or V8 have strict rules around exception handling and the around exception handling and the around exception handling and the garbage collector. Zigg like C doesn't garbage collector. Zigg like C doesn't garbage collector. Zigg like C doesn't memory manage for you. And this is a memory manage for you. And this is a memory manage for you. And this is a trade-off that for many projects is a trade-off that for many projects is a trade-off that for many projects is a great reason to use Zigg. Z does not great reason to use Zigg. Z does not great reason to use Zigg. Z does not have constructors and destructors and have constructors and destructors and have constructors and destructors and most cleanup is expected to be written most cleanup is expected to be written most cleanup is expected to be written out explicitly at each call site with a out explicitly at each call site with a out explicitly at each call site with a deferrun correctly handling the deferrun correctly handling the deferrun correctly handling the lifetimes of garbage collected values lifetimes of garbage collected values lifetimes of garbage collected values and manually managed values has been a and manually managed values has been a and manually managed values has been a major source of stability issues most major source of stability issues most major source of stability issues most often small memory leaks and often small memory leaks and often small memory leaks and occasionally crashes. Every memory occasionally crashes. Every memory occasionally crashes. Every memory allocation has to be meticulously allocation has to be meticulously allocation has to be meticulously reviewed. Where do these bytes get reviewed. Where do these bytes get reviewed. Where do these bytes get freed? How do we ensure it only gets freed? How do we ensure it only gets freed? How do we ensure it only gets freed once? Do we check for JS freed once? Do we check for JS freed once? Do we check for JS exceptions properly? Is the garbage
-
exceptions properly? Is the garbage exceptions properly? Is the garbage collected pointer visible to the collected pointer visible to the collected pointer visible to the conservative stack scanner? Is this conservative stack scanner? Is this conservative stack scanner? Is this garbage collected memory or manually garbage collected memory or manually garbage collected memory or manually managed memory? Versibility issues. managed memory? Versibility issues. managed memory? Versibility issues. Knowing as early as possible is best. Knowing as early as possible is best. Knowing as early as possible is best. Buzzing happens after code is merged. CI Buzzing happens after code is merged. CI Buzzing happens after code is merged. CI happens when code is pushed. Runtime happens when code is pushed. Runtime happens when code is pushed. Runtime safety checks in address sanitizers safety checks in address sanitizers safety checks in address sanitizers happen when code is run, hopefully in happen when code is run, hopefully in happen when code is run, hopefully in development before you get to CI. One development before you get to CI. One development before you get to CI. One common way to reduce this class of common way to reduce this class of common way to reduce this class of issues is to ensure cleanup code is issues is to ensure cleanup code is issues is to ensure cleanup code is always run exactly once for the code always run exactly once for the code always run exactly once for the code that needs it. Zigg's designed to be a that needs it. Zigg's designed to be a that needs it. Zigg's designed to be a simple language with no hidden control simple language with no hidden control simple language with no hidden control flows. So it prefers explicit defer flows. So it prefers explicit defer flows. So it prefers explicit defer keyword to run code at the end of a keyword to run code at the end of a keyword to run code at the end of a scope over C++'s implicit destructor or scope over C++'s implicit destructor or scope over C++'s implicit destructor or Russ implicit drop for zig code. When Russ implicit drop for zig code. When Russ implicit drop for zig code. When exactly should we be running this exactly should we be running this exactly should we be running this cleanup though? If we're passing the cleanup though? If we're passing the cleanup though? If we're passing the same pointer to many different same pointer to many different same pointer to many different functions, how do we know when it's no functions, how do we know when it's no functions, how do we know when it's no longer accessible and can be cleaned up? longer accessible and can be cleaned up? longer accessible and can be cleaned up? How does it work when some functions How does it work when some functions How does it work when some functions need to continue to reference the memory need to continue to reference the memory need to continue to reference the memory after the functions called? Our current after the functions called? Our current after the functions called? Our current approach is a mix of lifetimes, approach is a mix of lifetimes, approach is a mix of lifetimes, reference counting, and paying really reference counting, and paying really reference counting, and paying really close attention. This is a a scary one. close attention. This is a a scary one. close attention. This is a a scary one. Many projects opt to answer these Many projects opt to answer these Many projects opt to answer these questions through style guides. Tiger questions through style guides. Tiger questions through style guides. Tiger Beetle's Tiger Style is an example in Beetle's Tiger Style is an example in Beetle's Tiger Style is an example in Zigg and Google's 31,000word C++ style Zigg and Google's 31,000word C++ style Zigg and Google's 31,000word C++ style guide is another. The challenge with guide is another. The challenge with guide is another. The challenge with style guides is enforcement. How do you style guides is enforcement. How do you style guides is enforcement. How do you make sure that the style guide is make sure that the style guide is make sure that the style guide is followed? Historically, code reviews followed? Historically, code reviews followed? Historically, code reviews were the answer with best effort were the answer with best effort were the answer with best effort enforcements via llinters and static enforcements via llinters and static enforcements via llinters and static analyzers. Having a rigid style guide analyzers. Having a rigid style guide analyzers. Having a rigid style guide with clear ownership expectations with clear ownership expectations with clear ownership expectations explicitly spelled out the type system explicitly spelled out the type system explicitly spelled out the type system was a real option for Bun. Since Zig had was a real option for Bun. Since Zig had was a real option for Bun. Since Zig had no operator overloading, we would likely no operator overloading, we would likely no operator overloading, we would likely end up with a lot of code looking like end up with a lot of code looking like end up with a lot of code looking like this. Just a ton of types all over the
-
this. Just a ton of types all over the this. Just a ton of types all over the place. Normally with Zigg, you write place. Normally with Zigg, you write place. Normally with Zigg, you write much simpler, more elegant code, and you much simpler, more elegant code, and you much simpler, more elegant code, and you don't have to manually dreference and don't have to manually dreference and don't have to manually dreference and defer all over the place. And a lot of defer all over the place. And a lot of defer all over the place. And a lot of why people like Zigg is this crazy why people like Zigg is this crazy why people like Zigg is this crazy flexibility and simplicity they get out flexibility and simplicity they get out flexibility and simplicity they get out of it that goes away if you have to of it that goes away if you have to of it that goes away if you have to triple check every single thing you do. triple check every single thing you do. triple check every single thing you do. About 20% of their code is written in About 20% of their code is written in About 20% of their code is written in C++. So why not consider that? Things C++. So why not consider that? Things C++. So why not consider that? Things like the JavaScript core which is the like the JavaScript core which is the like the JavaScript core which is the engine that powers both Safari and Bun. engine that powers both Safari and Bun. engine that powers both Safari and Bun. U Web Sockets and Usockets are both U Web Sockets and Usockets are both U Web Sockets and Usockets are both phenomenal libraries which they use for phenomenal libraries which they use for phenomenal libraries which they use for HTTP and the websocket server. IshPac HTTP and the websocket server. IshPac HTTP and the websocket server. IshPac and isquick which are built on top of and isquick which are built on top of and isquick which are built on top of C++ as well. Boring SSL, Google's open C++ as well. Boring SSL, Google's open C++ as well. Boring SSL, Google's open SSL fork and SQLite. C++ instead of ZIG SSL fork and SQLite. C++ instead of ZIG SSL fork and SQLite. C++ instead of ZIG would be a reasonable choice for bun. We would be a reasonable choice for bun. We would be a reasonable choice for bun. We would get constructors and destructors. would get constructors and destructors. would get constructors and destructors. We could delete lots of external C We could delete lots of external C We could delete lots of external C wrapper code, but we would still be wrapper code, but we would still be wrapper code, but we would still be reliant on style guides and forced reliant on style guides and forced reliant on style guides and forced through code review. And even with ASIN, through code review. And even with ASIN, through code review. And even with ASIN, memory corruption and memory leaks would memory corruption and memory leaks would memory corruption and memory leaks would still happen. So why Rust? And I will still happen. So why Rust? And I will still happen. So why Rust? And I will tell you as a friend of Jared, Rust is tell you as a friend of Jared, Rust is tell you as a friend of Jared, Rust is far from his favorite language. He made far from his favorite language. He made far from his favorite language. He made this as the right choice, not his this as the right choice, not his this as the right choice, not his preferred choice. A lot of the bugs he preferred choice. A lot of the bugs he preferred choice. A lot of the bugs he was talking about before are from use was talking about before are from use was talking about before are from use after free, double freeze, and forget to after free, double freeze, and forget to after free, double freeze, and forget to freeze in error paths. In safe rust, freeze in error paths. In safe rust, freeze in error paths. In safe rust, these are compiler errors and they are these are compiler errors and they are these are compiler errors and they are guarded with cleanups and drop. Compiler guarded with cleanups and drop. Compiler guarded with cleanups and drop. Compiler errors are better feedback loops than errors are better feedback loops than errors are better feedback loops than style guides. I absolutely agree. And style guides. I absolutely agree. And style guides. I absolutely agree. And now that we have agents writing our now that we have agents writing our now that we have agents writing our code, getting that feedback early code, getting that feedback early code, getting that feedback early through a compiler is really useful.
-
through a compiler is really useful. through a compiler is really useful. Historically, rewrites are a terrible Historically, rewrites are a terrible Historically, rewrites are a terrible idea. Yes, everything he is saying is so idea. Yes, everything he is saying is so idea. Yes, everything he is saying is so agreeable here, I'm amazed anyone could agreeable here, I'm amazed anyone could agreeable here, I'm amazed anyone could be mad as they read this article. be mad as they read this article. be mad as they read this article. Excluding comments, bun is 500,000 lines Excluding comments, bun is 500,000 lines Excluding comments, bun is 500,000 lines of Zigg. A rewrite in another language of Zigg. A rewrite in another language of Zigg. A rewrite in another language would take a small team of engineers a would take a small team of engineers a would take a small team of engineers a full year. It would mean freezing bug full year. It would mean freezing bug full year. It would mean freezing bug fixes, security fixes, or feature fixes, security fixes, or feature fixes, security fixes, or feature development for that time. The least development for that time. The least development for that time. The least risky approach to getting something risky approach to getting something risky approach to getting something shippable would be a mechanical port shippable would be a mechanical port shippable would be a mechanical port from Zigg to Rust with a minimal number from Zigg to Rust with a minimal number from Zigg to Rust with a minimal number of behavioral changes using the exact of behavioral changes using the exact of behavioral changes using the exact same test suite we already use for same test suite we already use for same test suite we already use for testing Bun. Fortunately, Bun's test testing Bun. Fortunately, Bun's test testing Bun. Fortunately, Bun's test suite's already written in Typescript, suite's already written in Typescript, suite's already written in Typescript, which means it doesn't depend on the which means it doesn't depend on the which means it doesn't depend on the runtime's programming language. A year runtime's programming language. A year runtime's programming language. A year of no userfacing impact is not a of no userfacing impact is not a of no userfacing impact is not a realistic option they could consider. realistic option they could consider. realistic option they could consider. So, enforcement through code style to So, enforcement through code style to So, enforcement through code style to fix stability issues was their best bet, fix stability issues was their best bet, fix stability issues was their best bet, and it was their plan when they added and it was their plan when they added and it was their plan when they added the Rust inspired smart pointers to the Rust inspired smart pointers to the Rust inspired smart pointers to Bun's codebase. But honestly, Jared Bun's codebase. But honestly, Jared Bun's codebase. But honestly, Jared didn't want to do it. Homegrown smart didn't want to do it. Homegrown smart didn't want to do it. Homegrown smart pointers offer worse ergonomics than pointers offer worse ergonomics than pointers offer worse ergonomics than Rust and have none of the guarantees. Rust and have none of the guarantees. Rust and have none of the guarantees. What if instead he spent a week testing What if instead he spent a week testing What if instead he spent a week testing if Anthropic's new model could rewrite if Anthropic's new model could rewrite if Anthropic's new model could rewrite bun in Rust? He didn't expect it to bun in Rust? He didn't expect it to bun in Rust? He didn't expect it to work. A few days in, a high percentage work. A few days in, a high percentage work. A few days in, a high percentage of the test suite started passing and he of the test suite started passing and he of the test suite started passing and he saw how much the new Rust code matched saw how much the new Rust code matched saw how much the new Rust code matched up with the original Zig codebase. His up with the original Zig codebase. His up with the original Zig codebase. His opinion went from this is worth trying opinion went from this is worth trying opinion went from this is worth trying to I'm going to merge this. I watched to I'm going to merge this. I watched to I'm going to merge this. I watched this happen real time. I was in a group this happen real time. I was in a group this happen real time. I was in a group chat with him. I did not think he would chat with him. I did not think he would chat with him. I did not think he would bite the bullet and he did. Claude, bite the bullet and he did. Claude, bite the bullet and he did. Claude, rewrite bun and rust. There's a lot of rewrite bun and rust. There's a lot of rewrite bun and rust. There's a lot of ways to do a terrible job of this. For ways to do a terrible job of this. For ways to do a terrible job of this. For example, prompting Claude to just example, prompting Claude to just example, prompting Claude to just rewrite it. Don't make mistakes.
-
rewrite it. Don't make mistakes. rewrite it. Don't make mistakes. Definitely not what I did with Definitely not what I did with Definitely not what I did with Typescript Go and Rust video probably Typescript Go and Rust video probably Typescript Go and Rust video probably out by the time you're seeing this. and out by the time you're seeing this. and out by the time you're seeing this. and then praying it would work is not what then praying it would work is not what then praying it would work is not what he did. Think about how a person would he did. Think about how a person would he did. Think about how a person would do this. The first big question is do this. The first big question is do this. The first big question is incremental rewrite or everything at incremental rewrite or everything at incremental rewrite or everything at once. Since he's already done ports like once. Since he's already done ports like once. Since he's already done ports like this, like ES build from Go to Zigg, he this, like ES build from Go to Zigg, he this, like ES build from Go to Zigg, he knew that everything all at once was knew that everything all at once was knew that everything all at once was better. An incremental rewrite adds better. An incremental rewrite adds better. An incremental rewrite adds temporary code that you hope gets temporary code that you hope gets temporary code that you hope gets deleted eventually. It'll be painful in deleted eventually. It'll be painful in deleted eventually. It'll be painful in the short and medium term and probably the short and medium term and probably the short and medium term and probably never get deleted if I'm being real. The never get deleted if I'm being real. The never get deleted if I'm being real. The second big question is how how do we second big question is how how do we second big question is how how do we keep bun and rust the same bun as before keep bun and rust the same bun as before keep bun and rust the same bun as before with the same architecture performance with the same architecture performance with the same architecture performance and feature set while also getting the and feature set while also getting the and feature set while also getting the language features of rust like the language features of rust like the language features of rust like the borrow checker. How do we ensure the borrow checker. How do we ensure the borrow checker. How do we ensure the team can still maintain it after the team can still maintain it after the team can still maintain it after the rewrite? Their plan was to do the rewrite? Their plan was to do the rewrite? Their plan was to do the rewrite that makes it look like they rewrite that makes it look like they rewrite that makes it look like they transpiled the zig code to rust. They transpiled the zig code to rust. They transpiled the zig code to rust. They can gradually refactor it to reduce can gradually refactor it to reduce can gradually refactor it to reduce unsafe usage and look more like unsafe usage and look more like unsafe usage and look more like idiomatic rust after the 1.4 release idiomatic rust after the 1.4 release idiomatic rust after the 1.4 release ships. There's only two big questions ships. There's only two big questions ships. There's only two big questions left. Loops that write and review code. left. Loops that write and review code. left. Loops that write and review code. A lot of day-to-day engineering work as A lot of day-to-day engineering work as A lot of day-to-day engineering work as software engineers can be oversimplified software engineers can be oversimplified software engineers can be oversimplified into a loop. You task and while there is into a loop. You task and while there is into a loop. You task and while there is stuff on the to-do list, you get a stuff on the to-do list, you get a stuff on the to-do list, you get a result from calling the task. Then you result from calling the task. Then you result from calling the task. Then you wait for feedback. promise.all review wait for feedback. promise.all review wait for feedback. promise.all review result review result. Then you apply the result review result. Then you apply the result review result. Then you apply the feedback to the result. Then you do it feedback to the result. Then you do it feedback to the result. Then you do it again and again and again forever. A again and again and again forever. A again and again and again forever. A task has some context associated with it task has some context associated with it task has some context associated with it like a Jira ticket, a GitHub issue, etc.
-
like a Jira ticket, a GitHub issue, etc. like a Jira ticket, a GitHub issue, etc. The result is the code you wrote to fix The result is the code you wrote to fix The result is the code you wrote to fix it. Code reviewers review the changes to it. Code reviewers review the changes to it. Code reviewers review the changes to check for regressions and correctness check for regressions and correctness check for regressions and correctness and then you address the feedback. He and then you address the feedback. He and then you address the feedback. He rewrote bun and rust using about 50 rewrote bun and rust using about 50 rewrote bun and rust using about 50 dynamic workflows in cloud code. All run dynamic workflows in cloud code. All run dynamic workflows in cloud code. All run continuously over the course of 11 days. continuously over the course of 11 days. continuously over the course of 11 days. Each dynamic workflow was a loop like Each dynamic workflow was a loop like Each dynamic workflow was a loop like this. A workflow for generating a this. A workflow for generating a this. A workflow for generating a porting guide mapping zig patterns and porting guide mapping zig patterns and porting guide mapping zig patterns and types to rust patterns and types. types to rust patterns and types. types to rust patterns and types. Mechanically porting everyzig file to a Mechanically porting everyzig file to a Mechanically porting everyzig file to a rs file matching the porting.mmd and rs file matching the porting.mmd and rs file matching the porting.mmd and lifetimes.tsv files. Fixing every crates lifetimes.tsv files. Fixing every crates lifetimes.tsv files. Fixing every crates compile errors. Get subcomands like bun compile errors. Get subcomands like bun compile errors. Get subcomands like bun test and bun build to work. Get every test and bun build to work. Get every test and bun build to work. Get every test and bun's entire suite to pass. And test and bun's entire suite to pass. And test and bun's entire suite to pass. And several large refactors and cleanup several large refactors and cleanup several large refactors and cleanup passes. These are the things that make passes. These are the things that make passes. These are the things that make the dynamic workflows in cloud code so the dynamic workflows in cloud code so the dynamic workflows in cloud code so powerful. If you haven't seen my video powerful. If you haven't seen my video powerful. If you haven't seen my video called the good things about cloud code, called the good things about cloud code, called the good things about cloud code, watch it cuz I go in depth on workflows watch it cuz I go in depth on workflows watch it cuz I go in depth on workflows and how cool they are there. For most of and how cool they are there. For most of and how cool they are there. For most of those 11 days, as well as afterwards, he those 11 days, as well as afterwards, he those 11 days, as well as afterwards, he monitored the workflows, manually monitored the workflows, manually monitored the workflows, manually reading the outputs to check for issues reading the outputs to check for issues reading the outputs to check for issues and bugs and prompting Claude to edit and bugs and prompting Claude to edit and bugs and prompting Claude to edit the loop to fix things. How do you the loop to fix things. How do you the loop to fix things. How do you review a PR with 1 million lines added?
-
review a PR with 1 million lines added? review a PR with 1 million lines added? How do you start to build the confidence How do you start to build the confidence How do you start to build the confidence needed to responsibly merge large needed to responsibly merge large needed to responsibly merge large quantities of LLM authored code? You do quantities of LLM authored code? You do quantities of LLM authored code? You do it with a language independent test it with a language independent test it with a language independent test suite with a million assertions, suite with a million assertions, suite with a million assertions, adversarial code review, and then when adversarial code review, and then when adversarial code review, and then when something goes wrong, you fix the something goes wrong, you fix the something goes wrong, you fix the process that generates the code instead process that generates the code instead process that generates the code instead of just handfixing the code itself. They of just handfixing the code itself. They of just handfixing the code itself. They did a bunch of adversarial review as did a bunch of adversarial review as did a bunch of adversarial review as well, always splitting the context well, always splitting the context well, always splitting the context windows because you don't want to have windows because you don't want to have windows because you don't want to have the knowledge of how it was built in the knowledge of how it was built in the knowledge of how it was built in your brain. You just want to check it. your brain. You just want to check it. your brain. You just want to check it. This is another one of the things that This is another one of the things that This is another one of the things that dynamic workflows do well is you can cut dynamic workflows do well is you can cut dynamic workflows do well is you can cut off that context window and set up off that context window and set up off that context window and set up something else with a different one to something else with a different one to something else with a different one to go explore by itself. Super powerful go explore by itself. Super powerful go explore by itself. Super powerful tactic. So you'd have one implement and tactic. So you'd have one implement and tactic. So you'd have one implement and then two or more adversarial reviewers then two or more adversarial reviewers then two or more adversarial reviewers per implement. The reviewer's only job per implement. The reviewer's only job per implement. The reviewer's only job was to find bugs and reasons why the was to find bugs and reasons why the was to find bugs and reasons why the code doesn't work. The implement doesn't code doesn't work. The implement doesn't code doesn't work. The implement doesn't review. The reviewer doesn't implement. review. The reviewer doesn't implement. review. The reviewer doesn't implement. Yep, I do this a lot, too. The one thing Yep, I do this a lot, too. The one thing Yep, I do this a lot, too. The one thing he doesn't have which makes it even more he doesn't have which makes it even more he doesn't have which makes it even more impressive that this worked is I get impressive that this worked is I get impressive that this worked is I get much better reviews when I have much better reviews when I have much better reviews when I have different reviewers using different different reviewers using different different reviewers using different language models and families of models language models and families of models language models and families of models from different labs. So having one from different labs. So having one from different labs. So having one reviewer on codeex and one on claude reviewer on codeex and one on claude reviewer on codeex and one on claude meaningfully increases the quality of meaningfully increases the quality of meaningfully increases the quality of the responses. You had to do something the responses. You had to do something the responses. You had to do something big and expensive. It saves a lot of big and expensive. It saves a lot of big and expensive. It saves a lot of time and money to derisk it first. And time and money to derisk it first. And time and money to derisk it first. And then he discusses how he prepped. He then he discusses how he prepped. He then he discusses how he prepped. He started by talking for 3 hours with started by talking for 3 hours with started by talking for 3 hours with Claude about how to map the patterns Claude about how to map the patterns Claude about how to map the patterns from the Zig code base closely to Rust.
-
from the Zig code base closely to Rust. from the Zig code base closely to Rust. Claude serialized the discussion into Claude serialized the discussion into Claude serialized the discussion into the porting MD document which somehow the porting MD document which somehow the porting MD document which somehow ended up on hacker news. After fighting ended up on hacker news. After fighting ended up on hacker news. After fighting GitHub for 15 minutes, I found the GitHub for 15 minutes, I found the GitHub for 15 minutes, I found the document, the ZGS porting guide. It has document, the ZGS porting guide. It has document, the ZGS porting guide. It has the ground rules for how it wants to the ground rules for how it wants to the ground rules for how it wants to structure the files, not inventing crate structure the files, not inventing crate structure the files, not inventing crate layouts. Instead, use the ones that they layouts. Instead, use the ones that they layouts. Instead, use the ones that they already set up. Don't use all of these already set up. Don't use all of these already set up. Don't use all of these different packages because bun owns his different packages because bun owns his different packages because bun owns his event loop ancest calls. No async, yada event loop ancest calls. No async, yada event loop ancest calls. No async, yada yada, and the map to all the different yada, and the map to all the different yada, and the map to all the different crates, all the allocators, all this crates, all the allocators, all this crates, all the allocators, all this type of like how to map things. If type of like how to map things. If type of like how to map things. If anybody saw this port and assumed it was anybody saw this port and assumed it was anybody saw this port and assumed it was just like a blind go port, make no just like a blind go port, make no just like a blind go port, make no mistakes, I would implore they read this mistakes, I would implore they read this mistakes, I would implore they read this and see how much time and thought Jared and see how much time and thought Jared and see how much time and thought Jared put into doing this port. I know I put into doing this port. I know I put into doing this port. I know I hadn't done that before making my first hadn't done that before making my first hadn't done that before making my first video and now I feel a little bad about video and now I feel a little bad about video and now I feel a little bad about it because this is a great document with it because this is a great document with it because this is a great document with a lot of useful context on how hard he a lot of useful context on how hard he a lot of useful context on how hard he worked to do this right. He did a bunch worked to do this right. He did a bunch worked to do this right. He did a bunch of adversarial reviews on these guide of adversarial reviews on these guide of adversarial reviews on these guide files and as he says also manually read files and as he says also manually read files and as he says also manually read over them. I love this be called out but over them. I love this be called out but over them. I love this be called out but it's important. They did a trial run it's important. They did a trial run it's important. They did a trial run before asking Claude to translate all before asking Claude to translate all before asking Claude to translate all 1448.zig files to RS files. He started 1448.zig files to RS files. He started 1448.zig files to RS files. He started with just three. For each of the three with just three. For each of the three with just three. For each of the three files, one implement wrote the new Rust files, one implement wrote the new Rust files, one implement wrote the new Rust file. Two reviewed the changes and made file. Two reviewed the changes and made file. Two reviewed the changes and made sure the behavior in the file matched sure the behavior in the file matched sure the behavior in the file matched and then it followed the porting MD and and then it followed the porting MD and and then it followed the porting MD and lifetimes MD files. And then one fixer lifetimes MD files. And then one fixer lifetimes MD files. And then one fixer applied the suggestions. He wanted to applied the suggestions. He wanted to applied the suggestions. He wanted to make sure he did this right. So he make sure he did this right. So he make sure he did this right. So he started with just a handful of files. I started with just a handful of files. I started with just a handful of files. I believe three he said here. And he believe three he said here. And he believe three he said here. And he noticed that all of the claude instances noticed that all of the claude instances noticed that all of the claude instances were stepping on each other. And if you were stepping on each other. And if you were stepping on each other. And if you put each Claude in a separate work tree, put each Claude in a separate work tree, put each Claude in a separate work tree, he would run out of disk space because he would run out of disk space because he would run out of disk space because Bun's git repo is too big. So instead,
-
Bun's git repo is too big. So instead, Bun's git repo is too big. So instead, he asked Claude to edit the workflow and he asked Claude to edit the workflow and he asked Claude to edit the workflow and instruct Claude to never run git stash instruct Claude to never run git stash instruct Claude to never run git stash or get reset or any git command that or get reset or any git command that or get reset or any git command that doesn't commit a specific file at once. doesn't commit a specific file at once. doesn't commit a specific file at once. No cargo either, no slow commands at No cargo either, no slow commands at No cargo either, no slow commands at all. Jar and I had a long talk about all. Jar and I had a long talk about all. Jar and I had a long talk about this bit. I think the future is your this bit. I think the future is your this bit. I think the future is your tool calls executing on another machine tool calls executing on another machine tool calls executing on another machine so they don't step on each other. He so they don't step on each other. He so they don't step on each other. He thinks you need to prompt around it and thinks you need to prompt around it and thinks you need to prompt around it and he prompted around it here. I think this he prompted around it here. I think this he prompted around it here. I think this idea of agents stepping on each other is idea of agents stepping on each other is idea of agents stepping on each other is going to be one of the next arcs we go going to be one of the next arcs we go going to be one of the next arcs we go through in the like agentic coding through in the like agentic coding through in the like agentic coding world. How do we solve this problem? And world. How do we solve this problem? And world. How do we solve this problem? And I would guess the different labs will I would guess the different labs will I would guess the different labs will solve it entirely differently. And now solve it entirely differently. And now solve it entirely differently. And now after all of that and breaking up the after all of that and breaking up the after all of that and breaking up the workflows more, it finally started to workflows more, it finally started to workflows more, it finally started to really write the code. At peak, Claude really write the code. At peak, Claude really write the code. At peak, Claude was writing 1300 lines of code per was writing 1300 lines of code per was writing 1300 lines of code per minute. Get on this level, Gary Tan. minute. Get on this level, Gary Tan. minute. Get on this level, Gary Tan. You're not even close. Is this the first You're not even close. Is this the first You're not even close. Is this the first real 100x engineer? It's insane, but it real 100x engineer? It's insane, but it real 100x engineer? It's insane, but it worked. worked. worked. 11 days and 652 commits. Notice the egos 11 days and 652 commits. Notice the egos 11 days and 652 commits. Notice the egos assistant timing. He forgot to increase assistant timing. He forgot to increase assistant timing. He forgot to increase the default IOPS on the EC2 instance the default IOPS on the EC2 instance the default IOPS on the EC2 instance that this was running on. So one slow GP that this was running on. So one slow GP that this was running on. So one slow GP command was all it took to freeze disc command was all it took to freeze disc command was all it took to freeze disc reads and writes for minutes. Yep, I've reads and writes for minutes. Yep, I've reads and writes for minutes. Yep, I've even had that problem. And then he even had that problem. And then he even had that problem. And then he treated the compiler errors as a work treated the compiler errors as a work treated the compiler errors as a work cue. Another very interesting strategy.
-
cue. Another very interesting strategy. cue. Another very interesting strategy. When crate by crate, the trickiest class When crate by crate, the trickiest class When crate by crate, the trickiest class was the cyclical dependencies because it was the cyclical dependencies because it was the cyclical dependencies because it just Rust does not like that type of just Rust does not like that type of just Rust does not like that type of thing. Also, Rust compiles really thing. Also, Rust compiles really thing. Also, Rust compiles really slowly. So instead of having just one slowly. So instead of having just one slowly. So instead of having just one crate or package like he did with Zig, crate or package like he did with Zig, crate or package like he did with Zig, he wanted to split the code base into a he wanted to split the code base into a he wanted to split the code base into a 100 separate crates so the Rust code 100 separate crates so the Rust code 100 separate crates so the Rust code could compile faster, but it needed to could compile faster, but it needed to could compile faster, but it needed to avoid cyclical dependencies while avoid cyclical dependencies while avoid cyclical dependencies while minimizing changes compared to the Zig minimizing changes compared to the Zig minimizing changes compared to the Zig code. His PR to do this immediately code. His PR to do this immediately code. His PR to do this immediately before starting the Rust rewrite was before starting the Rust rewrite was before starting the Rust rewrite was insufficient. Instead of starting over, insufficient. Instead of starting over, insufficient. Instead of starting over, he wrote another workflow to classify he wrote another workflow to classify he wrote another workflow to classify where the code with cyclical where the code with cyclical where the code with cyclical dependencies should go and write it all dependencies should go and write it all dependencies should go and write it all down. Then another workflow to actually down. Then another workflow to actually down. Then another workflow to actually do that work. This is the loop do that work. This is the loop do that work. This is the loop engineering [ __ ] It sounds insane, engineering [ __ ] It sounds insane, engineering [ __ ] It sounds insane, but when you find the problems and they but when you find the problems and they but when you find the problems and they are at this scale, setting up a system are at this scale, setting up a system are at this scale, setting up a system to allow the agents to prevent it or fix to allow the agents to prevent it or fix to allow the agents to prevent it or fix it is a new type of engineering. And it is a new type of engineering. And it is a new type of engineering. And it's cool to see it in practice and it's cool to see it in practice and it's cool to see it in practice and written up as well as this is. There is written up as well as this is. There is written up as well as this is. There is no piece of like media out there that no piece of like media out there that no piece of like media out there that does this good of a job of explaining does this good of a job of explaining does this good of a job of explaining something this chaotic and new. And it's something this chaotic and new. And it's something this chaotic and new. And it's a weird artifact. Like I bet this blog a weird artifact. Like I bet this blog a weird artifact. Like I bet this blog post will be referenced in five years post will be referenced in five years post will be referenced in five years for very interesting reasons as the for very interesting reasons as the for very interesting reasons as the start of this shift. It's super cool and start of this shift. It's super cool and start of this shift. It's super cool and I get why he took so much time to I get why he took so much time to I get why he took so much time to rewrite it.
-
rewrite it. rewrite it. Rewrite is not the right word. Writing Rewrite is not the right word. Writing Rewrite is not the right word. Writing this blog post. I'm sure he didn't this blog post. I'm sure he didn't this blog post. I'm sure he didn't rewrite this a bunch. And I know he rewrite this a bunch. And I know he rewrite this a bunch. And I know he didn't have Claude write a lot of it. didn't have Claude write a lot of it. didn't have Claude write a lot of it. This is a great Claudism here, too. I've This is a great Claudism here, too. I've This is a great Claudism here, too. I've had Claude write longass comments had Claude write longass comments had Claude write longass comments justifying things that it thinks are justifying things that it thinks are justifying things that it thinks are okay. And he told it specifically, if okay. And he told it specifically, if okay. And he told it specifically, if you need a paragraph long comment to you need a paragraph long comment to you need a paragraph long comment to justify why the workound's okay, the justify why the workound's okay, the justify why the workound's okay, the code is wrong. Fix the code. I like this code is wrong. Fix the code. I like this code is wrong. Fix the code. I like this a lot. I'm going to steal this. a lot. I'm going to steal this. a lot. I'm going to steal this. Specifically, he had to do this cuz Specifically, he had to do this cuz Specifically, he had to do this cuz Claude was interpreting let's get all Claude was interpreting let's get all Claude was interpreting let's get all the CR to compile as stub out the the CR to compile as stub out the the CR to compile as stub out the functions with compilation errors. functions with compilation errors. functions with compilation errors. Claude also started adding suspiciously Claude also started adding suspiciously Claude also started adding suspiciously long explanatory comments to document long explanatory comments to document long explanatory comments to document workarounds. So he added that rule workarounds. So he added that rule workarounds. So he added that rule specifically for that. And then the specifically for that. And then the specifically for that. And then the smoke tests models love saying smoke smoke tests models love saying smoke smoke tests models love saying smoke tests. Once cargo check passed, getting tests. Once cargo check passed, getting tests. Once cargo check passed, getting it to compile and run was next. It had it to compile and run was next. It had it to compile and run was next. It had linker errors and then it panicked linker errors and then it panicked linker errors and then it panicked immediately on start. So then you had to immediately on start. So then you had to immediately on start. So then you had to get it to run the bun test like helper. get it to run the bun test like helper. get it to run the bun test like helper. Once that worked, they could start Once that worked, they could start Once that worked, they could start actually running the tests. He had a new actually running the tests. He had a new actually running the tests. He had a new loop for that. It kept going. A lot of loop for that. It kept going. A lot of loop for that. It kept going. A lot of the tests had memory leaks which is the tests had memory leaks which is the tests had memory leaks which is crazy because Rust but again line for crazy because Rust but again line for crazy because Rust but again line for line it's using a lot of uh unsafe not line it's using a lot of uh unsafe not line it's using a lot of uh unsafe not going to have the benefits immediately.
-
going to have the benefits immediately. going to have the benefits immediately. He also noticed that the tests were He also noticed that the tests were He also noticed that the tests were exhausting the maximum number of TCP exhausting the maximum number of TCP exhausting the maximum number of TCP sockets on the machine. Tests were sockets on the machine. Tests were sockets on the machine. Tests were reading and writing gigabytes of stuff reading and writing gigabytes of stuff reading and writing gigabytes of stuff to disk and tests were spawning 10,000 to disk and tests were spawning 10,000 to disk and tests were spawning 10,000 plus processes. I had this problem too plus processes. I had this problem too plus processes. I had this problem too with a big port I was working I hinted with a big port I was working I hinted with a big port I was working I hinted at it earlier. I was working on porting at it earlier. I was working on porting at it earlier. I was working on porting Go to Rust inspired by what he did here Go to Rust inspired by what he did here Go to Rust inspired by what he did here and I had the processes spin up and fail and I had the processes spin up and fail and I had the processes spin up and fail and memory leak and crash the machine so and memory leak and crash the machine so and memory leak and crash the machine so many times that I had to build a lot many times that I had to build a lot many times that I had to build a lot around that too. As he said, he needed around that too. As he said, he needed around that too. As he said, he needed something stronger than please. So we something stronger than please. So we something stronger than please. So we used systemd run with croups to limit used systemd run with croups to limit used systemd run with croups to limit memory and CPU usage and isolate PIDs by memory and CPU usage and isolate PIDs by memory and CPU usage and isolate PIDs by their namespace. The machine ran out of their namespace. The machine ran out of their namespace. The machine ran out of disk space and crashed several times disk space and crashed several times disk space and crashed several times regardless. Yep. And then they got the regardless. Yep. And then they got the regardless. Yep. And then they got the test suite passing in CI. 2 days after test suite passing in CI. 2 days after test suite passing in CI. 2 days after the first run, the failing list was down the first run, the failing list was down the first run, the failing list was down from 972 test files to 23. A day and a from 972 test files to 23. A day and a from 972 test files to 23. A day and a half after that, Linux went fully green, half after that, Linux went fully green, half after that, Linux went fully green, and for the first time, it felt like and for the first time, it felt like and for the first time, it felt like this Rust rewrite was actually going to this Rust rewrite was actually going to this Rust rewrite was actually going to work. That is insane. Just crazy. The work. That is insane. Just crazy. The work. That is insane. Just crazy. The rest of the time leading up to merging, rest of the time leading up to merging, rest of the time leading up to merging, it was straightforward. A workflow that it was straightforward. A workflow that it was straightforward. A workflow that looped on fixing CI test failures for looped on fixing CI test failures for looped on fixing CI test failures for each platform until there were no more each platform until there were no more each platform until there were no more test failures. Several workflows for test failures. Several workflows for test failures. Several workflows for Windows related cleanup to ddup code, to Windows related cleanup to ddup code, to Windows related cleanup to ddup code, to reduce unsafe usage, and to generally reduce unsafe usage, and to generally reduce unsafe usage, and to generally clean up some stuff. Then he merged it.
-
clean up some stuff. Then he merged it. clean up some stuff. Then he merged it. Once 100% of the test suite passed in CI Once 100% of the test suite passed in CI Once 100% of the test suite passed in CI on all platforms and he manually on all platforms and he manually on all platforms and he manually verified the tests were actually running verified the tests were actually running verified the tests were actually running and not being skipped. He ran a bunch of and not being skipped. He ran a bunch of and not being skipped. He ran a bunch of commands locally to test things. Then he commands locally to test things. Then he commands locally to test things. Then he pressed merge. Merging into main isn't a pressed merge. Merging into main isn't a pressed merge. Merging into main isn't a versioned release. This is another big versioned release. This is another big versioned release. This is another big thing that I've been emphasizing. Maine thing that I've been emphasizing. Maine thing that I've been emphasizing. Maine shouldn't be prod anymore because shouldn't be prod anymore because shouldn't be prod anymore because merging is too useful to have it also be merging is too useful to have it also be merging is too useful to have it also be deploy. I have an action that you can deploy. I have an action that you can deploy. I have an action that you can manually trigger in my projects that manually trigger in my projects that manually trigger in my projects that will take what's on main and move it to will take what's on main and move it to will take what's on main and move it to a prod branch and then trigger a deploy a prod branch and then trigger a deploy a prod branch and then trigger a deploy manually rather than having main manually rather than having main manually rather than having main autodeploy because then I can more autodeploy because then I can more autodeploy because then I can more freely merge to main if things break on freely merge to main if things break on freely merge to main if things break on staging or when I manually build the staging or when I manually build the staging or when I manually build the package revert change etc. So the merge package revert change etc. So the merge package revert change etc. So the merge to main wasn't a release it was to main wasn't a release it was to main wasn't a release it was confidence to start really making sure confidence to start really making sure confidence to start really making sure this could happen. This ended up being this could happen. This ended up being this could happen. This ended up being over 6,500 commits and 1.78 million over 6,500 commits and 1.78 million over 6,500 commits and 1.78 million lines written or rewritten. As I hinted lines written or rewritten. As I hinted lines written or rewritten. As I hinted at at the start, this was an insane at at the start, this was an insane at at the start, this was an insane number of tokens premerge. 5.9 billion number of tokens premerge. 5.9 billion number of tokens premerge. 5.9 billion uncashed inputs, 690 million inputs, and uncashed inputs, 690 million inputs, and uncashed inputs, 690 million inputs, and 72 billion cached input reads, which 72 billion cached input reads, which 72 billion cached input reads, which would have been 165,000 if you paid API would have been 165,000 if you paid API would have been 165,000 if you paid API price. Crazy to have this number public.
-
price. Crazy to have this number public. price. Crazy to have this number public. And I know it seems insane because it And I know it seems insane because it And I know it seems insane because it is, but there's a few things we need to is, but there's a few things we need to is, but there's a few things we need to recall. First, if this was done by recall. First, if this was done by recall. First, if this was done by humans, it would have been three humans, it would have been three humans, it would have been three engineers over a year. And that year engineers over a year. And that year engineers over a year. And that year isn't just, oh, you lost three engineers isn't just, oh, you lost three engineers isn't just, oh, you lost three engineers for that time. It's all other for that time. It's all other for that time. It's all other development has to kind of be paused or development has to kind of be paused or development has to kind of be paused or mirrored, which makes it either more mirrored, which makes it either more mirrored, which makes it either more expensive or unrealistic. Instead, it expensive or unrealistic. Instead, it expensive or unrealistic. Instead, it happened in just a few days. So if you happened in just a few days. So if you happened in just a few days. So if you assume all three engines made 200k a assume all three engines made 200k a assume all three engines made 200k a year and it would have taken three year and it would have taken three year and it would have taken three years, this is still cheaper because years, this is still cheaper because years, this is still cheaper because it's 165k in a week of edge time instead it's 165k in a week of edge time instead it's 165k in a week of edge time instead of 200k * 3 in a year of time. But of 200k * 3 in a year of time. But of 200k * 3 in a year of time. But there's two other layers I want to dig there's two other layers I want to dig there's two other layers I want to dig into here because the first and arguably into here because the first and arguably into here because the first and arguably most important is that this just most important is that this just most important is that this just wouldn't have happened. If this would wouldn't have happened. If this would wouldn't have happened. If this would have taken a year, they wouldn't do it have taken a year, they wouldn't do it have taken a year, they wouldn't do it because there's too much other [ __ ] to because there's too much other [ __ ] to because there's too much other [ __ ] to do. as a shortterm experiment, it is do. as a shortterm experiment, it is do. as a shortterm experiment, it is absolutely worth it just to to know if absolutely worth it just to to know if absolutely worth it just to to know if it can happen and then if it does to go it can happen and then if it does to go it can happen and then if it does to go further with it. So this isn't like 600k further with it. So this isn't like 600k further with it. So this isn't like 600k versus 165. This is it didn't happen versus 165. This is it didn't happen versus 165. This is it didn't happen versus 165k. But the other layer I want versus 165k. But the other layer I want versus 165k. But the other layer I want to call out is that this is $165,000 to call out is that this is $165,000 to call out is that this is $165,000 right now. This is the most expensive right now. This is the most expensive right now. This is the most expensive it'll ever be. This level of it'll ever be. This level of it'll ever be. This level of intelligence is already accessible via intelligence is already accessible via intelligence is already accessible via cheaper models because 56 soul just cheaper models because 56 soul just cheaper models because 56 soul just dropped and it's way cheaper. And over dropped and it's way cheaper. And over dropped and it's way cheaper. And over time, Anthropic and other labs will time, Anthropic and other labs will time, Anthropic and other labs will release models that are this smart or release models that are this smart or release models that are this smart or smarter for this price or lower. So, the smarter for this price or lower. So, the smarter for this price or lower. So, the prices are going to keep getting better.
-
prices are going to keep getting better. prices are going to keep getting better. And when you factor in the margins that And when you factor in the margins that And when you factor in the margins that Anthropic already spikes into their Anthropic already spikes into their Anthropic already spikes into their product, between 50 and 80% from recent product, between 50 and 80% from recent product, between 50 and 80% from recent rumors, this number is really not that rumors, this number is really not that rumors, this number is really not that big in practice. So, yeah, 165K, big big in practice. So, yeah, 165K, big big in practice. So, yeah, 165K, big scary number to have on the front. It's scary number to have on the front. It's scary number to have on the front. It's going to get cheaper from here. It going to get cheaper from here. It going to get cheaper from here. It wouldn't have existed otherwise. and it wouldn't have existed otherwise. and it wouldn't have existed otherwise. and it was subsidized to all hell by the fact was subsidized to all hell by the fact was subsidized to all hell by the fact that it was anthropic and this yeah this that it was anthropic and this yeah this that it was anthropic and this yeah this just wouldn't have happened otherwise. just wouldn't have happened otherwise. just wouldn't have happened otherwise. So people who think this number means So people who think this number means So people who think this number means this that AI engineering is doomed or this that AI engineering is doomed or this that AI engineering is doomed or whatever be [ __ ] realistic. The idea whatever be [ __ ] realistic. The idea whatever be [ __ ] realistic. The idea that you can spend under 200k to port a that you can spend under 200k to port a that you can spend under 200k to port a project as big and important as bun to project as big and important as bun to project as big and important as bun to an entirely different language is a an entirely different language is a an entirely different language is a thing that wouldn't have even been thing that wouldn't have even been thing that wouldn't have even been fathomable 6 months ago. It is fathomable 6 months ago. It is fathomable 6 months ago. It is unbelievable how fast the stuff is unbelievable how fast the stuff is unbelievable how fast the stuff is moving. The most wrong I've ever been is moving. The most wrong I've ever been is moving. The most wrong I've ever been is when I said we hit a ceiling. We are when I said we hit a ceiling. We are when I said we hit a ceiling. We are blasting through any ceilings I thought blasting through any ceilings I thought blasting through any ceilings I thought were there faster than I could have were there faster than I could have were there faster than I could have imagined. And we're already getting dumb imagined. And we're already getting dumb imagined. And we're already getting dumb comments. How can we say prices get comments. How can we say prices get comments. How can we say prices get better? If anything like this continues, better? If anything like this continues, better? If anything like this continues, it will get more expensive. No. Again, it will get more expensive. No. Again, it will get more expensive. No. Again, use your brain. When new models come use your brain. When new models come use your brain. When new models come out, they are either the same price or out, they are either the same price or out, they are either the same price or more expensive because they are smarter.
-
more expensive because they are smarter. more expensive because they are smarter. At any given intelligence level, at any At any given intelligence level, at any At any given intelligence level, at any given capability level, the price drops given capability level, the price drops given capability level, the price drops constantly. So again, could a smarter constantly. So again, could a smarter constantly. So again, could a smarter model come out that would be more model come out that would be more model come out that would be more expensive for this? Perhaps, but you expensive for this? Perhaps, but you expensive for this? Perhaps, but you don't need a smarter model. Fable 5 was don't need a smarter model. Fable 5 was don't need a smarter model. Fable 5 was able to do it at this price. So as new able to do it at this price. So as new able to do it at this price. So as new models come out that are just as smart models come out that are just as smart models come out that are just as smart and cheaper, you can still do this for a and cheaper, you can still do this for a and cheaper, you can still do this for a cheaper price. Will there be a new cheaper price. Will there be a new cheaper price. Will there be a new smarter model you want to use for bigger smarter model you want to use for bigger smarter model you want to use for bigger things? Perhaps. Will that model be more things? Perhaps. Will that model be more things? Perhaps. Will that model be more expensive? Probably. But again, that expensive? Probably. But again, that expensive? Probably. But again, that doesn't mean that what we're doing today doesn't mean that what we're doing today doesn't mean that what we're doing today gets more expensive later. If you have a gets more expensive later. If you have a gets more expensive later. If you have a task you can do today with an LLM and task you can do today with an LLM and task you can do today with an LLM and then the same task with the same output then the same task with the same output then the same task with the same output quality next year, on average that gets quality next year, on average that gets quality next year, on average that gets five times cheaper year-over-year. So five times cheaper year-over-year. So five times cheaper year-over-year. So yeah, I I've seen so much dumb yeah, I I've seen so much dumb yeah, I I've seen so much dumb commentary around this number that it's commentary around this number that it's commentary around this number that it's almost enough for me to crash out on almost enough for me to crash out on almost enough for me to crash out on just that. But the dumb things that the just that. But the dumb things that the just that. But the dumb things that the Zigg guy said are stupider. So we're Zigg guy said are stupider. So we're Zigg guy said are stupider. So we're going to go there right after. I like going to go there right after. I like going to go there right after. I like how he describes all of this as well. So how he describes all of this as well. So how he describes all of this as well. So I'll read a bit more of what he said. If I'll read a bit more of what he said. If I'll read a bit more of what he said. If he had three engineers working on this he had three engineers working on this he had three engineers working on this for a year, they wouldn't have been able for a year, they wouldn't have been able for a year, they wouldn't have been able to improve node compatibility, fix bugs, to improve node compatibility, fix bugs, to improve node compatibility, fix bugs, fix security issues, or implement new fix security issues, or implement new fix security issues, or implement new features, they never would have been features, they never would have been features, they never would have been able to sacrifice that. The realistic able to sacrifice that. The realistic able to sacrifice that. The realistic alternative was to do nothing and just alternative was to do nothing and just alternative was to do nothing and just keep fixing bugs at the top of this post keep fixing bugs at the top of this post keep fixing bugs at the top of this post forever. This is the bleeding edge of forever. This is the bleeding edge of forever. This is the bleeding edge of what's possible today. Jared used a what's possible today. Jared used a what's possible today. Jared used a pre-release version of Claude Fable 5, a pre-release version of Claude Fable 5, a pre-release version of Claude Fable 5, a mythos class model. He also used Cloud mythos class model. He also used Cloud mythos class model. He also used Cloud Code's new dynamic workflows, which Code's new dynamic workflows, which Code's new dynamic workflows, which would keep 64 Clouds running for 11 would keep 64 Clouds running for 11 would keep 64 Clouds running for 11 days. He would have had to handwrite his days. He would have had to handwrite his days. He would have had to handwrite his own harness to pull this off otherwise.
-
own harness to pull this off otherwise. own harness to pull this off otherwise. [ __ ] didn't have to. This is why it's [ __ ] didn't have to. This is why it's [ __ ] didn't have to. This is why it's one of the things I've been so positive one of the things I've been so positive one of the things I've been so positive about quad code for. It's a really cool about quad code for. It's a really cool about quad code for. It's a really cool thing. Since merging the Rustport, thing. Since merging the Rustport, thing. Since merging the Rustport, they've done 11 rounds of security they've done 11 rounds of security they've done 11 rounds of security review with the Claude Code Security, review with the Claude Code Security, review with the Claude Code Security, which is the white labeled whitelisted which is the white labeled whitelisted which is the white labeled whitelisted special Claude code that can do security special Claude code that can do security special Claude code that can do security stuff, probably using Methos. They've stuff, probably using Methos. They've stuff, probably using Methos. They've had a 24/7 coverage guided fuzzing on had a 24/7 coverage guided fuzzing on had a 24/7 coverage guided fuzzing on every parser in bun. Only 4% of the code every parser in bun. Only 4% of the code every parser in bun. Only 4% of the code is sitting inside of unsafe blocks. I is sitting inside of unsafe blocks. I is sitting inside of unsafe blocks. I called them out for the unsafe thing called them out for the unsafe thing called them out for the unsafe thing before, but the important piece is that before, but the important piece is that before, but the important piece is that 78% of the blocks are literally just one 78% of the blocks are literally just one 78% of the blocks are literally just one line, usually a pointer that came from line, usually a pointer that came from line, usually a pointer that came from C++ or a call into a C library. The C++ or a call into a C library. The C++ or a call into a C library. The number should go down over time as they number should go down over time as they number should go down over time as they refactor from a faithful Zigg port over refactor from a faithful Zigg port over refactor from a faithful Zigg port over to idiomatic Rust, but they're going to to idiomatic Rust, but they're going to to idiomatic Rust, but they're going to have to keep using the C and C++ have to keep using the C and C++ have to keep using the C and C++ libraries like JSC. So, there will libraries like JSC. So, there will libraries like JSC. So, there will always have to be unsafes, unlike pure always have to be unsafes, unlike pure always have to be unsafes, unlike pure Rust apps. The rewrite only introduced Rust apps. The rewrite only introduced Rust apps. The rewrite only introduced 19 regressions, which is crazy. He says 19 regressions, which is crazy. He says 19 regressions, which is crazy. He says he doesn't say only here, but I will. he doesn't say only here, but I will. he doesn't say only here, but I will. And most of the regressions came from And most of the regressions came from And most of the regressions came from code that's syntactically identical in code that's syntactically identical in code that's syntactically identical in both languages but semantically both languages but semantically both languages but semantically different. He has some cool examples different. He has some cool examples different. He has some cool examples here. Link in the description if you here. Link in the description if you here. Link in the description if you want to see all of these syntax things.
-
want to see all of these syntax things. want to see all of these syntax things. But we're a vibe coding channel now. We But we're a vibe coding channel now. We But we're a vibe coding channel now. We don't read syntax. Joking, but I want to don't read syntax. Joking, but I want to don't read syntax. Joking, but I want to get into the other fun details here. get into the other fun details here. get into the other fun details here. Specifically, the improvements. He fixed Specifically, the improvements. He fixed Specifically, the improvements. He fixed 128 bugs that are still reproducible in 128 bugs that are still reproducible in 128 bugs that are still reproducible in the latest non Rust version back in the latest non Rust version back in the latest non Rust version back in 1314, which is the last Zigg one. They 1314, which is the last Zigg one. They 1314, which is the last Zigg one. They reduced memory usage meaningfully reduced memory usage meaningfully reduced memory usage meaningfully because of the cleaned up uh memory because of the cleaned up uh memory because of the cleaned up uh memory utilization. They fixed every utilization. They fixed every utilization. They fixed every instrumentable memory leak, which is instrumentable memory leak, which is instrumentable memory leak, which is kind of crazy. In bun 1314, this build kind of crazy. In bun 1314, this build kind of crazy. In bun 1314, this build process would slowly leak. So when you process would slowly leak. So when you process would slowly leak. So when you ran up to 2,000 builds, it would have ran up to 2,000 builds, it would have ran up to 2,000 builds, it would have almost 7 gigs of memory leaked. And now almost 7 gigs of memory leaked. And now almost 7 gigs of memory leaked. And now it it leaks a little bit, but way way it it leaks a little bit, but way way it it leaks a little bit, but way way less aggressively. It would only have less aggressively. It would only have less aggressively. It would only have 600 megs, a tenth as much RAM being 600 megs, a tenth as much RAM being 600 megs, a tenth as much RAM being used. The binary is a bit smaller, too, used. The binary is a bit smaller, too, used. The binary is a bit smaller, too, which is cool. Now it's 20% smaller on which is cool. Now it's 20% smaller on which is cool. Now it's 20% smaller on Linux and Windows as a result of other Linux and Windows as a result of other Linux and Windows as a result of other changes they made. It's two to 5% faster changes they made. It's two to 5% faster changes they made. It's two to 5% faster which is pretty cool and it's already which is pretty cool and it's already which is pretty cool and it's already been launched in production by plenty of been launched in production by plenty of been launched in production by plenty of things including cloud code. Prisma things including cloud code. Prisma things including cloud code. Prisma using it with Prisma compute and I using it with Prisma compute and I using it with Prisma compute and I believe those are the only two examples believe those are the only two examples believe those are the only two examples they have here but more coming very they have here but more coming very they have here but more coming very soon. The team says it feels similar to soon. The team says it feels similar to soon. The team says it feels similar to the zig codebase. They show syntax the zig codebase. They show syntax the zig codebase. They show syntax examples so it hasn't been that bad for examples so it hasn't been that bad for examples so it hasn't been that bad for them. Awesome. With one engineer using them. Awesome. With one engineer using them. Awesome. With one engineer using fable and closely monitoring cloud code fable and closely monitoring cloud code fable and closely monitoring cloud code we went from a start to 100% of the test we went from a start to 100% of the test we went from a start to 100% of the test suite passing on all platforms in 11 suite passing on all platforms in 11 suite passing on all platforms in 11 days. One engineer can do a lot more days. One engineer can do a lot more days. One engineer can do a lot more today than they could a year ago. I today than they could a year ago. I today than they could a year ago. I absolutely agree. This is an awesome absolutely agree. This is an awesome absolutely agree. This is an awesome write out up. Shout out to Jared. I am write out up. Shout out to Jared. I am write out up. Shout out to Jared. I am sure nobody has anything stupid or rude sure nobody has anything stupid or rude sure nobody has anything stupid or rude to say about this. How could you to say about this. How could you to say about this. How could you possibly be dumb about something this possibly be dumb about something this possibly be dumb about something this well written? This is going to be fun. I well written? This is going to be fun. I well written? This is going to be fun. I have heard mixed things about Andrew have heard mixed things about Andrew have heard mixed things about Andrew Kelly and I don't like calling out
-
Kelly and I don't like calling out Kelly and I don't like calling out individuals. When you call out my individuals. When you call out my individuals. When you call out my friends, I'm going to read what you have friends, I'm going to read what you have friends, I'm going to read what you have to say and if I have to do it publicly, to say and if I have to do it publicly, to say and if I have to do it publicly, I will. So, here are Andrew Kelly's I will. So, here are Andrew Kelly's I will. So, here are Andrew Kelly's thoughts on the bun rust rewrite. thoughts on the bun rust rewrite. thoughts on the bun rust rewrite. remember creator of Zigg, he has remember creator of Zigg, he has remember creator of Zigg, he has opinions. Let's see what he has to say. opinions. Let's see what he has to say. opinions. Let's see what he has to say. Bun was almost inarguably the biggest Bun was almost inarguably the biggest Bun was almost inarguably the biggest Zigg project and also a pretty heavy Zigg project and also a pretty heavy Zigg project and also a pretty heavy contributor to Zigg both financially and contributor to Zigg both financially and contributor to Zigg both financially and code-wise. And they've had a bit of a code-wise. And they've had a bit of a code-wise. And they've had a bit of a rift. I personally know Jared put a lot rift. I personally know Jared put a lot rift. I personally know Jared put a lot of work into trying to form a proper of work into trying to form a proper of work into trying to form a proper Zigg community in SF and even like Zigg community in SF and even like Zigg community in SF and even like hosting events and things. So, let's hosting events and things. So, let's hosting events and things. So, let's read what he has to say. I'm already read what he has to say. I'm already read what he has to say. I'm already getting mad just skimming. When Jared getting mad just skimming. When Jared getting mad just skimming. When Jared joined the Zig community about 5 years joined the Zig community about 5 years joined the Zig community about 5 years ago, I described him as someone who had ago, I described him as someone who had ago, I described him as someone who had strong beginner energy. Referring to strong beginner energy. Referring to strong beginner energy. Referring to Jared Sumar, one of the best engineers Jared Sumar, one of the best engineers Jared Sumar, one of the best engineers I've ever known, as a beginner or having I've ever known, as a beginner or having I've ever known, as a beginner or having beginner energy in your first sentence beginner energy in your first sentence beginner energy in your first sentence sets up for quite a read, Andrew, sets up for quite a read, Andrew, sets up for quite a read, Andrew, excited for you to call me a JavaScript excited for you to call me a JavaScript excited for you to call me a JavaScript soy boy that has no idea what he's doing soy boy that has no idea what he's doing soy boy that has no idea what he's doing after I give my thoughts. Back to the after I give my thoughts. Back to the after I give my thoughts. Back to the article. He moved fast and tried a lot article. He moved fast and tried a lot article. He moved fast and tried a lot of different stuff, jumping head first of different stuff, jumping head first of different stuff, jumping head first into problems that he was not yet into problems that he was not yet into problems that he was not yet equipped to solve, leading to mediocre equipped to solve, leading to mediocre equipped to solve, leading to mediocre outcomes in terms of engineering, but outcomes in terms of engineering, but outcomes in terms of engineering, but learning a whole heck of a lot in the learning a whole heck of a lot in the learning a whole heck of a lot in the process. I see it as quite a healthy process. I see it as quite a healthy process. I see it as quite a healthy attitude, particularly for young people attitude, particularly for young people attitude, particularly for young people and students. This is the best way to and students. This is the best way to and students. This is the best way to level up and learn new things. This is level up and learn new things. This is level up and learn new things. This is such a pathetic attempt to look nice as such a pathetic attempt to look nice as such a pathetic attempt to look nice as you belittle. We'll see where this goes.
-
you belittle. We'll see where this goes. you belittle. We'll see where this goes. You know, I would think that the You know, I would think that the You know, I would think that the low-level engineering guy would want to low-level engineering guy would want to low-level engineering guy would want to talk about the engineering and not this. talk about the engineering and not this. talk about the engineering and not this. He's trying to make Jared sound like he He's trying to make Jared sound like he He's trying to make Jared sound like he just learned how to code, not like a just learned how to code, not like a just learned how to code, not like a very experienced engineer that we all very experienced engineer that we all very experienced engineer that we all look up to. As Jared focuses efforts on look up to. As Jared focuses efforts on look up to. As Jared focuses efforts on Bun, he began to attract attention. JS Bun, he began to attract attention. JS Bun, he began to attract attention. JS being the most popular programming being the most popular programming being the most popular programming language in the world, there are a lot language in the world, there are a lot language in the world, there are a lot of potential eyeballs on a promising new of potential eyeballs on a promising new of potential eyeballs on a promising new tool chain. The attention could have tool chain. The attention could have tool chain. The attention could have been harnessed in a few different ways. been harnessed in a few different ways. been harnessed in a few different ways. For example, he could have easily For example, he could have easily For example, he could have easily achieved a solid living via achieved a solid living via achieved a solid living via crowdfunding, even for San Francisco crowdfunding, even for San Francisco crowdfunding, even for San Francisco standards. You guys have any good standards. You guys have any good standards. You guys have any good examples of popular things that are examples of popular things that are examples of popular things that are crowdfunded? Because I have a few. crowdfunded? Because I have a few. crowdfunded? Because I have a few. Here's E18E, a very beloved thing in the Here's E18E, a very beloved thing in the Here's E18E, a very beloved thing in the JavaScript ecosystem. It's the ecosystem JavaScript ecosystem. It's the ecosystem JavaScript ecosystem. It's the ecosystem performance group. These guys look performance group. These guys look performance group. These guys look through all of the packages we use and through all of the packages we use and through all of the packages we use and find dead or undermaintained find dead or undermaintained find dead or undermaintained dependencies in our tool chain. They are dependencies in our tool chain. They are dependencies in our tool chain. They are so goddamn important and I have poured so goddamn important and I have poured so goddamn important and I have poured quite a bit of money into supporting quite a bit of money into supporting quite a bit of money into supporting them because again they need to be them because again they need to be them because again they need to be successful. They need to do well. For successful. They need to do well. For successful. They need to do well. For reference, they have raised a total of reference, they have raised a total of reference, they have raised a total of $20,000.
-
$20,000. $20,000. $20,000 $20,000 $20,000 total from sponsorships, crowdfunding, total from sponsorships, crowdfunding, total from sponsorships, crowdfunding, and individuals donating, including and individuals donating, including and individuals donating, including individuals like the Chrome team individuals like the Chrome team individuals like the Chrome team donating 10 grand and myself donating donating 10 grand and myself donating donating 10 grand and myself donating five. And this is one of the most five. And this is one of the most five. And this is one of the most important things in the JS ecosystem. 20 important things in the JS ecosystem. 20 important things in the JS ecosystem. 20 grand. I'm sure that's enough to fund grand. I'm sure that's enough to fund grand. I'm sure that's enough to fund the SF standards. [ __ ] delusional. the SF standards. [ __ ] delusional. the SF standards. [ __ ] delusional. Absolutely delusional. This is somebody Absolutely delusional. This is somebody Absolutely delusional. This is somebody who doesn't understand how little money who doesn't understand how little money who doesn't understand how little money there is in donating to open source there is in donating to open source there is in donating to open source [ __ ] And now we get to where this [ __ ] And now we get to where this [ __ ] And now we get to where this starts being very dirty. Having starts being very dirty. Having starts being very dirty. Having graduated from the Teal Fellowship graduated from the Teal Fellowship graduated from the Teal Fellowship School of Thought rather than School of Thought rather than School of Thought rather than university, he was essentially groomed university, he was essentially groomed university, he was essentially groomed from a young age into uncritically from a young age into uncritically from a young age into uncritically embracing the Silicon Valley mindset. embracing the Silicon Valley mindset. embracing the Silicon Valley mindset. and he took venture capital. I wonder if and he took venture capital. I wonder if and he took venture capital. I wonder if somebody has a bone to pick. I can say somebody has a bone to pick. I can say somebody has a bone to pick. I can say pretty confidently that everyone who is pretty confidently that everyone who is pretty confidently that everyone who is currently betting on Zigg should currently betting on Zigg should currently betting on Zigg should reconsider because the guy who makes reconsider because the guy who makes reconsider because the guy who makes your language might crash the [ __ ] out your language might crash the [ __ ] out your language might crash the [ __ ] out at you for no good reason. From the at you for no good reason. From the at you for no good reason. From the beginning, Jared was appreciative beginning, Jared was appreciative beginning, Jared was appreciative towards the Zigg project. He credited towards the Zigg project. He credited towards the Zigg project. He credited Zigg on the Bun website for the Zigg on the Bun website for the Zigg on the Bun website for the project's performance achievements. He project's performance achievements. He project's performance achievements. He sent monthly donations to the Zig sent monthly donations to the Zig sent monthly donations to the Zig software foundation that amounted to 60 software foundation that amounted to 60 software foundation that amounted to 60 grand per year. Remember that thing I grand per year. Remember that thing I grand per year. Remember that thing I said about donations just a minute ago?
-
said about donations just a minute ago? said about donations just a minute ago? The total budget for E18E, by the way, The total budget for E18E, by the way, The total budget for E18E, by the way, link in the description. You should link in the description. You should link in the description. You should donate to these guys. They're really donate to these guys. They're really donate to these guys. They're really important. Was a third of how much Bun important. Was a third of how much Bun important. Was a third of how much Bun was donating just to Zigg. So, the Zigg was donating just to Zigg. So, the Zigg was donating just to Zigg. So, the Zigg Foundation was getting three times more Foundation was getting three times more Foundation was getting three times more money than one of the most important money than one of the most important money than one of the most important JavaScript foundations I can think of JavaScript foundations I can think of JavaScript foundations I can think of because he raised VC money to use for because he raised VC money to use for because he raised VC money to use for things like hiring engineers and things like hiring engineers and things like hiring engineers and donating to the language foundation. donating to the language foundation. donating to the language foundation. According to our friend Andrew, he According to our friend Andrew, he According to our friend Andrew, he didn't have to do either of those didn't have to do either of those didn't have to do either of those things, but he chose to, and it was things, but he chose to, and it was things, but he chose to, and it was pretty cool of him. Even in his blog pretty cool of him. Even in his blog pretty cool of him. Even in his blog post that's being referenced here about post that's being referenced here about post that's being referenced here about the rewrite, he expresses what is the rewrite, he expresses what is the rewrite, he expresses what is perceived to be sincere gratitude perceived to be sincere gratitude perceived to be sincere gratitude towards the Zigg project. It is sincere. towards the Zigg project. It is sincere. towards the Zigg project. It is sincere. However, once Bun became a VC backed However, once Bun became a VC backed However, once Bun became a VC backed startup, he started racing towards the startup, he started racing towards the startup, he started racing towards the finish line. This is so obvious that you finish line. This is so obvious that you finish line. This is so obvious that you do not know Jared at all or you're do not know Jared at all or you're do not know Jared at all or you're willfully trying to misrepresent him willfully trying to misrepresent him willfully trying to misrepresent him that it's crazy. Jared's whole thing that it's crazy. Jared's whole thing that it's crazy. Jared's whole thing from day zero, from when I first met from day zero, from when I first met from day zero, from when I first met him, was pushing to 11, going way harder him, was pushing to 11, going way harder him, was pushing to 11, going way harder and way further than any human should, and way further than any human should, and way further than any human should, contributing on GitHub so much that the contributing on GitHub so much that the contributing on GitHub so much that the one day he didn't have any commits was one day he didn't have any commits was one day he didn't have any commits was suspicious, got called out by Dax, and suspicious, got called out by Dax, and suspicious, got called out by Dax, and turned out to be the day he was turned out to be the day he was turned out to be the day he was discussing the acquisition. This is a discussing the acquisition. This is a discussing the acquisition. This is a person who doesn't know how to not race.
-
person who doesn't know how to not race. person who doesn't know how to not race. He's either not moving, which means he's He's either not moving, which means he's He's either not moving, which means he's asleep, or he is going to like asleep, or he is going to like asleep, or he is going to like unbelievable speeds to get wherever he unbelievable speeds to get wherever he unbelievable speeds to get wherever he is trying to. Trying to accuse him of is trying to. Trying to accuse him of is trying to. Trying to accuse him of doing this cuz he's VCbacked instead of doing this cuz he's VCbacked instead of doing this cuz he's VCbacked instead of him just being like this means you don't him just being like this means you don't him just being like this means you don't know jack [ __ ] [ __ ] about Jared and know jack [ __ ] [ __ ] about Jared and know jack [ __ ] [ __ ] about Jared and you better shut your goddamn mouth. Now, you better shut your goddamn mouth. Now, you better shut your goddamn mouth. Now, instead of working on free and open- instead of working on free and open- instead of working on free and open- source projects, learning and growing source projects, learning and growing source projects, learning and growing with the community, Jared was running a with the community, Jared was running a with the community, Jared was running a business. No, this is just how he does business. No, this is just how he does business. No, this is just how he does things. Remember earlier when you said things. Remember earlier when you said things. Remember earlier when you said that he moves fast and tries a lot of that he moves fast and tries a lot of that he moves fast and tries a lot of different stuff, jumping head first into different stuff, jumping head first into different stuff, jumping head first into problems? Seems like you know this trait problems? Seems like you know this trait problems? Seems like you know this trait of his and instead of acknowledging this of his and instead of acknowledging this of his and instead of acknowledging this trait of his, you're trying to trait of his, you're trying to trait of his, you're trying to dishonestly represent him as other dishonestly represent him as other dishonestly represent him as other because he was successful and raised because he was successful and raised because he was successful and raised money. You're mad at him for doing what money. You're mad at him for doing what money. You're mad at him for doing what it took to be successful in the space it took to be successful in the space it took to be successful in the space because he will do whatever it takes to because he will do whatever it takes to because he will do whatever it takes to make his [ __ ] happen because that's how make his [ __ ] happen because that's how make his [ __ ] happen because that's how Jared is. It was at the point where he Jared is. It was at the point where he Jared is. It was at the point where he suddenly became a manager that the suddenly became a manager that the suddenly became a manager that the beginner energy started to hit beginner energy started to hit beginner energy started to hit differently. It's one thing to choose a differently. It's one thing to choose a differently. It's one thing to choose a poor work life balance, a different poor work life balance, a different poor work life balance, a different thing entirely to demand it of others.
-
thing entirely to demand it of others. thing entirely to demand it of others. This is him [ __ ] on the Jared post This is him [ __ ] on the Jared post This is him [ __ ] on the Jared post where he said that like working at Bun where he said that like working at Bun where he said that like working at Bun isn't going to be a nice 40hour work isn't going to be a nice 40hour work isn't going to be a nice 40hour work week with long vacations that he was week with long vacations that he was week with long vacations that he was grinding and he wanted others that would grinding and he wanted others that would grinding and he wanted others that would grind with him. And here I'll say a few grind with him. And here I'll say a few grind with him. And here I'll say a few things. First and foremost, as much as I things. First and foremost, as much as I things. First and foremost, as much as I love Jared, he isn't a great manager. I love Jared, he isn't a great manager. I love Jared, he isn't a great manager. I talked to a lot of his team and we would talked to a lot of his team and we would talked to a lot of his team and we would have to find ways to convince Jared of have to find ways to convince Jared of have to find ways to convince Jared of important things that varied wildly in important things that varied wildly in important things that varied wildly in our implementation methods. I have had our implementation methods. I have had our implementation methods. I have had videos I put out about Bun that weren't videos I put out about Bun that weren't videos I put out about Bun that weren't really because I wanted to do a video on really because I wanted to do a video on really because I wanted to do a video on Bun. They were attempts to help the team Bun. They were attempts to help the team Bun. They were attempts to help the team leverage important points against Jared leverage important points against Jared leverage important points against Jared so the business would be more successful so the business would be more successful so the business would be more successful and Bun would be more likely to win. and Bun would be more likely to win. and Bun would be more likely to win. Sometimes you have to engineer a person Sometimes you have to engineer a person Sometimes you have to engineer a person like Jared into the right box to do the like Jared into the right box to do the like Jared into the right box to do the right thing. And that's just how it is. right thing. And that's just how it is. right thing. And that's just how it is. I know I am this way too. I know my team I know I am this way too. I know my team I know I am this way too. I know my team has a weekly meeting where they all talk has a weekly meeting where they all talk has a weekly meeting where they all talk without me on how they can sigh up me without me on how they can sigh up me without me on how they can sigh up me into doing the things I'm supposed to into doing the things I'm supposed to into doing the things I'm supposed to do. That's just reality. Another part of do. That's just reality. Another part of do. That's just reality. Another part of this reality is that Jared is really this reality is that Jared is really this reality is that Jared is really hard to work with if you take a lot of hard to work with if you take a lot of hard to work with if you take a lot of breaks. You could take a weekend off and breaks. You could take a weekend off and breaks. You could take a weekend off and when you come back the project's been when you come back the project's been when you come back the project's been rewritten in Rust. Like that's just how rewritten in Rust. Like that's just how rewritten in Rust. Like that's just how he is. And if you're not trying to work he is. And if you're not trying to work he is. And if you're not trying to work at that level, you shouldn't. And rather at that level, you shouldn't. And rather at that level, you shouldn't. And rather than pretend or build a workplace he than pretend or build a workplace he than pretend or build a workplace he doesn't want to work in, he just said doesn't want to work in, he just said doesn't want to work in, he just said upfront what it's like. And if you think upfront what it's like. And if you think upfront what it's like. And if you think this is a unique to bun thing that a this is a unique to bun thing that a this is a unique to bun thing that a team formed by a person who works 80 to team formed by a person who works 80 to team formed by a person who works 80 to 90 hours a week wants people who work at 90 hours a week wants people who work at 90 hours a week wants people who work at least 50 hours a week. If you think that least 50 hours a week. If you think that least 50 hours a week. If you think that is crazy, there are much crazier things is crazy, there are much crazier things is crazy, there are much crazier things I would have to show you in the city, I would have to show you in the city, I would have to show you in the city, including but not limited to someone
-
including but not limited to someone including but not limited to someone coming for a oneweek trial, staying at coming for a oneweek trial, staying at coming for a oneweek trial, staying at the office, and then not being allowed the office, and then not being allowed the office, and then not being allowed to leave at risk of losing their dream to leave at risk of losing their dream to leave at risk of losing their dream job for 6 months to a year living in the job for 6 months to a year living in the job for 6 months to a year living in the office on an air mattress. I had other office on an air mattress. I had other office on an air mattress. I had other examples, but honestly, I think I'm just examples, but honestly, I think I'm just examples, but honestly, I think I'm just going to leave it at that because I going to leave it at that because I going to leave it at that because I don't want to get in too much trouble. don't want to get in too much trouble. don't want to get in too much trouble. And the amount of these types of things And the amount of these types of things And the amount of these types of things I know of is insane. Jared was one of I know of is insane. Jared was one of I know of is insane. Jared was one of the better people to work for. His the better people to work for. His the better people to work for. His employees all love him, even when they employees all love him, even when they employees all love him, even when they are frustrated with him and his are frustrated with him and his are frustrated with him and his admittedly narrowfocused lockin mindset. admittedly narrowfocused lockin mindset. admittedly narrowfocused lockin mindset. But the godamn guy was transparent about But the godamn guy was transparent about But the godamn guy was transparent about this, and I don't think it's fair to this, and I don't think it's fair to this, and I don't think it's fair to fault him for it. You even quoted him fault him for it. You even quoted him fault him for it. You even quoted him here, and I don't think this quote's here, and I don't think this quote's here, and I don't think this quote's that bad, especially in retrospect. that bad, especially in retrospect. that bad, especially in retrospect. oven, which is the company that makes oven, which is the company that makes oven, which is the company that makes bun, is going to be a grind, especially bun, is going to be a grind, especially bun, is going to be a grind, especially the first nine months or so. If work the first nine months or so. If work the first nine months or so. If work life balance means a lot of time spent life balance means a lot of time spent life balance means a lot of time spent not working, this probably isn't a good not working, this probably isn't a good not working, this probably isn't a good fit. Entirely realistic. Fun fact, fit. Entirely realistic. Fun fact, fit. Entirely realistic. Fun fact, people talk to each other. You're right people talk to each other. You're right people talk to each other. You're right about that, Andrew. And some of those about that, Andrew. And some of those about that, Andrew. And some of those people have an audience like I do. And people have an audience like I do. And people have an audience like I do. And now they're all going to talk about you now they're all going to talk about you now they're all going to talk about you and how much of a [ __ ] you are. He and how much of a [ __ ] you are. He and how much of a [ __ ] you are. He talked to those who interviewed for a talked to those who interviewed for a talked to those who interviewed for a job at Oven. He talked to people who job at Oven. He talked to people who job at Oven. He talked to people who worked there. Those people talked to worked there. Those people talked to worked there. Those people talked to each other. Everybody talked to each other. Everybody talked to each other. Everybody talked to everybody. The grape vine was large and everybody. The grape vine was large and everybody. The grape vine was large and healthy and full of juicy grapes. And healthy and full of juicy grapes. And healthy and full of juicy grapes. And all of those grapes contained the juice all of those grapes contained the juice all of those grapes contained the juice of the same message. Jared was a stinky of the same message. Jared was a stinky of the same message. Jared was a stinky manager. Poor communication, unrealistic manager. Poor communication, unrealistic manager. Poor communication, unrealistic expectations, low empathy, no expectations, low empathy, no expectations, low empathy, no experience. Just a total shitow from an experience. Just a total shitow from an experience. Just a total shitow from an employment perspective. If you think employment perspective. If you think employment perspective. If you think that is a total shitow, you have never that is a total shitow, you have never that is a total shitow, you have never had a manager, much less a bad one.
-
had a manager, much less a bad one. had a manager, much less a bad one. Jared was far from a great manager. I Jared was far from a great manager. I Jared was far from a great manager. I have said as much. I have told him as have said as much. I have told him as have said as much. I have told him as much. I have said as much here. But you much. I have said as much here. But you much. I have said as much here. But you don't join Jared's team expecting a don't join Jared's team expecting a don't join Jared's team expecting a great manager. You join Jared's team great manager. You join Jared's team great manager. You join Jared's team expecting a highly motivated, incredibly expecting a highly motivated, incredibly expecting a highly motivated, incredibly talented person that is next to you as talented person that is next to you as talented person that is next to you as you do crazy [ __ ] and get pushed harder you do crazy [ __ ] and get pushed harder you do crazy [ __ ] and get pushed harder and harder. It's also worth noting very and harder. It's also worth noting very and harder. It's also worth noting very few people left Oven at any point other few people left Oven at any point other few people left Oven at any point other than the acquisition, which inherently than the acquisition, which inherently than the acquisition, which inherently came with like a slight trim. That is came with like a slight trim. That is came with like a slight trim. That is how it is. All the people who didn't how it is. All the people who didn't how it is. All the people who didn't make it over with that got really really make it over with that got really really make it over with that got really really generous severance. Consequently, generous severance. Consequently, generous severance. Consequently, although Zigg community members were although Zigg community members were although Zigg community members were eager to find work coding in Zigg on the eager to find work coding in Zigg on the eager to find work coding in Zigg on the clock, most of the talent pool steered clock, most of the talent pool steered clock, most of the talent pool steered clear of Oven and Bun. Huh. I wonder if clear of Oven and Bun. Huh. I wonder if clear of Oven and Bun. Huh. I wonder if that's because Jared is a really bad that's because Jared is a really bad that's because Jared is a really bad manager, as you say. Or perhaps the manager, as you say. Or perhaps the manager, as you say. Or perhaps the people who you think of as the Zigg people who you think of as the Zigg people who you think of as the Zigg community are the people that you community are the people that you community are the people that you haven't scared off who are all [ __ ] haven't scared off who are all [ __ ] haven't scared off who are all [ __ ] like yourself. Sorry for getting so like yourself. Sorry for getting so like yourself. Sorry for getting so heated about this, but this is the worst heated about this, but this is the worst heated about this, but this is the worst thing I've read in a long ass time.
-
thing I've read in a long ass time. thing I've read in a long ass time. Apparently, a rift between Zigg and Apparently, a rift between Zigg and Apparently, a rift between Zigg and Jared started to widen. His singular Jared started to widen. His singular Jared started to widen. His singular focus on productivity and his startup's focus on productivity and his startup's focus on productivity and his startup's exit strategy was increasingly at odds exit strategy was increasingly at odds exit strategy was increasingly at odds with his long-term vision for the Zigg with his long-term vision for the Zigg with his long-term vision for the Zigg project. He wasn't looking for an exit project. He wasn't looking for an exit project. He wasn't looking for an exit strategy, [ __ ] He was trying to strategy, [ __ ] He was trying to strategy, [ __ ] He was trying to make Bun production ready. I'm sorry make Bun production ready. I'm sorry make Bun production ready. I'm sorry that not everybody is making their that not everybody is making their that not everybody is making their language to toy around and write [ __ ] language to toy around and write [ __ ] language to toy around and write [ __ ] posts online for. And some people made posts online for. And some people made posts online for. And some people made the mistake of trying to use your the mistake of trying to use your the mistake of trying to use your language for the real [ __ ] world. language for the real [ __ ] world. language for the real [ __ ] world. Lesson learned. If anyone's building Lesson learned. If anyone's building Lesson learned. If anyone's building anything real, they probably shouldn't anything real, they probably shouldn't anything real, they probably shouldn't use Zigg because if you ever want your use Zigg because if you ever want your use Zigg because if you ever want your thing to be used in businesses by real thing to be used in businesses by real thing to be used in businesses by real people, you're just trying to find an people, you're just trying to find an people, you're just trying to find an exit strategy. Jesus [ __ ] Christ. I exit strategy. Jesus [ __ ] Christ. I exit strategy. Jesus [ __ ] Christ. I remember he kept nagging me to drop my remember he kept nagging me to drop my remember he kept nagging me to drop my other priorities and work on a language other priorities and work on a language other priorities and work on a language server protocol implementation and a VS server protocol implementation and a VS server protocol implementation and a VS Code integration while I had bigger Code integration while I had bigger Code integration while I had bigger plans. What were your bigger plans that plans. What were your bigger plans that plans. What were your bigger plans that are more important than your language are more important than your language are more important than your language working and providing feedback? Are you working and providing feedback? Are you working and providing feedback? Are you joking? This dude's never worked before. joking? This dude's never worked before. joking? This dude's never worked before. Yep. I cannot imagine this guy's ever Yep. I cannot imagine this guy's ever Yep. I cannot imagine this guy's ever had a real job. This is the most had a real job. This is the most had a real job. This is the most embarrassing thing I've ever seen.
-
embarrassing thing I've ever seen. embarrassing thing I've ever seen. Notice how he hasn't said a single Notice how he hasn't said a single Notice how he hasn't said a single technical thing yet. Not one. technical thing yet. Not one. technical thing yet. Not one. Apparently, we're finally about to. Apparently, we're finally about to. Apparently, we're finally about to. After all of that, we're going to start After all of that, we're going to start After all of that, we're going to start talking about code quality. The Zigg talking about code quality. The Zigg talking about code quality. The Zigg team regularly checks in on our users team regularly checks in on our users team regularly checks in on our users projects. We read source code to find projects. We read source code to find projects. We read source code to find out how the language is affecting users. out how the language is affecting users. out how the language is affecting users. We test changes to see how problematic We test changes to see how problematic We test changes to see how problematic breakage might be. And we check for breakage might be. And we check for breakage might be. And we check for performance regressions. We became performance regressions. We became performance regressions. We became increasingly horrified at the increasingly horrified at the increasingly horrified at the programming practices we saw in the bun programming practices we saw in the bun programming practices we saw in the bun code bases. Hacks on top of hacks. Abuse code bases. Hacks on top of hacks. Abuse code bases. Hacks on top of hacks. Abuse of assertions. This is an article he of assertions. This is an article he of assertions. This is an article he linked from another dev about how linked from another dev about how linked from another dev about how asserts are bad. This is one of those asserts are bad. This is one of those asserts are bad. This is one of those like personal back and forth. I know like personal back and forth. I know like personal back and forth. I know some really smart engineers that think some really smart engineers that think some really smart engineers that think asserts are awesome. We should use them asserts are awesome. We should use them asserts are awesome. We should use them for everything. If I recall, Primagen for everything. If I recall, Primagen for everything. If I recall, Primagen leans that direction. He really likes leans that direction. He really likes leans that direction. He really likes asserts than other engineers who asserts than other engineers who asserts than other engineers who absolutely hate them. But if you're absolutely hate them. But if you're absolutely hate them. But if you're citing that as abuse when it's clearly a citing that as abuse when it's clearly a citing that as abuse when it's clearly a difference in opinion, [ __ ] yourself. difference in opinion, [ __ ] yourself. difference in opinion, [ __ ] yourself. Most of all, recklessly speeding past Most of all, recklessly speeding past Most of all, recklessly speeding past feature after feature with very little feature after feature with very little feature after feature with very little time taken for reflection and time taken for reflection and time taken for reflection and elimination of bugs and technical debt. elimination of bugs and technical debt. elimination of bugs and technical debt. Jared was already writing slop well Jared was already writing slop well Jared was already writing slop well before he had access to LLMs.
-
before he had access to LLMs. before he had access to LLMs. Cheers, Jared. Makes the two of us. Now, Cheers, Jared. Makes the two of us. Now, Cheers, Jared. Makes the two of us. Now, it's not our business to police what our it's not our business to police what our it's not our business to police what our users do. But you may have noticed users do. But you may have noticed users do. But you may have noticed people screaming in our faces about people screaming in our faces about people screaming in our faces about memory safety constantly. You can memory safety constantly. You can memory safety constantly. You can imagine how we might want to put some imagine how we might want to put some imagine how we might want to put some social distance between ourselves and a social distance between ourselves and a social distance between ourselves and a project whose irresponsible software project whose irresponsible software project whose irresponsible software engineering practices invite the exact engineering practices invite the exact engineering practices invite the exact kind of criticism that people are eager kind of criticism that people are eager kind of criticism that people are eager to level. We made futile attempts to to level. We made futile attempts to to level. We made futile attempts to guide them towards better programming guide them towards better programming guide them towards better programming practices. There were a few exceptional practices. There were a few exceptional practices. There were a few exceptional heroes who did their very best at a heroes who did their very best at a heroes who did their very best at a dysfunctional company. You know who you dysfunctional company. You know who you dysfunctional company. You know who you are, but you can't stop a rising tide. are, but you can't stop a rising tide. are, but you can't stop a rising tide. By this time, we all felt at the Zig By this time, we all felt at the Zig By this time, we all felt at the Zig Foundation that Bun was a net liability, Foundation that Bun was a net liability, Foundation that Bun was a net liability, and this was before Robo Bun became the and this was before Robo Bun became the and this was before Robo Bun became the number one contributor. Robo Bun is the number one contributor. Robo Bun is the number one contributor. Robo Bun is the bot that Jared made using Claude. This bot that Jared made using Claude. This bot that Jared made using Claude. This is just a hate piece. Along with the is just a hate piece. Along with the is just a hate piece. Along with the discomfort of the publicly presumed discomfort of the publicly presumed discomfort of the publicly presumed poster child for Zig's programming poster child for Zig's programming poster child for Zig's programming language, actually being the prime language, actually being the prime language, actually being the prime example of how not to write Zigg code, example of how not to write Zigg code, example of how not to write Zigg code, at some point they would sell out. Let's at some point they would sell out. Let's at some point they would sell out. Let's be honest, the vague sell some cloud be honest, the vague sell some cloud be honest, the vague sell some cloud something business plan was a farce from something business plan was a farce from something business plan was a farce from the get-go. No, it wasn't. they just the get-go. No, it wasn't. they just the get-go. No, it wasn't. they just needed to figure out how to do it. We needed to figure out how to do it. We needed to figure out how to do it. We would receive some negative publicity by would receive some negative publicity by would receive some negative publicity by proxy and we'd stop getting that regular proxy and we'd stop getting that regular proxy and we'd stop getting that regular donation. So when the anthropic donation. So when the anthropic donation. So when the anthropic acquisition finally happened, we at the acquisition finally happened, we at the acquisition finally happened, we at the Zigg Foundation breathed the sigh of Zigg Foundation breathed the sigh of Zigg Foundation breathed the sigh of relief. When the donation silently relief. When the donation silently relief. When the donation silently stopped, our bank account was ready for stopped, our bank account was ready for stopped, our bank account was ready for it. Probably because you somehow conned it. Probably because you somehow conned it. Probably because you somehow conned [ __ ] Mitchell to donating $400,000 to [ __ ] Mitchell to donating $400,000 to [ __ ] Mitchell to donating $400,000 to your [ __ ] foundation. I hope he your [ __ ] foundation. I hope he your [ __ ] foundation. I hope he reconsiders in the future. The rewriting reconsiders in the future. The rewriting reconsiders in the future. The rewriting was on the wall. Even within a couple was on the wall. Even within a couple was on the wall. Even within a couple days, we already suspected a Rust days, we already suspected a Rust days, we already suspected a Rust rewrite was coming and we were rooting rewrite was coming and we were rooting rewrite was coming and we were rooting for it. The acquisition by a large AI
-
for it. The acquisition by a large AI for it. The acquisition by a large AI company was a burden because even the company was a burden because even the company was a burden because even the indirect connection of Claude being indirect connection of Claude being indirect connection of Claude being written and bun being written in Zigg written and bun being written in Zigg written and bun being written in Zigg caused not only a surge of driveby slop caused not only a surge of driveby slop caused not only a surge of driveby slop contributions, but also an influx of contributions, but also an influx of contributions, but also an influx of tasteless AI enthusiasts into the Zigg tasteless AI enthusiasts into the Zigg tasteless AI enthusiasts into the Zigg communities who had to be informed that communities who had to be informed that communities who had to be informed that its antisocial to paste LLM outputs into its antisocial to paste LLM outputs into its antisocial to paste LLM outputs into forum posts. For a moment, I feared forum posts. For a moment, I feared forum posts. For a moment, I feared Zigg's identity would become known Zigg's identity would become known Zigg's identity would become known colloquially as a programming language colloquially as a programming language colloquially as a programming language associated with AI. This is a guy that associated with AI. This is a guy that associated with AI. This is a guy that hates having users. He wants to run hates having users. He wants to run hates having users. He wants to run around in circles with nobody touching around in circles with nobody touching around in circles with nobody touching his [ __ ] and gets mad at you for using his [ __ ] and gets mad at you for using his [ __ ] and gets mad at you for using them. This is the end of the [ __ ] them. This is the end of the [ __ ] them. This is the end of the [ __ ] language. I've never seen anything like language. I've never seen anything like language. I've never seen anything like this in my life. When Jared announced this in my life. When Jared announced this in my life. When Jared announced the Rust rewrite, we were ecstatic. It the Rust rewrite, we were ecstatic. It the Rust rewrite, we were ecstatic. It seemed too good to be true. I have to seemed too good to be true. I have to seemed too good to be true. I have to admit, I didn't think the technology was admit, I didn't think the technology was admit, I didn't think the technology was there to pull off this stunt. This there to pull off this stunt. This there to pull off this stunt. This stunt. But he did it. And now I'm stunt. But he did it. And now I'm stunt. But he did it. And now I'm metaphorically sipping delicious tea metaphorically sipping delicious tea metaphorically sipping delicious tea from a mug that says it tastes like it's from a mug that says it tastes like it's from a mug that says it tastes like it's not my problem anymore. Seems like not my problem anymore. Seems like not my problem anymore. Seems like you're a little salty, [ __ ] The you're a little salty, [ __ ] The you're a little salty, [ __ ] The blog post is expertly written. It's blog post is expertly written. It's blog post is expertly written. It's almost like the marketing department of almost like the marketing department of almost like the marketing department of a trillion dollar company has a lot of a trillion dollar company has a lot of a trillion dollar company has a lot of money writing on it. No, Jared is just a money writing on it. No, Jared is just a money writing on it. No, Jared is just a slow writer and he put a lot of time slow writer and he put a lot of time slow writer and he put a lot of time into writing it. He has some bones to into writing it. He has some bones to into writing it. He has some bones to pick. What a surprise. The the king of pick. What a surprise. The the king of pick. What a surprise. The the king of picking bones has a bone to pick. It's a picking bones has a bone to pick. It's a picking bones has a bone to pick. It's a dichotomy being presented here where you dichotomy being presented here where you dichotomy being presented here where you have to either choose a style guide or a have to either choose a style guide or a have to either choose a style guide or a programming language feature in order to programming language feature in order to programming language feature in order to avoid bugs. The slight of hand avoid bugs. The slight of hand avoid bugs. The slight of hand misdirects the reader away from the main misdirects the reader away from the main misdirects the reader away from the main way bugs are eliminated by dedicating way bugs are eliminated by dedicating way bugs are eliminated by dedicating engineering resources to it. Yeah, I'm engineering resources to it. Yeah, I'm engineering resources to it. Yeah, I'm sure for you going from three unpaid sure for you going from three unpaid sure for you going from three unpaid volunteers to four is not a big deal.
-
volunteers to four is not a big deal. volunteers to four is not a big deal. But for a realworld project, which I'm But for a realworld project, which I'm But for a realworld project, which I'm sure you're not super familiar with, sure you're not super familiar with, sure you're not super familiar with, things are a little different, Andrew. things are a little different, Andrew. things are a little different, Andrew. You're going to be belittling I will You're going to be belittling I will You're going to be belittling I will too. You sound like somebody who's never too. You sound like somebody who's never too. You sound like somebody who's never worked on a team for longer than a week worked on a team for longer than a week worked on a team for longer than a week because they can't stand working with because they can't stand working with because they can't stand working with you. And when you get [ __ ] fired, the you. And when you get [ __ ] fired, the you. And when you get [ __ ] fired, the response you have is, "Well, they just response you have is, "Well, they just response you have is, "Well, they just didn't see my genius." [ __ ] insane. I didn't see my genius." [ __ ] insane. I didn't see my genius." [ __ ] insane. I hate that you and I are both on the same hate that you and I are both on the same hate that you and I are both on the same side with the Codeberg things. I love side with the Codeberg things. I love side with the Codeberg things. I love Codeberg, and I really hope they don't Codeberg, and I really hope they don't Codeberg, and I really hope they don't get stuck dealing with your [ __ ] Quite get stuck dealing with your [ __ ] Quite get stuck dealing with your [ __ ] Quite simply, Tiger Beetle put in the time to simply, Tiger Beetle put in the time to simply, Tiger Beetle put in the time to find and eliminate bugs. They made an find and eliminate bugs. They made an find and eliminate bugs. They made an effort to maintain a healthy effort to maintain a healthy effort to maintain a healthy relationship with the Zig Foundation, relationship with the Zig Foundation, relationship with the Zig Foundation, and Bun did neither of those things. Are and Bun did neither of those things. Are and Bun did neither of those things. Are we talking about the same blog post? we talking about the same blog post? we talking about the same blog post? talking about the same bun, the one that talking about the same bun, the one that talking about the same bun, the one that donated a bunch of money to you that donated a bunch of money to you that donated a bunch of money to you that glazed the [ __ ] out of you at the top of glazed the [ __ ] out of you at the top of glazed the [ __ ] out of you at the top of the article and also showed all the bugs the article and also showed all the bugs the article and also showed all the bugs they are currently fixing. Jared has they are currently fixing. Jared has they are currently fixing. Jared has personally fixed more bugs in any given personally fixed more bugs in any given personally fixed more bugs in any given year than you have in your goddamn life. year than you have in your goddamn life. year than you have in your goddamn life. The argument for shipping all the The argument for shipping all the The argument for shipping all the million lines of unreed code is that the million lines of unreed code is that the million lines of unreed code is that the test suite is good enough to catch test suite is good enough to catch test suite is good enough to catch everything. Then why are you saying you everything. Then why are you saying you everything. Then why are you saying you have so many annoying bugs in the Zig have so many annoying bugs in the Zig have so many annoying bugs in the Zig codebase? Okay, I have a lesson for you, codebase? Okay, I have a lesson for you, codebase? Okay, I have a lesson for you, Andrew. It is lesson time. We get to Andrew. It is lesson time. We get to Andrew. It is lesson time. We get to learn together. There are many types of learn together. There are many types of learn together. There are many types of bugs. I know this is crazy to you bugs. I know this is crazy to you bugs. I know this is crazy to you because you only think of two bugs. You because you only think of two bugs. You because you only think of two bugs. You think of bugs in software and your think of bugs in software and your think of bugs in software and your users, which to you are also insects.
-
users, which to you are also insects. users, which to you are also insects. But to the rest of the world, there's But to the rest of the world, there's But to the rest of the world, there's lots of different ways software can lots of different ways software can lots of different ways software can break. Sometimes it breaks in a way that break. Sometimes it breaks in a way that break. Sometimes it breaks in a way that is verifiable via a test. Other times it is verifiable via a test. Other times it is verifiable via a test. Other times it breaks in ways that are harder to breaks in ways that are harder to breaks in ways that are harder to verify, like in a longunning process, verify, like in a longunning process, verify, like in a longunning process, the memory leaks, which you wouldn't the memory leaks, which you wouldn't the memory leaks, which you wouldn't understand because you're not using your understand because you're not using your understand because you're not using your code to do anything [ __ ] real at all. code to do anything [ __ ] real at all. code to do anything [ __ ] real at all. Meanwhile, we have real production Meanwhile, we have real production Meanwhile, we have real production servers running Bun for months at a time servers running Bun for months at a time servers running Bun for months at a time that actually get hurt by these memory that actually get hurt by these memory that actually get hurt by these memory leaks. You seem to think if a team only leaks. You seem to think if a team only leaks. You seem to think if a team only hires extraordinary engineers, which you hires extraordinary engineers, which you hires extraordinary engineers, which you claim you have a monopoly of with your claim you have a monopoly of with your claim you have a monopoly of with your community, insane problem for you, but community, insane problem for you, but community, insane problem for you, but for the rest of the world, I guess we for the rest of the world, I guess we for the rest of the world, I guess we just can't hire these great of just can't hire these great of just can't hire these great of engineers. Hm. Wouldn't it be cool if engineers. Hm. Wouldn't it be cool if engineers. Hm. Wouldn't it be cool if there were tools that could catch some there were tools that could catch some there were tools that could catch some of these other types of bugs? like a I of these other types of bugs? like a I of these other types of bugs? like a I don't know maybe a compiler with a don't know maybe a compiler with a don't know maybe a compiler with a server protocol that would communicate server protocol that would communicate server protocol that would communicate to the person or the tool you're writing to the person or the tool you're writing to the person or the tool you're writing the code with that maybe there's a bug the code with that maybe there's a bug the code with that maybe there's a bug here or crazy just just hear me out. here or crazy just just hear me out. here or crazy just just hear me out. What if there was a way to check what What if there was a way to check what What if there was a way to check what memory was being used and what was using memory was being used and what was using memory was being used and what was using it? Like when a function borrows the it? Like when a function borrows the it? Like when a function borrows the memory and puts it somewhere else and memory and puts it somewhere else and memory and puts it somewhere else and does something. What if we could check does something. What if we could check does something. What if we could check that? You know, like a a borrow checker.
-
that? You know, like a a borrow checker. that? You know, like a a borrow checker. I know that tests are great, but maybe I know that tests are great, but maybe I know that tests are great, but maybe there are some things that a traditional there are some things that a traditional there are some things that a traditional unit test can't quite find. Oh, what's unit test can't quite find. Oh, what's unit test can't quite find. Oh, what's that on my screen? A language empowering that on my screen? A language empowering that on my screen? A language empowering everyone to build reliable and efficient everyone to build reliable and efficient everyone to build reliable and efficient software. Oh, it has a type system and software. Oh, it has a type system and software. Oh, it has a type system and an ownership model that guarantees an ownership model that guarantees an ownership model that guarantees memory safety and thread safety. The memory safety and thread safety. The memory safety and thread safety. The problems that you can't really unit test problems that you can't really unit test problems that you can't really unit test for, as you seem to think you can, you for, as you seem to think you can, you for, as you seem to think you can, you [ __ ] imbecile. How am I, the [ __ ] imbecile. How am I, the [ __ ] imbecile. How am I, the JavaScript soy boy, more qualified than JavaScript soy boy, more qualified than JavaScript soy boy, more qualified than you at very basic testing practices for you at very basic testing practices for you at very basic testing practices for low-level languages? I know why. Because low-level languages? I know why. Because low-level languages? I know why. Because I'm not here to complain about somebody I'm not here to complain about somebody I'm not here to complain about somebody I'm mad about. I'm here trying to I'm mad about. I'm here trying to I'm mad about. I'm here trying to educate my audience on software educate my audience on software educate my audience on software development. You [ __ ] imbecile. You development. You [ __ ] imbecile. You development. You [ __ ] imbecile. You child. Do you see how many people just child. Do you see how many people just child. Do you see how many people just dropped bangers in my chat as I went on dropped bangers in my chat as I went on dropped bangers in my chat as I went on this rant? Cuz you're so [ __ ] God. I I this rant? Cuz you're so [ __ ] God. I I this rant? Cuz you're so [ __ ] God. I I knew this was going to be bad. I did not knew this was going to be bad. I did not knew this was going to be bad. I did not expect he was going to say that the unit expect he was going to say that the unit expect he was going to say that the unit tests in bun verifying behavior are tests in bun verifying behavior are tests in bun verifying behavior are enough to handle any memory errors. Are enough to handle any memory errors. Are enough to handle any memory errors. Are you [ __ ] kidding? I don't know if I you [ __ ] kidding? I don't know if I you [ __ ] kidding? I don't know if I can finish this. I'm so pissed off. What can finish this. I'm so pissed off. What can finish this. I'm so pissed off. What happened to the test suite being happened to the test suite being happened to the test suite being sufficient to catch everything? It's not sufficient to catch everything? It's not sufficient to catch everything? It's not sufficient to catch bugs in the Zig sufficient to catch bugs in the Zig sufficient to catch bugs in the Zig code, but it is to catch bugs in a code, but it is to catch bugs in a code, but it is to catch bugs in a million lines of unreed slop. This is million lines of unreed slop. This is million lines of unreed slop. This is the most damning thing I've ever seen a the most damning thing I've ever seen a the most damning thing I've ever seen a language author write. This is him language author write. This is him language author write. This is him outright admitting he cannot fathom how outright admitting he cannot fathom how outright admitting he cannot fathom how Rust has guarantees that Zigg doesn't.
-
Rust has guarantees that Zigg doesn't. Rust has guarantees that Zigg doesn't. He genuinely believes that unit tests He genuinely believes that unit tests He genuinely believes that unit tests are all it takes to prevent memory are all it takes to prevent memory are all it takes to prevent memory leaks. And that's why Zig's a terrible leaks. And that's why Zig's a terrible leaks. And that's why Zig's a terrible language because it's creator doesn't language because it's creator doesn't language because it's creator doesn't understand [ __ ] memory, which is understand [ __ ] memory, which is understand [ __ ] memory, which is unbelievable. I love this. He claims unbelievable. I love this. He claims unbelievable. I love this. He claims that the performance improvements are that the performance improvements are that the performance improvements are due to LTO, which Zigg supports, and it due to LTO, which Zigg supports, and it due to LTO, which Zigg supports, and it was enabled before by default, but they was enabled before by default, but they was enabled before by default, but they turned it off because of LLVM bugs. All turned it off because of LLVM bugs. All turned it off because of LLVM bugs. All of which also affect Rust. We probably of which also affect Rust. We probably of which also affect Rust. We probably tried to tell you to try enabling it and tried to tell you to try enabling it and tried to tell you to try enabling it and you didn't listen. I love the probably you didn't listen. I love the probably you didn't listen. I love the probably tried [ __ ] The post implies you tried [ __ ] The post implies you tried [ __ ] The post implies you were diligently fuzzing the Zig code. were diligently fuzzing the Zig code. were diligently fuzzing the Zig code. While during our calls, the bun team While during our calls, the bun team While during our calls, the bun team told us that they were not fuzzing told us that they were not fuzzing told us that they were not fuzzing anything. Didn't you just say the calls anything. Didn't you just say the calls anything. Didn't you just say the calls stopped? Pretty sure you did. Pretty stopped? Pretty sure you did. Pretty stopped? Pretty sure you did. Pretty sure you said that you guys stopped sure you said that you guys stopped sure you said that you guys stopped talking and that you drifted so you talking and that you drifted so you talking and that you drifted so you wouldn't know this. The bun post wouldn't know this. The bun post wouldn't know this. The bun post outlines a bunch of engineering work outlines a bunch of engineering work outlines a bunch of engineering work done to reduce binary size to better done to reduce binary size to better done to reduce binary size to better make the case that bun is better in make the case that bun is better in make the case that bun is better in Rust. No, it doesn't. It calls out these Rust. No, it doesn't. It calls out these Rust. No, it doesn't. It calls out these small benefits, the fact they saw more small benefits, the fact they saw more small benefits, the fact they saw more and they went and took them. It wasn't and they went and took them. It wasn't and they went and took them. It wasn't used to justify this. If I was to reach used to justify this. If I was to reach used to justify this. If I was to reach like this for your article, I could say like this for your article, I could say like this for your article, I could say that this is an attempt to get Jared that this is an attempt to get Jared that this is an attempt to get Jared killed in the street. Obviously, you're killed in the street. Obviously, you're killed in the street. Obviously, you're not calling for that. But when you make not calling for that. But when you make not calling for that. But when you make absolutely insane generalizations and absolutely insane generalizations and absolutely insane generalizations and then a bunch of reaches on top, you can then a bunch of reaches on top, you can then a bunch of reaches on top, you can say stupid [ __ ] You've done a lot of say stupid [ __ ] You've done a lot of say stupid [ __ ] You've done a lot of that here. I think this specifically the that here. I think this specifically the that here. I think this specifically the binary size section of the blog post is binary size section of the blog post is binary size section of the blog post is precisely why it took so long for the precisely why it took so long for the precisely why it took so long for the blog post to come out. you were doing blog post to come out. you were doing blog post to come out. you were doing engineering work that you should have engineering work that you should have engineering work that you should have done in the Zigg codebase since the done in the Zigg codebase since the done in the Zigg codebase since the beginning. This is like the whole beginning. This is like the whole beginning. This is like the whole article is full of absurd speculative article is full of absurd speculative article is full of absurd speculative reaches. This sentence is just [ __ ] reaches. This sentence is just [ __ ] reaches. This sentence is just [ __ ] stupid. Obviously, this is not the case.
-
stupid. Obviously, this is not the case. stupid. Obviously, this is not the case. You can check the commit history to see You can check the commit history to see You can check the commit history to see this is not the case. This is just a this is not the case. This is just a this is not the case. This is just a desperate attempt to pretend Jared is desperate attempt to pretend Jared is desperate attempt to pretend Jared is acting in bad faith when he has been acting in bad faith when he has been acting in bad faith when he has been beyond transparent about all of this. beyond transparent about all of this. beyond transparent about all of this. Apparently, Andrew was mad at him for Apparently, Andrew was mad at him for Apparently, Andrew was mad at him for using comp time so much and even made a using comp time so much and even made a using comp time so much and even made a time report thing to try and get him to time report thing to try and get him to time report thing to try and get him to stop. Andrew noticed that Jared stop. Andrew noticed that Jared stop. Andrew noticed that Jared neglected to mention compilation speed. neglected to mention compilation speed. neglected to mention compilation speed. No, he didn't. He specifically talked No, he didn't. He specifically talked No, he didn't. He specifically talked about how bad the compile times were and about how bad the compile times were and about how bad the compile times were and how he had to break up the project how he had to break up the project how he had to break up the project differently in order to make it work differently in order to make it work differently in order to make it work reliably at all. The Zig compiler is reliably at all. The Zig compiler is reliably at all. The Zig compiler is about 600,000 lines of code, roughly the about 600,000 lines of code, roughly the about 600,000 lines of code, roughly the same size as Bun before the rewrite, and same size as Bun before the rewrite, and same size as Bun before the rewrite, and he's clocking 16 seconds to build from he's clocking 16 seconds to build from he's clocking 16 seconds to build from scratch with a clean cache. Yeah, scratch with a clean cache. Yeah, scratch with a clean cache. Yeah, awesome. You do understand that Jared's awesome. You do understand that Jared's awesome. You do understand that Jared's an engineer, right? that he can look at an engineer, right? that he can look at an engineer, right? that he can look at these things and make a decision. Do you these things and make a decision. Do you these things and make a decision. Do you understand how crazy it is that he understand how crazy it is that he understand how crazy it is that he traded the super fast compile times from traded the super fast compile times from traded the super fast compile times from Zigg for the god awful ones for Rust as Zigg for the god awful ones for Rust as Zigg for the god awful ones for Rust as well as having to rearchitect the well as having to rearchitect the well as having to rearchitect the project to have hundreds of crates project to have hundreds of crates project to have hundreds of crates instead of just one which he preferred. instead of just one which he preferred. instead of just one which he preferred. You should take this as a lesson, You should take this as a lesson, You should take this as a lesson, Andrew. This [ __ ] Jared was so Andrew. This [ __ ] Jared was so Andrew. This [ __ ] Jared was so frustrated with his experience working frustrated with his experience working frustrated with his experience working in Zigg that he ate all of these real in Zigg that he ate all of these real in Zigg that he ate all of these real costs that you're discussing because costs that you're discussing because costs that you're discussing because again, let's be real here, your language again, let's be real here, your language again, let's be real here, your language sucked so hard that the benefits didn't sucked so hard that the benefits didn't sucked so hard that the benefits didn't matter to him enough. He wanted those matter to him enough. He wanted those matter to him enough. He wanted those things. That's why he picked your things. That's why he picked your things. That's why he picked your language. That's why he complimented language. That's why he complimented language. That's why he complimented Zigg so much at the start of his post.
-
Zigg so much at the start of his post. Zigg so much at the start of his post. But because you're still acting like no But because you're still acting like no But because you're still acting like no one uses your goddamn language, he one uses your goddamn language, he one uses your goddamn language, he couldn't stick with it. So, he had to couldn't stick with it. So, he had to couldn't stick with it. So, he had to switch to a language that has these switch to a language that has these switch to a language that has these horrible compilation times. And he horrible compilation times. And he horrible compilation times. And he admitted it. He's not hiding any of admitted it. He's not hiding any of admitted it. He's not hiding any of this. You need to learn from this. Like, this. You need to learn from this. Like, this. You need to learn from this. Like, if like like let's be real here. If I if like like let's be real here. If I if like like let's be real here. If I had a kid and I would offer to drive had a kid and I would offer to drive had a kid and I would offer to drive them to school and they said, "No, fine. them to school and they said, "No, fine. them to school and they said, "No, fine. I'll walk and the school's 20 miles I'll walk and the school's 20 miles I'll walk and the school's 20 miles away." That doesn't mean the kid is away." That doesn't mean the kid is away." That doesn't mean the kid is stupid. Okay? Might. But it also stupid. Okay? Might. But it also stupid. Okay? Might. But it also probably means I screwed up some amount probably means I screwed up some amount probably means I screwed up some amount that my kid doesn't want to get in the that my kid doesn't want to get in the that my kid doesn't want to get in the car with me and will instead go through car with me and will instead go through car with me and will instead go through that insane amount of pain because they that insane amount of pain because they that insane amount of pain because they would rather deal with that than get in would rather deal with that than get in would rather deal with that than get in my [ __ ] car. That is what you're my [ __ ] car. That is what you're my [ __ ] car. That is what you're doing here. You are mad at the kid for doing here. You are mad at the kid for doing here. You are mad at the kid for not wanting to be near you because you not wanting to be near you because you not wanting to be near you because you [ __ ] suck. Oh, the kid's so stupid [ __ ] suck. Oh, the kid's so stupid [ __ ] suck. Oh, the kid's so stupid for walking to school. No, you're a for walking to school. No, you're a for walking to school. No, you're a shitty parent. What did we learn here shitty parent. What did we learn here shitty parent. What did we learn here today? The main issue here was the today? The main issue here was the today? The main issue here was the relationship breakdown. as he's outlined relationship breakdown. as he's outlined relationship breakdown. as he's outlined above. Nothing to do with programming above. Nothing to do with programming above. Nothing to do with programming language features. Of course, I don't language features. Of course, I don't language features. Of course, I don't expect the blog post to admit that.
-
expect the blog post to admit that. expect the blog post to admit that. Really, it was well played. I'll read Really, it was well played. I'll read Really, it was well played. I'll read his last words here, but I'm going to go his last words here, but I'm going to go his last words here, but I'm going to go on one last tangent cuz remember, I'm a on one last tangent cuz remember, I'm a on one last tangent cuz remember, I'm a friend of Jared's. We've talked about a friend of Jared's. We've talked about a friend of Jared's. We've talked about a lot of different things, including his lot of different things, including his lot of different things, including his choice of languages. He genuinely loves choice of languages. He genuinely loves choice of languages. He genuinely loves Zigg. He loves it so much that he worked Zigg. He loves it so much that he worked Zigg. He loves it so much that he worked his [ __ ] ass off to try and bridge his [ __ ] ass off to try and bridge his [ __ ] ass off to try and bridge this relationship to try and help the this relationship to try and help the this relationship to try and help the Zig community form a real presence in SF Zig community form a real presence in SF Zig community form a real presence in SF and be pleasant to work with. He only and be pleasant to work with. He only and be pleasant to work with. He only brought up these issues once or twice brought up these issues once or twice brought up these issues once or twice with me ever. He's brought up a lot of with me ever. He's brought up a lot of with me ever. He's brought up a lot of other things a lot more often. I'm other things a lot more often. I'm other things a lot more often. I'm pretty sure I've talked about bunnies pretty sure I've talked about bunnies pretty sure I've talked about bunnies with Jared more than I've talked about with Jared more than I've talked about with Jared more than I've talked about the Zigg Foundation. But in the little the Zigg Foundation. But in the little the Zigg Foundation. But in the little bit we talked, the tone I got from him bit we talked, the tone I got from him bit we talked, the tone I got from him was slight disappointment. Like he was slight disappointment. Like he was slight disappointment. Like he genuinely felt sad that the Zigg genuinely felt sad that the Zigg genuinely felt sad that the Zigg Foundation was being unnecessarily Foundation was being unnecessarily Foundation was being unnecessarily hostile. And he didn't even bring it up. hostile. And he didn't even bring it up. hostile. And he didn't even bring it up. Like I had to bring it up and he was Like I had to bring it up and he was Like I had to bring it up and he was like, "Yeah, I don't know what's up like, "Yeah, I don't know what's up like, "Yeah, I don't know what's up there. It sucks cuz I love the language there. It sucks cuz I love the language there. It sucks cuz I love the language and I love them and we donate, but and I love them and we donate, but and I love them and we donate, but they're just like hostile towards us and they're just like hostile towards us and they're just like hostile towards us and I don't get it." That was his take on I don't get it." That was his take on I don't get it." That was his take on the whole thing over the last three plus the whole thing over the last three plus the whole thing over the last three plus years I've talked about it with him. I years I've talked about it with him. I years I've talked about it with him. I have heard more about this relationship have heard more about this relationship have heard more about this relationship through this article than I've heard through this article than I've heard through this article than I've heard from Jared over three years. Jared was from Jared over three years. Jared was from Jared over three years. Jared was very kind and political about this, very kind and political about this, very kind and political about this, which is crazy because you think he's which is crazy because you think he's which is crazy because you think he's this terrible manager that's super this terrible manager that's super this terrible manager that's super inconsiderate. You are projecting all of inconsiderate. You are projecting all of inconsiderate. You are projecting all of your own bad behavior in this article in your own bad behavior in this article in your own bad behavior in this article in the most absurd way. And we're about to the most absurd way. And we're about to the most absurd way. And we're about to point out the absurd level as we wrap it point out the absurd level as we wrap it point out the absurd level as we wrap it up. You only thank him for the
-
up. You only thank him for the up. You only thank him for the donations, not for any of the other donations, not for any of the other donations, not for any of the other things he did or the absurd levels of things he did or the absurd levels of things he did or the absurd levels of effort he put in and the promotion he effort he put in and the promotion he effort he put in and the promotion he gave Zigg. I learned about this language gave Zigg. I learned about this language gave Zigg. I learned about this language through Jared's work and now I will through Jared's work and now I will through Jared's work and now I will never touch it thanks to your work. But never touch it thanks to your work. But never touch it thanks to your work. But part two is where I want you to just and part two is where I want you to just and part two is where I want you to just and Andrew, I know this has been spicy. I Andrew, I know this has been spicy. I Andrew, I know this has been spicy. I know you're watching the whole thing know you're watching the whole thing know you're watching the whole thing because you're a narcissistic prick, but because you're a narcissistic prick, but because you're a narcissistic prick, but I need you to just reset everything I've I need you to just reset everything I've I need you to just reset everything I've said so far and lock in for a second said so far and lock in for a second said so far and lock in for a second with me because there's a sentence we with me because there's a sentence we with me because there's a sentence we have to look at together. I actually have to look at together. I actually have to look at together. I actually don't have any personal criticisms of don't have any personal criticisms of don't have any personal criticisms of Jared. I know you hate LLMs, but we're Jared. I know you hate LLMs, but we're Jared. I know you hate LLMs, but we're going to do a thing. I don't want you to going to do a thing. I don't want you to going to do a thing. I don't want you to think that this is a biased model. So, think that this is a biased model. So, think that this is a biased model. So, I'm specifically asking ChatGpt, which I'm specifically asking ChatGpt, which I'm specifically asking ChatGpt, which in seconds calls out that the article in seconds calls out that the article in seconds calls out that the article contains numerous personal criticisms of contains numerous personal criticisms of contains numerous personal criticisms of Jared, even though many arise in a Jared, even though many arise in a Jared, even though many arise in a professional context, including but not professional context, including but not professional context, including but not limited to calling him inexperienced and limited to calling him inexperienced and limited to calling him inexperienced and prone to mediocre outcomes, groomed into prone to mediocre outcomes, groomed into prone to mediocre outcomes, groomed into uncritically adopting Silicon Valley uncritically adopting Silicon Valley uncritically adopting Silicon Valley ideology, saying that he has poor ideology, saying that he has poor ideology, saying that he has poor communication, unrealistic expectations, communication, unrealistic expectations, communication, unrealistic expectations, low empathy, no experience. He kept low empathy, no experience. He kept low empathy, no experience. He kept nagging you. He's writing slop. And he's nagging you. He's writing slop. And he's nagging you. He's writing slop. And he's singularly focused on productivity, singularly focused on productivity, singularly focused on productivity, wealth, and exit strategies. Literally, wealth, and exit strategies. Literally, wealth, and exit strategies. Literally, all of these things are personal all of these things are personal all of these things are personal attacks, including calling him a stinky attacks, including calling him a stinky attacks, including calling him a stinky manager. And just to address some bias, manager. And just to address some bias, manager. And just to address some bias, we will ask our friend Fable 5. Yes, we will ask our friend Fable 5. Yes, we will ask our friend Fable 5. Yes, pretty clearly. The disclaimer at the pretty clearly. The disclaimer at the pretty clearly. The disclaimer at the end sits awkwardly against much of what end sits awkwardly against much of what end sits awkwardly against much of what precedes it. The most direct example, precedes it. The most direct example, precedes it. The most direct example, the article relays that based on the article relays that based on the article relays that based on accounts from interviewees and accounts from interviewees and accounts from interviewees and employees, Jared was a stinky manager.
-
employees, Jared was a stinky manager. employees, Jared was a stinky manager. The sheer volume of personal criticisms The sheer volume of personal criticisms The sheer volume of personal criticisms of Jared in this article is genuinely of Jared in this article is genuinely of Jared in this article is genuinely hilarious. You're [ __ ] hallucinating, hilarious. You're [ __ ] hallucinating, hilarious. You're [ __ ] hallucinating, man. He has different tastes than me. He man. He has different tastes than me. He man. He has different tastes than me. He wants different things out of life than wants different things out of life than wants different things out of life than me. But I think he's actually happy and me. But I think he's actually happy and me. But I think he's actually happy and successful exactly where he is. Unlike successful exactly where he is. Unlike successful exactly where he is. Unlike you, you seem incredibly unhappy and you, you seem incredibly unhappy and you, you seem incredibly unhappy and petty and pissed off. He figured out how petty and pissed off. He figured out how petty and pissed off. He figured out how to accomplish all the stuff in life that to accomplish all the stuff in life that to accomplish all the stuff in life that he wants. He gets to live out he wants. He gets to live out he wants. He gets to live out productivity fantasy fever dreams. He's productivity fantasy fever dreams. He's productivity fantasy fever dreams. He's probably already super wealthy. He has probably already super wealthy. He has probably already super wealthy. He has minor tech celebrity status. minor tech celebrity status. minor tech celebrity status. I think he did well for himself and I I think he did well for himself and I I think he did well for himself and I don't wish him any ill will. I added don't wish him any ill will. I added don't wish him any ill will. I added this paragraph in an update to the blog this paragraph in an update to the blog this paragraph in an update to the blog post because it seems like people are post because it seems like people are post because it seems like people are having a hard time believing me when I having a hard time believing me when I having a hard time believing me when I say it's not personal and that I say it's not personal and that I say it's not personal and that I actually accept Jared for who he is and actually accept Jared for who he is and actually accept Jared for who he is and actually perceive him as successful by actually perceive him as successful by actually perceive him as successful by his own standards and in fact am his own standards and in fact am his own standards and in fact am genuinely happy for him. It's the truth genuinely happy for him. It's the truth genuinely happy for him. It's the truth though. I accept people who are wildly though. I accept people who are wildly though. I accept people who are wildly different than me. You're going to have different than me. You're going to have different than me. You're going to have to accept that all of your users are too to accept that all of your users are too to accept that all of your users are too and they're all going to stop using your and they're all going to stop using your and they're all going to stop using your goddamn language. I don't hold it goddamn language. I don't hold it goddamn language. I don't hold it against people that have different against people that have different against people that have different tastes than me. And I don't even hate my tastes than me. And I don't even hate my tastes than me. And I don't even hate my opponents in the world of business. You opponents in the world of business. You opponents in the world of business. You of course you don't. You don't have a of course you don't. You don't have a of course you don't. You don't have a [ __ ] business. If anything, we have [ __ ] business. If anything, we have [ __ ] business. If anything, we have something in common. We're both playing something in common. We're both playing something in common. We're both playing the same game, albeit on opposite teams.
-
the same game, albeit on opposite teams. the same game, albeit on opposite teams. What teams? What? What do you mean What teams? What? What do you mean What teams? What? What do you mean you're playing on opposite teams? What you're playing on opposite teams? What you're playing on opposite teams? What game? What the [ __ ] are you saying? His game? What the [ __ ] are you saying? His game? What the [ __ ] are you saying? His team is shipping. Your team is [ __ ] team is shipping. Your team is [ __ ] team is shipping. Your team is [ __ ] posting. His team is building useful posting. His team is building useful posting. His team is building useful software. Your team is complaining of software. Your team is complaining of software. Your team is complaining of people who build useful software. What people who build useful software. What people who build useful software. What the [ __ ] do you mean opposite teams? I'm the [ __ ] do you mean opposite teams? I'm the [ __ ] do you mean opposite teams? I'm happy our business interests are no happy our business interests are no happy our business interests are no longer intertwined. As soon as the longer intertwined. As soon as the longer intertwined. As soon as the internet stops arguing in public about internet stops arguing in public about internet stops arguing in public about whether the rewrite was good or bad for whether the rewrite was good or bad for whether the rewrite was good or bad for Bun based on the language choice, I Bun based on the language choice, I Bun based on the language choice, I believe that concludes our interactions. believe that concludes our interactions. believe that concludes our interactions. God, what are you linking here? He's God, what are you linking here? He's God, what are you linking here? He's literally linking the sex robot skit literally linking the sex robot skit literally linking the sex robot skit from whitest kids. You know, this guy's from whitest kids. You know, this guy's from whitest kids. You know, this guy's a literal teenager. He is actually a literal teenager. He is actually a literal teenager. He is actually operating as though he's 14 [ __ ] operating as though he's 14 [ __ ] operating as though he's 14 [ __ ] years old. I've never seen anything like years old. I've never seen anything like years old. I've never seen anything like this in my adult life. I'm I'm not even this in my adult life. I'm I'm not even this in my adult life. I'm I'm not even kidding. Best part is it's not even a kidding. Best part is it's not even a kidding. Best part is it's not even a target blank. It pulls you off his target blank. It pulls you off his target blank. It pulls you off his website. Hey there, Theo from the future website. Hey there, Theo from the future website. Hey there, Theo from the future here. Since this blog post was here. Since this blog post was here. Since this blog post was published, it's been edited multiple published, it's been edited multiple published, it's been edited multiple times, and it got edited again since I times, and it got edited again since I times, and it got edited again since I filmed. And while this edit does soften filmed. And while this edit does soften filmed. And while this edit does soften a few things, it also opens in like the a few things, it also opens in like the a few things, it also opens in like the worst possible way, and I just I need to worst possible way, and I just I need to worst possible way, and I just I need to crash out a bit more. Okay, this is the crash out a bit more. Okay, this is the crash out a bit more. Okay, this is the change. First off, he changed the title change. First off, he changed the title change. First off, he changed the title of that last section from uh what do we of that last section from uh what do we of that last section from uh what do we learn here today to moving on. Notice learn here today to moving on. Notice learn here today to moving on. Notice that I have this blog post open twice that I have this blog post open twice that I have this blog post open twice cuz this is from last stream. This is cuz this is from last stream. This is cuz this is from last stream. This is from today's recording. So it's the same from today's recording. So it's the same from today's recording. So it's the same link but two different pieces of link but two different pieces of link but two different pieces of content. He used to say that this was a content. He used to say that this was a content. He used to say that this was a relationship breakdown as he outlined relationship breakdown as he outlined relationship breakdown as he outlined above. He changed it to my main issue above. He changed it to my main issue above. He changed it to my main issue here has nothing to do with the language here has nothing to do with the language here has nothing to do with the language features of Zigg versus Rust and features of Zigg versus Rust and features of Zigg versus Rust and everything to do with the diverging everything to do with the diverging everything to do with the diverging value system of the two projects in value system of the two projects in value system of the two projects in relationship breakdown that followed.
-
relationship breakdown that followed. relationship breakdown that followed. Zooming out I want to make one thing Zooming out I want to make one thing Zooming out I want to make one thing clear and here is where it falls apart. clear and here is where it falls apart. clear and here is where it falls apart. While I resent Jared for making Bun into While I resent Jared for making Bun into While I resent Jared for making Bun into an embarrassment for Zigg, and I blame an embarrassment for Zigg, and I blame an embarrassment for Zigg, and I blame him partially for some of the slop we've him partially for some of the slop we've him partially for some of the slop we've been dealing with, you know that he been dealing with, you know that he been dealing with, you know that he didn't have the words partially and some didn't have the words partially and some didn't have the words partially and some until he had someone else give feedback until he had someone else give feedback until he had someone else give feedback on it. And it was previously I blame him on it. And it was previously I blame him on it. And it was previously I blame him for the slop we've been dealing with. for the slop we've been dealing with. for the slop we've been dealing with. And he added those words to make it feel And he added those words to make it feel And he added those words to make it feel less absurd. And he stands by the less absurd. And he stands by the less absurd. And he stands by the criticism of his leadership. He also criticism of his leadership. He also criticism of his leadership. He also empathizes with Jared. He has different empathizes with Jared. He has different empathizes with Jared. He has different values than me. He wants different values than me. He wants different values than me. He wants different things out of life than me. But I think things out of life than me. But I think things out of life than me. But I think he's actually happy and successful he's actually happy and successful he's actually happy and successful exactly where he is. yada yada yada. exactly where he is. yada yada yada. exactly where he is. yada yada yada. Same thing that he mostly had there. Same thing that he mostly had there. Same thing that he mostly had there. Then he says, "The blog has been Then he says, "The blog has been Then he says, "The blog has been characterized as a personal attack characterized as a personal attack characterized as a personal attack against Jared when he originally framed against Jared when he originally framed against Jared when he originally framed it as telling the story of a failed it as telling the story of a failed it as telling the story of a failed business relationship. My framing didn't business relationship. My framing didn't business relationship. My framing didn't work because I had unprocessed emotions work because I had unprocessed emotions work because I had unprocessed emotions of resentment that were obvious to the of resentment that were obvious to the of resentment that were obvious to the reader, but not to myself. Yeah, no reader, but not to myself. Yeah, no reader, but not to myself. Yeah, no [ __ ] I've updated this conclusion [ __ ] I've updated this conclusion [ __ ] I've updated this conclusion section after self-reflection and section after self-reflection and section after self-reflection and chatting with friends. Feel free to go chatting with friends. Feel free to go chatting with friends. Feel free to go look at the original text in the look at the original text in the look at the original text in the website's public source repo. The other website's public source repo. The other website's public source repo. The other critical mistake I made with this post critical mistake I made with this post critical mistake I made with this post was failing to consider the rather was failing to consider the rather was failing to consider the rather obvious and important point that this obvious and important point that this obvious and important point that this might affect Zigg users who knew next to might affect Zigg users who knew next to might affect Zigg users who knew next to none of these facts and have only the none of these facts and have only the none of these facts and have only the surface level understanding that an surface level understanding that an surface level understanding that an exzig user is getting trashed by the exzig user is getting trashed by the exzig user is getting trashed by the language creator. Such people might language creator. Such people might language creator. Such people might reasonably worry that this might happen reasonably worry that this might happen reasonably worry that this might happen to them. I'm sorry to those who I made to them. I'm sorry to those who I made to them. I'm sorry to those who I made feel this way. At this point, all I can feel this way. At this point, all I can feel this way. At this point, all I can say is that myself and the other ZSF say is that myself and the other ZSF say is that myself and the other ZSF folks have outstanding relations with folks have outstanding relations with folks have outstanding relations with essentially everyone who openly uses essentially everyone who openly uses essentially everyone who openly uses Zigg and talks about it publicly. And Zigg and talks about it publicly. And Zigg and talks about it publicly. And this incident is the one exception. the this incident is the one exception. the this incident is the one exception. the the biggest one is the exception. Plenty
-
the biggest one is the exception. Plenty the biggest one is the exception. Plenty of people have decided to move away from of people have decided to move away from of people have decided to move away from Zigg was zero fuss. I hope you give me Zigg was zero fuss. I hope you give me Zigg was zero fuss. I hope you give me some grace considering a trillion dollar some grace considering a trillion dollar some grace considering a trillion dollar company fired the first shot. No, you company fired the first shot. No, you company fired the first shot. No, you were saying earlier that they were doing were saying earlier that they were doing were saying earlier that they were doing this before. Also, the blog post wasn't this before. Also, the blog post wasn't this before. Also, the blog post wasn't a shot. I agree that a shot was fired a shot. I agree that a shot was fired a shot. I agree that a shot was fired here and that shot killed Zigg, but the here and that shot killed Zigg, but the here and that shot killed Zigg, but the shot was fired by your gun in your hand shot was fired by your gun in your hand shot was fired by your gun in your hand in your own direction. All of the issue in your own direction. All of the issue in your own direction. All of the issue here is yours. 100% of it. And to the I here is yours. 100% of it. And to the I here is yours. 100% of it. And to the I don't think I will do this again. People don't think I will do this again. People don't think I will do this again. People seem to be worry about that. I just want seem to be worry about that. I just want seem to be worry about that. I just want to highlight another blog post of his to highlight another blog post of his to highlight another blog post of his quick. This one's titled I am not a quick. This one's titled I am not a quick. This one's titled I am not a JavaScript developer. You would imagine JavaScript developer. You would imagine JavaScript developer. You would imagine that this blog post is him crashing out that this blog post is him crashing out that this blog post is him crashing out because he was mischaracterized in some because he was mischaracterized in some because he was mischaracterized in some reporting or something somewhere, right? reporting or something somewhere, right? reporting or something somewhere, right? Do you want to guess what this blog post Do you want to guess what this blog post Do you want to guess what this blog post is about before you read the page? It's is about before you read the page? It's is about before you read the page? It's this. Back in 2013, this. Back in 2013, this. Back in 2013, GitHub had a feature where the languages GitHub had a feature where the languages GitHub had a feature where the languages you used would be put under your bio on you used would be put under your bio on you used would be put under your bio on GitHub. And since he had one project GitHub. And since he had one project GitHub. And since he had one project that had some JavaScript in it, it put that had some JavaScript in it, it put that had some JavaScript in it, it put JavaScript under his username on GitHub.
-
JavaScript under his username on GitHub. JavaScript under his username on GitHub. And this caused him to crash out so And this caused him to crash out so And this caused him to crash out so hard, he wrote a page and a half about hard, he wrote a page and a half about hard, he wrote a page and a half about it on his blog because he hates the idea it on his blog because he hates the idea it on his blog because he hates the idea of being categorized as a JavaScript of being categorized as a JavaScript of being categorized as a JavaScript developer so much with just one word as developer so much with just one word as developer so much with just one word as a label on his GitHub. If that's enough a label on his GitHub. If that's enough a label on his GitHub. If that's enough to get this guy to crash out, I do not to get this guy to crash out, I do not to get this guy to crash out, I do not trust him in saying that this is a trust him in saying that this is a trust him in saying that this is a one-time thing at all. One more quick one-time thing at all. One more quick one-time thing at all. One more quick joke and then we'll go back to my joke and then we'll go back to my joke and then we'll go back to my original crash out. I I just love Ellie original crash out. I I just love Ellie original crash out. I I just love Ellie and thought this was hilarious. I'm and thought this was hilarious. I'm and thought this was hilarious. I'm going to make a programming language going to make a programming language going to make a programming language slop lang. And if any of my users dare slop lang. And if any of my users dare slop lang. And if any of my users dare to write nice code, manage their to write nice code, manage their to write nice code, manage their employees well, or bootstrap, I'll write employees well, or bootstrap, I'll write employees well, or bootstrap, I'll write a blog about what a shitty person they a blog about what a shitty person they a blog about what a shitty person they are. Just I thought this one was funny. are. Just I thought this one was funny. are. Just I thought this one was funny. Anyways, back to what Theo 3 days ago Anyways, back to what Theo 3 days ago Anyways, back to what Theo 3 days ago was saying. Holy [ __ ] I got nothing. was saying. Holy [ __ ] I got nothing. was saying. Holy [ __ ] I got nothing. I'm angry. I hope you are, too. I would I'm angry. I hope you are, too. I would I'm angry. I hope you are, too. I would do the normal outro, but I don't feel do the normal outro, but I don't feel do the normal outro, but I don't feel like switching the camera. Peace nerds, like switching the camera. Peace nerds, like switching the camera. Peace nerds, I guess. What the [ __ ]
Summary
The main theme is the porting of Bun from Zig to Rust, discussed in a blog post that, despite being kind to Zig, is seen as its demise. Key subjects include Bun, Zig, Rust, Claude/AI tools, and a critical blog post by Zig's creator, Andrew Kelly. The practical takeaway is that AI tools can enable massive code ports quickly, but community dynamics and creator reactions can dramatically impact a language's future.