6 comments

[ 3.0 ms ] story [ 22.1 ms ] thread
I have not written production C++ in over 5 years. For those of you who are still in the trenches with C++, do you view this as an improvement?

Put another way... Which would you view as the better engineering investment: refactoring/rewriting code with these new models of C++ --or-- investing in porting to a managed environment such as C# or Python or <insert language here>?

I confess I'm a purist. I miss Good Old Fashioned C++. This feels like lipstick on a pig. Actually, it's worse than that. It feels like my 60 year old mother trying to dress up in skimpy clothes intended for teenage girls. I just wish she would accept who she is.

I'm going the other way. Coming from Java/Python and having studied C/C++ briefly, this looks like a huge improvement and something I would actually use for a production project. Hopefully in a few years time there will be more videos/books/tutorials that further explain how to use C++ in this way.
I actually stopped working with C++ like 5 years ago. But after the new improvements I am also interested. I have been working so much on Java and C# projects that going back to the bare metal could be good.

Still I don't know if these changes came in too late. I don't imagine myself working in a full C++ project anymore. Lately I have been more interested in Erlang for performance and concurrency. I used to turn to C++ for that.

(comment deleted)
This is an excellent talk -- highly recommended if you know (or want to know) anything about C++. But it leaves me with a big question.

For anyone who has done C++ over the years, and made an effort to be type- and exception-safe, and efficient, these new features are a breath of fresh air. But what about people who haven't?

C++ is a huge language. Sutter seems to be saying that there is a nice, relatively small subset that is usable, safe, and efficient -- if you understand the issues. But do you need to? For example, the discussion on raw pointers at 27:45. Raw pointers are perfectly fine if the ownership and lifetime issues are all aligned correctly, he says. Great. For those who have been writing C++ for a decade and know all about ownership and lifetime and new and delete and reference counting and the rules for calling destructors and exception safety, no problem. What about people who are new to C++?

As I say, C++ is huge. The original ANSI C++ was gigantic. C++11 is a behemoth whose totality is beyond the comprehension of any mere mortal not named "Herb Sutter". There is a small subset that is usable and cool and awesome, if you know about much of the rest. What if you don't? Is C++11 a language that non-experts can use? Is it a language I can effectively introduce to new computer science students?

I don't know. Does anyone?

P.S. I found it funny that, amid all this nifty, modern code, in the slide that appears at 52:38, he throws a char *. Does he really think that's a good idea?

I love seeing this. C++ is one of those things taken for granted because it's been there for so long, in a sort of love it or hate it way. Good to see all those C++0x changes are coming into shape and being implemented.

As much as I love newer technologies like python or JS, we still need things like C++ to get the cooler stuff running on metal. It's great to see improvements on this areas.