Bjarne Stroustrup on Concepts and the Future of C++
devx.com
devx.com
This is worth reading because what Stroustrup says has value, but the questions themselves are loaded.
Personally, I get a lot of use out of C++ (with or without concepts to further firm-up the language). It will be a major language for many decades to come. It's not perfect (no language is) and it evolves slowly. Regardless of the ISO standard happenings, knowing C++ will help you become a better, more mature programmer.
However, and I have been away from c++ for a while, it is not clear that there is any widespread practice behind concepts. It seems to almost always be a mistake to design features at the standardization level. Does anyone remember the 'alias' C keyword disaster?
My thinking now, obviously corrupted by prolonged exposure to python and now lisp, is that C++ is more complex than it needs to be or than is useful. When in "Modern C++ Design" Andrei Alexandrescu presents C++ topics that amaze Scott Meyers, maybe we need to take a step back. Yes, I know that is Bjarne's major gig.
What's not clear is what, exactly, concepts should be. That's where ConceptGCC came in; it was an experimental implementation of concepts in g++. The standardization committee was not designing in a vacuum. When you have an established practice of people emulating a language feature as best they can, and you have an experimental implementation of that language feature, I think the next step is to evaluate and design what the standardized language feature should be. And that's what they're doing.
I don't know if he has ever used the word "failure," but he has admitted missteps and shortcomings in C++. "I think I know more about the problems with C++ than just about anyone." I think he is less negative about C++ than people expect because his definition of the problem to be solved is extremely broad. It includes all existing C and C++ code, experienced programmers, new learners, diverse implementations, many hardware and OS platforms, stakeholder politics, and standardization logistics. He would probably make the list two or three times as long. Even so, he hasn't always got his way when it comes to C++, so it hardly needs to be said that he thinks there were mistakes made along the way.