back

by wglb·17y ago·view on hn ↗
I agree about the sensationalist tone noted in other comments here.

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.

2 comments
If you read through much of Boost and the version of the STL that comes with g++, you'll find attempts at emulating language support for concepts. So, to me, there's clear practice of using concepts themselves.

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 completely agree, the interviewer is hardly impartial: he pushes Bjarne to admit what he'd like. Although I can't help thinking we have all been here before. C++ despite using it for a over a decade still feels like a research project, the thing is Bjarne never admits failure in anything C++. I can't help thinking the build-a-better-C, by providing generic programming and OO hasn't met it's goal. C for all its faults is beautifully simple. Where C++ after almost 20 years still needs "fixes" to make it better. To me better is not adding more compiler syntax (that most earlier generic/oo languages have done without). Programmers, even good ones, need to get increasingly bogged down on how to instruct their compiler to do the correct thing. Most programmers I know want to get the solution finished, and aren't interesting on how to be clever with the compiler. This trying to shoehorn objects onto C seems mad considering all that's needed to interoperate with C is the ability to support C linkage. Why not just design a better C?
Bjarne never admits failure in anything C++.

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.