Hacker News new | past | comments | ask | show | jobs | submit login
Bjarne Stroustrup on Concepts and the Future of C++ (devx.com)
27 points by naish on Aug 7, 2009 | hide | past | favorite | 9 comments



I'm halfway through, and there's a strange conflict between the interviewer and Stroustrup. The interviewer won't let go the idea that Concepts completely failed and are now dead. Stroustrup is doing a good job of explaining why he doesn't think they failed (and I agree) and that they're not dead.

This is worth reading because what Stroustrup says has value, but the questions themselves are loaded.


Yes, I also noticed that. In every question the interviewer tries to make Bjarne acknowledge some sensationalistic crap. It looks like the interviewer is more interested in the political side of the story while Bjarne politely tells him he is wrong and then continues with the technical side. The result is a pretty good explanation despite the interviewer's persistent efforts to derail it.


Also, when the conversation gets pretty contentious, the pull quote they choose is "Bjarne Stroustrup: You may be right...". I'm not a fan of this interviewer.


In the comments for the editorial linked at the top, some of the committee members take him to task: http://www.devx.com/cplus/Article/42365/0/page/2


I don't know Mr. Stroustrup, but I have exchanged emails with him. He's always very pleasant and professional in the emails (even when dealing with a nobody such as me). Just like in this interview... I believe he's a genuinely nice guy.

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.


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.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: