as someone coming to zig from rust, skill issue :p jokes aside, it sounds like you want it to behave a certain way and are too stubborn to learn why it behaves differently zig is unstable, so bugs should be expected, it's reasonable to expect them to be fixed before 1.0 the rest of your issues are very minor. not that your frustrations arent valid, and this video is obviously your opinion/experience, but you know how people on the internet are, i like zig and want people to give it a fair shot
I think the best way to put this, some people just need a chainsaw to cut down a tree, Zig gives you a hatchet. I don't want Zig to behave in a certain way. In my video, I just pointed out that the language is not giving you hand outs. You need to build them yourself. It's lower level than Rust for that. In Rust you'll fight with lifetimes, but in Zig you deal with every bit of memory allocation/arenas, carefully deciding between defer and errdefer to systematically deal with deallocation. I don't think I brought anything up about the language that I wanted to behave a certain way other than comptime which isn't working in my context (there are many issues already filed around this). So you can just forgo comptime when needed, losing type safety (like unsafe in Rust). However none of this is what I even pushing, its mainly the C-Interop story and this very important, as its interop is worst off than Rust. The very project I am working on, someone already done in Rust and while it has some of the same fixes I've done, its surface area of issues is vastly smaller and they literally do not need to patch the PHP C source code for any of their work arounds. This is because Zig is transcompiling C into Zig, where else Rust's bindgen only attempts the function definitions, skipping over implementations, and thus many of the bugs currently in Zig c-translate. The Zig build system has been left alone(Andrew said he'll get back to it when there is time), weakly documented, its original purpose was to be a replacement to Make/Cmake/NMake, etc, for now it's mostly there just to service compiling Zig code, with some helpers to help run external system commands. So like I said, Zig gives is great language if you are coming from C, you're used to missing features that you typically need access to, but are okay with hand crafting your own solution. If the C libraries you need already have Zig counterparts like Zig Raylib, then you are protected by a lot of the issues I pointed out. I used Rust back when it was 0.3, 13 years ago. It took another 3 years for Rust to finally hit 1.0, and right now you are forced to use Rust nightly for most projects. With Zig some people are still using 0.11/0.12 and cannot upgrade due to bugs in newer versions, or amount of rework needed. 0.14/0.15 is supposed to have incremental compiling and Andrew already stated he will break whats needed in the language to get incremental compiling to work.
Yeah, Zig is annoying in its need to have extremely specific and verbose semantics for everything. And hard headed need to have warnings as critical errors, which kills fast iteration. C is verbose enough, and it doesn't look like Zig fixes anything without adding new stuff to worry about.
Imagine being a better C and not having the simple String abstraction that causes so many memory woes in C.
as someone coming to zig from rust, skill issue :p
jokes aside, it sounds like you want it to behave a certain way and are too stubborn to learn why it behaves differently
zig is unstable, so bugs should be expected, it's reasonable to expect them to be fixed before 1.0
the rest of your issues are very minor.
not that your frustrations arent valid, and this video is obviously your opinion/experience, but you know how people on the internet are, i like zig and want people to give it a fair shot
I think the best way to put this, some people just need a chainsaw to cut down a tree, Zig gives you a hatchet. I don't want Zig to behave in a certain way. In my video, I just pointed out that the language is not giving you hand outs. You need to build them yourself. It's lower level than Rust for that. In Rust you'll fight with lifetimes, but in Zig you deal with every bit of memory allocation/arenas, carefully deciding between defer and errdefer to systematically deal with deallocation. I don't think I brought anything up about the language that I wanted to behave a certain way other than comptime which isn't working in my context (there are many issues already filed around this). So you can just forgo comptime when needed, losing type safety (like unsafe in Rust). However none of this is what I even pushing, its mainly the C-Interop story and this very important, as its interop is worst off than Rust. The very project I am working on, someone already done in Rust and while it has some of the same fixes I've done, its surface area of issues is vastly smaller and they literally do not need to patch the PHP C source code for any of their work arounds. This is because Zig is transcompiling C into Zig, where else Rust's bindgen only attempts the function definitions, skipping over implementations, and thus many of the bugs currently in Zig c-translate. The Zig build system has been left alone(Andrew said he'll get back to it when there is time), weakly documented, its original purpose was to be a replacement to Make/Cmake/NMake, etc, for now it's mostly there just to service compiling Zig code, with some helpers to help run external system commands.
So like I said, Zig gives is great language if you are coming from C, you're used to missing features that you typically need access to, but are okay with hand crafting your own solution. If the C libraries you need already have Zig counterparts like Zig Raylib, then you are protected by a lot of the issues I pointed out. I used Rust back when it was 0.3, 13 years ago. It took another 3 years for Rust to finally hit 1.0, and right now you are forced to use Rust nightly for most projects. With Zig some people are still using 0.11/0.12 and cannot upgrade due to bugs in newer versions, or amount of rework needed. 0.14/0.15 is supposed to have incremental compiling and Andrew already stated he will break whats needed in the language to get incremental compiling to work.
Yeah, Zig is annoying in its need to have extremely specific and verbose semantics for everything. And hard headed need to have warnings as critical errors, which kills fast iteration.
C is verbose enough, and it doesn't look like Zig fixes anything without adding new stuff to worry about.
It looks like skill issue. Sorry