> People are seemingly scared away from the language by a terrible stigma: the notion that it is a legacy program.
Probably more like, they are turned off by how large and complex the language is, and how it's accumulating features like a giant rolling ball of mud.
The discouraging legacy lies in the code bases.
"You can just write code with new features" is a hollow sentiment, because a lot of work is maintaining legacy code, which might using all the features, from C++98 to C++17 and beyond. Old code that successive generations of workers partially modernized here and there.
There is a constant increase in how much you have to know to be a competent C++ maintainer of a legacy code base, under a modernization mandate, as long as the old parts of the code never completely go away.
Also, in the engineering disciplines we have many people with a personality that wants to know something completely. You don't know C++ if you don't know all the old parts too, and that's a turn off for someone who takes pride in being competent. You'd rather master something smaller and simpler completely, than to partially know something huge and complex.
You also don't know C++ if you don't know the new parts, and that's a turn off for long time C++ programmers who have switched to something that isn't constantly adding new unknowns.
Speaking of which, some of the C++ job ads turn away competent long-time C++ programmers by requiring proficiency in modern C++. The C++ community has harmed itself by creating a negative perception of older C++ and older C++ skills, even though those are needed in C++ work. Newcomers pick up on that and get the impression that C++ is a language that they not only cannot master, but which has parts that are frowned upon. The engineering mindset is repelled by something like that.
The top-most entry in his long-suppressed to-do list?
"Stop trying to monitor everything in the world of C++ :-)"
I.e that retirement from C++ basically was the execution of that top-most to-do entry. Being a C++ expert means constantly monitoring what is spewing from the fire hose.
By contrast, I can be a Lisp expert and improve in that by what could be described as crystalizing. Filling the interstitial spaces.
Probably more like, they are turned off by how large and complex the language is, and how it's accumulating features like a giant rolling ball of mud.
The discouraging legacy lies in the code bases.
"You can just write code with new features" is a hollow sentiment, because a lot of work is maintaining legacy code, which might using all the features, from C++98 to C++17 and beyond. Old code that successive generations of workers partially modernized here and there.
There is a constant increase in how much you have to know to be a competent C++ maintainer of a legacy code base, under a modernization mandate, as long as the old parts of the code never completely go away.
Also, in the engineering disciplines we have many people with a personality that wants to know something completely. You don't know C++ if you don't know all the old parts too, and that's a turn off for someone who takes pride in being competent. You'd rather master something smaller and simpler completely, than to partially know something huge and complex.
You also don't know C++ if you don't know the new parts, and that's a turn off for long time C++ programmers who have switched to something that isn't constantly adding new unknowns.
Speaking of which, some of the C++ job ads turn away competent long-time C++ programmers by requiring proficiency in modern C++. The C++ community has harmed itself by creating a negative perception of older C++ and older C++ skills, even though those are needed in C++ work. Newcomers pick up on that and get the impression that C++ is a language that they not only cannot master, but which has parts that are frowned upon. The engineering mindset is repelled by something like that.