

Writing modern C++ code: how C++ has evolved over the years - aespinoza
http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835T

======
ggchappell
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?

------
brown
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.

~~~
mcot
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.

~~~
aespinoza
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.

------
checoivan
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.

