←back to thread

228 points Retro_Dev | 4 comments | | HN request time: 0s | source
Show context
zwnow ◴[] No.44461773[source]
And this is exactly why you do not use shiny new languages for your projects. Hope tigerbeetle won't have too much trouble with this
replies(5): >>44461853 #>>44461858 #>>44462043 #>>44462061 #>>44462171 #
jorangreef ◴[] No.44462171[source]
This is exactly why we chose Zig.

Andrew’s design decisions in the language have always been impeccable. I’ve never seen him put a foot wrong and would have made the same change myself.

This is also not new to us, Andrew spoke about this at Systems Distributed ‘25.

Also, TigerBeetle has and owns its own IO stack in any event, and we’ve always been careful to use stable language features.

But regardless, it’s in our nature to “do the right thing”, even if that means a bit of change. We call this “Edge” and explicitly hire for people who have the same characteristic, the craftspeople who know how to spot great technical quality, regardless of how young (or old!) a project may be.

Finally, I’ve been in Zig since 2018. I wouldn’t exactly call it “shiny new”. Zig already has the highest quality toolchain and std lib of anything I would use.

replies(3): >>44462294 #>>44462444 #>>44462720 #
1. DanielHB ◴[] No.44462720[source]
> Zig already has the highest quality toolchain and std lib of anything I would use.

My couple of days experience with Zig was very lackluster with the std lib, not that it is bad, but feels like it is lacking a lot of bare essentials. To be expected for a new pre-1.0 language of course.

replies(1): >>44463186 #
2. flohofwoe ◴[] No.44463186[source]
Depends on which language you're coming from. Compared to C or even C++, the Zig stdlib has already many more things to offer. Compared to Python or Node.js it's quite bare bones.
replies(1): >>44464490 #
3. DanielHB ◴[] No.44464490[source]
Fair, I was mentally comparing to Go. I was a bit disappointed there wasn't more wrappers around basic OS stuff. Go stdlib wraps everything and does its best to make stuff cross-platform.

In my specific case I was trying to send some DNS messages. I went the route of linking libc and using the posix data structures for DNS messages and struggled quite a bit how to map the C data structures to my program.

This kind of thing is a big barrier to adoption unfortunately.

replies(1): >>44466714 #
4. RATML ◴[] No.44466714{3}[source]
Go is literally a Kitchen Sink. I love it, but that stdlib comes with a runtime dependency.