4 ms·
> 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 thi
by 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.
- Ygg2 2y agoI don't want to argue about language trivia, I'm interested why do you perceive it as such? > But the culture of trying to pull everything in... It is a road to hell. What part do you mean? Is it async? I'm as well very critical of it as well. Or do you mean. Const? The compile time reflections?
- vkazanov 2y agoWell, if you insist... I've already mentioned things that are universally praised. I don't like having 2 macro systems, async, convoluted syntax and also am not sure that the (unsafe) consequences of using a borrow checker are worth it. To me Rust sounds like the story of C++ (or Common Lisp) all over again: what if we add all the cools stuff? Like, ALL THE THINGS. And Rust is a single implementation language. Nothing limits the speed of thought!