3 ms·
I agree that zig is taking too long to be finalised. And rust has made certain questionable life choices. But people really, REALLY want to get off c and c++
by vkazanov 2y ago
I agree that zig is taking too long to be finalised. And rust has made certain questionable life choices.
But people really, REALLY want to get off c and c++ for all the numerous reasons everybody knows.
- pjmlp 2y agoThey might want, yet while Khronos keeps publishing standards using C and C++, GCC/LLVM/CUDA/.NET/Java/V8/Metal make use of C++, Nintendo/PlayStation/XBox rely on C++, ... they are going to stay around no matter what.
- Ygg2 2y ago> I agree that zig is taking too long to be finalised. And rust has made certain questionable life choices. Any language that's older than 10 years is going to make questionable life choices. It's very easy to be Captain Hindsight, and ask why didn't you do X, 5 years ago? But adding feature X also makes another feature or property impossible, either via opportunity cost or features/properties being at odds. That said, what do you mean by questionable life choices?
- vkazanov 2y ago> Any language that's older than 10 years.. Yes, true. Every language has to make some early foundational choices, as few as possible, and try to carefully think about any new addition to the core because of the extra congnitive load that comes with it. Go is an extreme example here, leaning towards the conservative side. C as well. Zig. Not a fan of Java but it also is kinda slow to add things. Python used to be very careful as well but that epoch is gone. C++ is the opposite example. It tries to add as much as possible, and it was always the case. C compatibility! And classes! Templates! RAII! Metaprogramming! More of everything! Until it reached a point where it's unforgiving hard to add things. Or even learn it properly. Now, Rust feels like a C++ reimplementation, complete with a culture of adding as much as possible as quickly as possible, and ignoring the resulting cognitive load. I mean, it's a choice. Rust definitely has some great, even amazing, ideas to it. But I am afraid of thinking what the language will feel like in 10 years.
- Ygg2 2y ago> Now, Rust feels like a C++ reimplementation, complete with a culture of adding as much as possible as quickly as possible, and ignoring the resulting cognitive load. Ok, but I did ask for what specifically do you mean by questionable life choices? I feel Java is moving at a fast pace (and adding everything and the kitchen sink). Hence, why I wanted specific examples. Can you separate your feelings from facts, and see from where the feelings come from? I'm not saying you're wrong, I'm saying I want to understand your basis for that. > Go is an extreme example here, leaning towards the conservative side. Is it? Didn't it also start adding features that it swore not to add (generics)?
- vkazanov 2y agoI honestly don't want to go the route of arguing over language trivia. Let's say between C++ and C I always pick C. And my first serious language was C++ of the "modern cpp" flavour. I mean, there are things I like: bits taken from the ML language family, tooling, sane approach to OOP, error handling. But the culture of trying to pull everything in... It is a road to hell. The difference between Rust and Go here is that Go took 10 years to come up with a generics proposal, and it does solve a massive problem with the language.
- pjmlp 2y agoK&R C, C89, C11, C17, C23, C2y. Additionally extensions from Turbo C, Borland C, MSVC C, xlC, aC, Green Hills C, TI C, ARM C, Microbit C, clang C, GCC C,Intel C, CUDA C, ISPC,OpenCL C, Renderscript C...
- vkazanov 2y agoI know, I know. You forgot C99. C is bigger than it seems. In my case it was gcc C99 / gnuc99 and onwards on the usual POSIX-likes. But in all honesty, starting with ANSI C and onwards the language itself didn't change all that much, at least not in the same way C++ did. C99 was a serious cleanup but that's about it. Go the language evolves at a similar pace, most things happen outside of the core. Now what's interesting is that C++ is (almost) all C's quirks multiplied by the latest things WG21 decides to pull into the language. And WG21 does indeed add a lot. At some point I just lost the point of it all.