4 ms·
A lot of that is not what I mean by "churn". What I mean by "churn" is changes in best practice. Python has been adding a lot of features, but with the possible
by jerf 5y ago
A lot of that is not what I mean by "churn". What I mean by "churn" is changes in best practice. Python has been adding a lot of features, but with the possible exception of static typing support, most of them haven't made many changes to what constitutes best practices. They might make "nicer ways to write that code" but the old styles haven't been deemed wrong. async is also not exactly what I mean; this allows new code to be written that mostly couldn't before. This one is only a partial miss though since it did deprecate some older libraries, but those libraries weren't really deemed "the right answer" either.
C++ is constantly changing what a "best practice" is. The latest hotness from three-generations-ago churn is now considered broken.
- ncmncm 5y agoC++ gets new features that provide a better way to solve common coding problems. This is not accidental, and not a problem: the new features were added because they offer that better way. Failing to use the new feature is just failing to write code the best way that is available right now. In 2013 you had no choice but to do it the old way; but you don't have to anymore, because the language and std library have caught up with you. Being responsive to the needs of its community of programmers is job one for a language committee. If new, better ways don't arise, your language has stagnated.
- ModernMech 5y ago> This is not accidental, and not a problem You're right it's not accidental, but the problem is that when you continually add new features you end up creating a confusing mess. Yes, the new features may respond to some need in the community, but by adding it you've also: - Introduced possibly unforeseen issues because features are never added in isolation; they interact with one another, and the more features you have the harder it is to test them all. - Created confusion because now all the old information on the internet is out of date - Everyone needs to update their tooling to support the new features. - Make it harder for new people to start learning the language > Failing to use the new feature is just failing to write code the best way that is available right now. In 2013 you had no choice but to do it the old way; but you don't have to anymore, because the language and std library have caught up with you. This is a nice idea but it doesn't reflect reality. If the C++ user survey [0] is to be believed, a full 67% of users were restricted from using the latest C++ at the time (either fully or certain features). > Being responsive to the needs of its community of programmers is job one for a language committee. This is true but it also must be balanced against mission scope creep and design considerations. Being everything to everyone is not design. [0] https://isocpp.org/files/papers/CppDevSurvey-2018-02-summary.pdf https://isocpp.org/files/papers/CppDevSurvey-2018-02-summary...
- ncmncm 5y agoYou are very confused. People not using the latest Standard are waiting for support within their particular environment, not because they want to stay with a less performant version of the language.
- ModernMech 5y agoBut they’re still not on the latest version…
- ncmncm 5y agoPeople not using the latest Standard are waiting for support within their particular environment, not because they want to stay with a less performant version of the language.
- ModernMech 5y agoBut this is what you said: > Failing to use the new feature is just failing to write code the best way that is available right now. In 2013 you had no choice but to do it the old way; but you don't have to anymore, because the language and std library have caught up with you. What I hear you saying is that failing to use new features is a failure to write the best code available, and that before maybe you didn't have a choice but not anymore. And yet, huge chunk of C++ devs are forbidden by their organizations from using various C++ features that have been added throughout the years. It's not just C++ 17 but it goes back even further. This is the whole point of TFA. So it's not just that people are "waiting" for tools to catch up, unless you have evidence of this.
- ncmncm 5y agoOrganizational inertia is a problem, but not a problem that a language or Standard can fix. When an organizational logjam is broken, programmers can immediately switch over to the better, more modern way of coding enabled by the newer Standard they are allowed to use. If they were on C++98, and now they can use C++14, they are still better off than before, even if the current Standard is C++20: they will be able to code according to best practices for C++14, which are better than for C++98.