Our great sponsors
- CodiumAI - TestGPT | Generating meaningful tests for busy devs
- InfluxDB - Access the most powerful time series database as a service
- SonarLint - Clean code begins in your IDE with SonarLint
- ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
Simplicity again, but this time via expressiveness of comptime. A lot of type-level things which are complex in Rust would be natural in Zig. An example here is this PR, where I make a bunch of previously concrete types generic over a family of types. In Zig, that amounts to basically wrapping the code into a function which accepts a (comptime type) parameter. That's a bog standard mechanical generalization. In Rust, doing something like that would require me to define a bunch of traits, probably with GATs, spelling out huge where clauses, etc. Of course, with Zig I don't have a nice declaration-time error, but the thing is, the complexity of the code I am getting an error is different. In Rust, I deal with a complex type-level program which has a nice, in principle, error. In Zig, the error is worse, but, as the program itself is simpler, the end result is not as clear cut. The situations flips if we go complex cases. In Zig, AOS<->SOA transformation is just slightly-clever code, in Rust, that would require leaving the language of types and entering the language of macros.
The distributed financial accounting database designed for mission critical safety and performance.
Simplicity This is really the big one. Zig's code tends to be exceptionally easy to read: there are no lambdas, there are no macros, there's just code. TigerBeetle's io_uring-based IO module is a good example here. Additionally, when it comes to nuts-and-bolts of syntax, I feel that Zig has an edge over Rust:
TestGPT | Generating meaningful tests for busy devs. Get non-trivial tests (and trivial, too!) suggested right inside your IDE, so you can code smart, create more value, and stay confident when you push.
Interfacing with Zig, a BDFL-run Project
1 project | reddit.com/r/rust | 29 May 2023
Building Zig from source for Catalina?
1 project | reddit.com/r/Zig | 28 May 2023
Rzig: Zig reference-counted pointers inspired by Rust's Rc and Arc
3 projects | reddit.com/r/Zig | 26 May 2023
LLVM bindings for zig
2 projects | reddit.com/r/Zig | 25 May 2023
How to allocate memory correctly?
1 project | reddit.com/r/Zig | 20 May 2023