Is it time to have a stable release for zig?

I just wanted to know the thoughts of zig users, don’t you people think that it is time to finally have a stable version of zig, as there are many high profile system level projects are now popping up in the open source, tiger beetle , and most recently the ghossty terminal emulator to name the few,

don’t these projects have this fundamental assumption that zig is already stable?
andrew kelley has been to tiger beetle’s official conferences as well (meaning he is endorsing these projects as legit zig users) and now Mitchell Hashimoto (creator of ghossty) has also pledged $300,000 to the zig foundation meaning he also believes in the project.

What do you mean by ‘stable release’?

version 1.0

Well, there are stable releases in the sense of “doesn’t crash frequently”: 0.13.0 is the most recent, 0.14.0 is in development.
I guess you mean “zig 1.0” with a stable release. At that point, feature stability should be guaranteed. While Zig is (as of today) a great programming language and toolchain to build applications on, it isn’t (as least in my opinion) feature stable: many things are still unclear, and there are many open issues with some greater importance.
Andrew Kelley also said once in some PR he made something like “there will be no 1.0 release before all TODO comments are handled”.

There are many things still open to discussion and many things left to be implemented. While for the average user it may be great, some things in freestanding / kernel space could improve. Inline assembly is also already available, but still needs to be discussed as some alternative to just raw assembly syntax needs to be found.
We just have too many things unclear or unimplemented right now.

4 Likes

Then my answer is ‘no’.

Some resources if you’re interested in what is remaining before 1.0:

Also, a relevant quote from the linked talk:

I see this sometimes people are like waiting around, like “oh I’ll try Zig when it’s 1.0, I don’t want it to be unstable” and I think that’s a reasonable emotion but I think that in practice what’s going to happen is that we get closer to 1.0 and things will just become extremely stable and that’s the point where you can start using Zig and you should absolutely start using it when it’s stable and not 1.0 yet because that’s the chance when real users who really invest in it start to have problems and we have a chance to fix something before we want to really say we’re not going to do any breaking changes

6 Likes

As the maintainer of a 36k line project, I don’t mind the occasional breaking change. And I’d rather fix up my code a few times a year than missing out on the improvements that come with it.
And I think there are still many improvements to be made to the syntax and semantics of the language.
To mention some specific examples: The for loop and the casting semantics are both somewhat clunky. Both of these already had improvements in the past years, but I still don’t think we have reached the final (perfect) solution yet. If Zig suddenly turned stable we’d miss out on future improvements in that area.

6 Likes

thanks for the comprehensive answer

thanks for the answer and the resources mate , I am glad I asked this question, many things are clear now

thanks for the clear answer man, much appreciated

I’m a bit divided on it, but I lean towards no.

I want zig to be the best freaking c replacement possible, and I fear that the commitment of “stability” could slow the progress of the project. But one could argue that a stable release could bring donations / more users, which could accelerate the project. IDK. ZSF is working on 0.14 right now, and I see up to 0.16 milestone on the issue tracker. I like that at least for now.

Welcome to the forum!

1 Like