Hacker News new | ask | show | jobs
by tjkrusinski 492 days ago
Zig is great, played with it a bit to compile to WASM and found it to be pretty easy to work with.

That said, they're not winning on the docs, community and marketing front vs Rust. It's not really apples to apples, but it's a comparison people naturally draw.

4 comments

For me, it's the library problem. I read the guide and think, "Wow, this is really great!" Then I read the cookbook, and it mostly says that things (like database connectivity, regex, options parsing, even HTTP GET) are not quite ready for prime time, and I should just call out to C.

Obviously, it takes time for a language to get there; I don't really mean this as a criticism. But I'm just not interested in wrapping C libraries while I wait for a zig version. I'd rather just write C. Or work in a language that is there with these kinds of things.

Since c abi powers the world, with zig’s ability to easily wrap c libs, not only does zig have access to all libs; it also makes it easy to integrate zig with any existing project as most programming languages have integration with c.

This is why everybody says just use some existing c lib

Hmm. I could substitute lots of languages for zig in that first sentence. But that doesn't invariably lead the communities that maintain those languages to utter the second.

I also doubt I have space to enumerate the languages that claim to "easily wrap c libs." None of them easily do that. That statement imagines that there's some basic consistency between APIs (and that those APIs are asking for and returning fairly simple types).

The thing is, all valid C types are also valid in Zig. You just `@cImport` the header file and use it. You don't need to wrap the API, you just use it.
I would argue zig had the best c integration. This is why it’s different.
Better than C++? Better than Lua?
arguably Zig's c integration is better than c's c integration.
In fairness to Zig, they're quite a bit younger. I have no doubt they'll catch up
> The latest release of Zig is 0.13.0 and is currently unstable.

The unstable part might be why. That said, I’m a little familiar with it as it’s what Bun uses.

problem is that the language started hitting its stride and getting attention while the core team is on a 2 year side quest of rewriting the compiler + incremental compilation