3 ms·
> I still think they should stop adding new features and do what the C committee does in keeping the language stable over the decades which it will take to slow
by rewmie 3y ago
> I still think they should stop adding new features and do what the C committee does in keeping the language stable over the decades which it will take to slowly die, as it should.
Other than catering to your unexplainable desire to see the death if one of the most popular programming languages ever designed, what would be the point of that?
More importantly, what leads you to believe that there is value in stopping others from improving upon a language they use?
> Can't the new-feature enthusiasts just make a new language, or join existing efforts at building new ones?
What's the point of that? You have a perfectly good and working programming language that is used to build software everyone in the world uses every single day. Why would anyone think it's a good idea to just throw that out and water their time reinventing the wheel? Are you the one who is going to rewrite every single C++ software project into your flavor of the month?
- staunton 3y ago> what leads you to believe that there is value in stopping others from improving upon a language they use? Continuously "improving" a language has upsides and downsides. The upside is, of course, people get to use the new features, which is good if the features are useful. A significant downside is the added complexity once there are very many features. A lot of the features of C++ don't interact in good ways and generally make it easy to shoot oneself im the foot. C++ has bad defaults (they were most reasonable at the time, of course) and it's not possible to change them due to backwards compatibility. C++ is also the most complex (widely used) language, to the point where it's quite easy to produce a 20 line program that half the ISO committee couldn't tell you if it should compile or not (they do this apparently for fun sometimes in Cpp-con talks). To summarize, the point of stopping to add features is to have a stable language that is manageable. It will be around for many decades and not be thrown out. However, if it keeps evolving at the current pace, any new developer inheriting a large codebase will have to know 10 programming languages crammed into one and interacting in weird ways. If your answer is "what's wrong with that?", I guess we won't agree. Question for you: Should they start adding variadic templates and mutable lambdas to C? Would you like that? > Are you the one who is going to rewrite every single C++ software project into your flavor of the month? Not wanting to rewrite code is the very reason they should stop adding features. Already, the standard suggestion in C++ circles is that you should "modernize" your codebase and use "best practices" that change every decade. That's bordering on rewriting it in a different language. I am against rewriting stuff that works in a new language. The sad thing is that I agree with pretty much all these "modernization" suggestions individually. The bigger picture of it seems crazy though. New projects can be started in new languages that don't need to be backwards compatible to stuff from the 80s and have sane defaults with the benefit of hindsight. That's how languages evolve in my view, sometimes starting fresh is the way to go. The old languages stay around for a long time, which is fine. Incessantly messing with them and making them more complicated is the issue.
- pjmlp 3y ago> Question for you: Should they start adding variadic templates and mutable lambdas to C? Would you like that? Who knows what might still come into C26.
- rewmie 3y ago> Continuously "improving" a language has upsides and downsides. It has zero downsides. If you are interested in new features you're free to adopt them. If you are not interested in them then you can simply not use them, or even sit out a specific version. There are zero drawbacks. > A significant downside is the added complexity once there are very many features. There is zero complexity. No one forces you to play standard library bingo. No one forces you to use each and every single feature ever devised. No one forces you to adopt a new standard. That's the best feature of C++'s standardization process: it specifies existing features, and provides you with a convenient way to onboard or not onto them. I've worked on C++14 projects until a couple of years ago. My team inherited a C++11 project and we decided to migrate to C++14 mainly because of std::make_unique. We considered C++17 but we didn't bothered with it. C++20 was already out. No one held a gun to our heads. It's ok if you don't jump onto the latest and greatest. > Question for you: Should they start adding variadic templates and mutable lambdas to C? Would you like that? C would greatly benefit from supporting templates. I don't understand what point you tried to make. The question sounds too luddite. > Not wanting to rewrite code is the very reason they should stop adding features. This is a pretty lame strawman. No one is forced to rewrite stuff when bumping a C++ version. I was involved in a couple of projects that underwent those upgrades and basically the migration consisted of flipping a switch in the build system and addressing a couple of compiler errors caused by the compiler flaggin a couple of warnings as errors. That was it. Things are simpler if we don't invent problems.