3 ms·
That's extremely hyperbolic. Zig is a systems programming language with an explicit goal of operating at a low level of abstraction. Virtually all languages i
by skohan 4y ago
That's extremely hyperbolic. Zig is a systems programming language with an explicit goal of operating at a low level of abstraction. Virtually all languages in its class are less memory safe than Zig.
- pcwalton 4y agoExcept Rust? We can't ignore the fact that Rust has shown that memory safety is not incompatible with low-level semantics. (Of course, Ada, Cyclone, CCured, etc. showed this much earlier than Rust.)
- skohan 4y agoZig has very different goals than Rust. The explicit theory of the language is that Rust's approach to memory safety creates costly tradeoffs which are not needed for all use-cases. It is very much not the consensus that memory safety is a requirement for any modern language. Asserting that it should be a requirement is an extreme position.
- refulgentis 4y ago"Virtually" is where your argument falls apart, and I want to be clear I'm not just dunking and moving on, I do understand the position that _not_ using a memory safe language is irresponsible is fairly new.
- skohan 4y agoThat position is not only new, it's also not the consensus. Zig explicitly chooses to make memory safety a non-goal of the language, with the argument that Rust-style memory safety is a costly tradeoff which is not always justified. Assuming that my argument has "fallen apart", or that you have "dunked" seems quite absurd given that you've taken an extreme position which many serious practitioners and academics would disagree with.
- pcwalton 4y agoThe point is that Zig's choice around memory safety makes its language design principles significantly outside the consensus around what PL design should be.
- skohan 4y agoAccording to who? It's absolutely not the consensus that every programming language needs to prioritize safety. Rust is still very much an experiment in terms of systems programming. It has a tiny overall "market share" in terms of use in large production projects compared to C/C++ and it remains to be seen whether the particular set of tradeoffs chosen by the language will lead to long term sustainable success. Zig takes another approach and is also a worthy experiment.
- pcwalton 4y agoRust is serving billions of users right now. It's far past the "experiment" stage and has proven itself.
- skohan 4y agoC/C++ have been used to implement the backbone of computing for 50 years. That is a proven technology. I'm not diminishing the success of Rust. It's been proven it can be used for serious projects. It's a bit of a reach to argue it's proven to be the best choice for all system programming use-cases going forward.
- refulgentis 4y agoYou make my brain hurt. You have these extremely long circuitous set of comments that hopstoch between insisting we're talking about Rust and that it's literally impossible to do the things you do in Zig in a memory safe language. It's especially frustrating because you've received a ton of charity and time from strangers, we understand 110% what you're thinking (I wish it was true! I've had an inordinate amount of work for 18 months now because it isn't) but you can't seem to wrap your mind around the idea that there isn't some niche where Zig is perfect and unassailable or the only alternative is rust. I don't think you have much experience in multiple languages, it's actually fairly easy to get something as fast in JS _as in C_.