On one hand I kinda feel validated for having jumped ship on Zig 3+ Years ago[1] and moving everything to Rust[2], with the language simply being too unstable and unsafe in my eyes, despite my love for comptime and people arguing that Bun and Tigerbeetle were proof that it wasn't the languages fault.
But I also feel bad for the Zig project to loose one of their flagship projects, because while I find the project ultimately anachronistic, I know what it's like to pour your sweat, heart and soul into something,
and having it replaced within a week is a sobering experience even from afar.
A couple years ago this would have been unthinkable because of how slow legacy codebases and rewrites are.
I wonder if Tigerbeetle will also have problems arguing for their solution now that the other project they can point to for customer assurance is gone. And I wonder if they will follow suit eventually simply due to marketing pressure (after having been bitten by the Zig compiler I was surprised that they were putting their super duper high reliability database on top of it at all, but with another big player using it there was at least some peace of mind for their enterprise customers).
> I wonder if Tigerbeetle will also have problems arguing for their solution now that the other project they can point to for customer assurance is gone.
In general, we never like to appeal to popularity (a logical fallacy), but why would you assume here that we would point to Bun specifically (or any project for that matter) [1] as an example of Zig’s quality?
We prefer to judge Zig’s quality on its own intrinsic merit:
For example, we subject the language through TigerBeetle to inordinate amounts of fuzzing, perhaps more than any other language (you could say Zig is lucky to have TB’s test suite aimed against it!).
Literally 1,024 dedicated CPU cores, 24/7.
Zig holds up remarkably well.
We also recently pledged $512K to the ZSF, together with Synadia.
These are the kinds of things we prefer to point to. Not hype, but real end-to-end systems engineering, and long term financial support, regardless of the language we choose to use.
[1] I picked Zig back in July 2020. At the time, the largest project was River, but already Zig was a phenomenal choice, and the years have only shown that Zig was probably one of the best design decisions in the development of TigerBeetle. It turned out better than I imagined.
Tigerbeetle is in the database business. They operate on an entire different level of correctness expectations compared to something like Bun. The correctness guarantees they provide come first and foremost from the design, architecture and rigorous testing, not from the language they use for the implementation.
So, hopefully, the tech people involved in choosing a database for their project understand that, and do their own correctness and performance testing before making a decision. As for the business people, the tigerbeetle.com landing page doesn't mention Zig at all, although it probably will come up when they "ask AI" for a comparison. So, yeah, probably some risk. Perhaps the LLM will also point out the Jepsen report on Tigerbeetle to offset it.
> not from the language they use for the implementation.
Everybody has a plan until their compiler compiles an if-else wrong, and that's the level of instability that Zig had when I left it and Tigerbeetle committed to it.
No amount of testing is going to save you from that and it's a completely avoidable unnecessary self-inflicted problem, as a technical person that makes me seriously doubt every other decision you make on top of that. So I feel like they've already been fighting an uphill battle, where they have to proof that they have a stable system, despite an unconventional early stage foundation, and I feel like that it just got even harder.
Im learning zig for kernel bypass packet work. Aside from some noise, and one bug filed on cross compliation (prob simple to fix) bug, it works like I expect. Export of zig code to clib works fine. Comptime is great. Compile time superb. Like TB I will import no other modules ... and avoid all async.
But this link has got me concerned. When I get more ibverbs work done ill see how good/bad it is in rust.
In this kind of extremely low latency high throughput work there is hardly any (mostly none) MT data structures. Memory is pre-allocated for one pinned thread. Atomics are not much used either. So rust isn't going to help on design much. But I think rust/c interoperability is worse than zig.
In fairness to zig many of these issues were closed when zig 0.16.0 was released, which is what im using.
Does anybody know what model they are using? Is that Mythos?
This is impressive. I honestly don't know what to think about programming careers, need to reflect on my role in this area. The only thing that comes to mind the that quote from Cypher (Matrix):
"Buckle your seat belt, Dorothy, because Kansas is going bye-bye."
My hot take is Anthropic is going to have a really rough year as they’re going to start to feel the weight of all their vibe coding and products.
I have a hard time believing they have something figured out that the rest of software engineers don’t. I’ve been using LLMs to help code since before claude code and heavily since. I have a hard enough time managing the “slop” from 4-5 agents. I can’t imagine this is going to go well having this done in like a week.
Anecdotally, I am seeing tons of visual bugs in software and apps these days.
Issues of rendering, too many menu options, mobile sizes not being accounted for per se, non-functioning buttons, half-load issues, etc. Consumer facing, major platforms, commercial services.
I can’t ascribe all of it to LLMs but there’s been an objective change in my impotent cursing from “what is wrong with them” to “did anyone even test this?” over the last six months to a year. If the backends start acting like these frontends we might get to see a bunch of cognitive/technical debt blow up at scale.
100% agree on this. Even just the flashing on nav menus. Very very common to load an app I'm already signed in to, see the "login / signup" state first, then a loading indicator or skeleton, then the logged in state. Just seems like amateur hour all over the place of people or companies not caring.
Given how terrible their in-house support bot is, I don't think they've figured out jack shit. If you truly had a half-decent LLM, you'd think the first place you'd put it to demonstrate the capabilities is handling support.
Yeah the next generation is understanding the codebase vs understanding how to prompt the info out of the codebase.
I too took on the rust port of a working software, learned some LLM roadbumps, and it looks very much like the future is LLM coded and human "managed"
Regardless of your optimism about LLMs, it seems crazy to expect an entire runtime to be stable after this kind of refactoring pass. I would be skeptical if humans did it too. Rust isn’t magical; it can still compile with bugs despite what some people claim.
Is it really just that Anthropic now owns bun and zig is "anti-LLM" for contributions? Was there more justification given elsewhere?