I’m a novice to this language and maybe starting this a bit over my head. My interest in zig is that it has no dependencies. I also appreciate that it is low level enough to know where all of the information is being stored, and it can be optimized for speed. I also appreciate that there are some small safety rails for memory management.
I tried to git clone the mach libraries and realized that it requires zig 0.11 despite documentation to the contrary.
I understand that the Andrew Kelley is changing zig alot between the versions. I understand that zig is changing and could potentially break earlier versions.
I’m trying to build a chat server with an interesting login method for the client and for better or worse, Zig seems like the best language besides C.
I’ve heard that zig is not good for long term developments, but I can just stick with one version for a while and stick to basic system calls for the server parts.
I just want to know which version of zig is stable enough to build a GUI client chat, chat server, cryptography, and data streaming?
There has yet to be a stable version of the language. When version 1.0 eventually arrives, it will be the first “stable” release. Expect breaking changes with each minor release until then. While there are “production-ready” applications already in wide usage, Andrew has explicitly stated that the language should not be considered suitable for such.
Just keep in mind that project you create with Zig will likely need some fixing-up with each new release until 1.0. The degree of change is unknowable, they don’t create breaking changes unnecessarily, but neither are they scared to do so where appropriate as the language evolves. Now is the time where breaking changes should be done, as many features will be “baked-in” to a degree upon the first stable release.
I expect rewrites to be a thing needed under certain circimstances. If any of the features I’m using have security concerns, then I’ll rewrite my programs a newer version of zig that remedies the concern. I don’t think I need to use all of the features that zig has.
Given a small list of reliable calls and features, I expect zig to have a version of zig that is “stable enough” for my use case. (Debian philosophy). I’m not interested in using all of the features. I’m interested in building something specific and simply use what tools are needed.
I was looking and saw the option to download 0.14, then saw it disappear multiple times. Andrew Kelley stated that 0.14 is not officially released yet. I understand it is a very small team building zig, so I’m not complaining.
Are most people building with 0.13? Or are people building with some other earlier version of zig?
The language is far enough long that, although possible, it is rather unlikely that there will be any wide-sweeping changes to basic syntax and the “common” data types in std. Realistically speaking, you would likely need only some minor edits in such a scenario as you stated, if at all.
To directly answer your question of “which version to use?”, until 1.0, you should just be using the latest version. Major changes between versions now and then will come rapidly, and the latest iteration of each is going to be closer to what you can expect when the language finally does get a stable release. Using 0.11 now will just mean more significant re-writes of your project that will be necessary when it does become stable. This is not yet a matter of which version of .NET framework to target, or which C-standard to use, the language is still evolving: there is no “version to target” or “standard” yet.
You’re likely mistaking 2024.11.0 (the November 2024 nominated version) for Zig 0.11.0, which is unrelated. 2024.11.0 is actually Zig 0.14.0-dev.2577+271452d22 (a development version of Zig).
I don’t think this is accurate. For language changes, one thing that comes to mind is allow integer types to be any range, which last I heard there’s some interest in experimenting with, and would cause quite significant breaking changes to all existing code. There’s also 664 open proposals, 58 of which are labeled breaking, and 17 of those are accepted.
His X/Twitter status was literally, verbatim, “Please don’t use Zig in production”.
You can easily still find it with your preferred search engine, among other similar sentiments expressed multiple times.
I stand corrected. I mean the tweet is almost six years old, but he did say it. And while the realease notes don’t outright say that zig shouldn’t be used in production, it’s a warning that clearly discourage it.