←back to thread

228 points Retro_Dev | 2 comments | | HN request time: 0.505s | source
Show context
dnautics ◴[] No.44466022[source]
I maintain a library to interface zig with elixir and the breaking changes have not been a big deal. As a part of the library I have maintain a zig parser (the official parser in the langref is not up to date) and I scan the entire zig codebase against my parser to make sure it doesn't trip up on anything. Also I can't use zig fmt to keep up because some of the code is templated and embedded in Elixir. The last two semver minor updates, the net total amount of changes I have had to do to keep up with the language took me maybe an hour? Also subjectively, I feel like the breaking changes that affect me have been fewer and easier to deal with since the early days. The bulk of the delay in updating the library was chipping away at things that i had put off since the last update (also i don't use the library in $DAYJOB since I "quit tech", though I do vibecode solutions for myself).

Point being, I feel like a lot of the gripes about zig changing here and there are really by folks who aren't really daily users, just people who see a !!breaking change!! announcement and pile on.

Though, I do sympathize with newcomers because the memory of the internet is pinned to various older versions with lots of demo code that 'just doesn't work' and of course that means LLMs too, in the long run. Hopefully zig doesn't get stuck past the global knowledge/popularity LLM-cycle cutoff. I don't think it will.

replies(1): >>44467553 #
1. shmolyneaux ◴[] No.44467553[source]
The problem for newcomers is something I faced when trying to use Zig, particularly for the build system. I heard a lot about how much nicer the build system is in Zig compared to other tools. However, as someone unfamiliar with C/C++ build systems I found it very hard to get anything configured.

In contrast, I tried to learn CMake after. Despite my gripes about the CMake language itself, I found it relatively straightforward to do everything I wanted. Docs, backwards-compatibility, and LLMs made it all easy to set up. I have a hybrid C++/Rust project that compiles to desktop/WASM with debug/release builds.

When the build system for Zig stabilizes I'm sure things will be better, but the breaking changes are rough based on my recent experience.

replies(1): >>44468716 #
2. scrubs ◴[] No.44468716[source]
Zig's build system is in zig code. Cmake/make/ninja/meson are not. That's a notable difference.

My initial take on the zig stuff is that it's a bit complex ...