Skip to content
HHackerTube.videoSurprise me

CppCon 2015: Herb Sutter "Writing Good C++14... By Default"

CppCon 2015: Herb Sutter "Writing Good C++14... By Default" on HackerTube: recommended by 4 Hacker News commenters across 5 separate months, 2015–2018.

CppCon

talk · intermediate · dated

Open on YouTube

Herb Sutter's CppCon 2015 plenary on writing safe, modern C++ by default using the C++ Core Guidelines. It includes a demo of lifetime-checking static analysis tooling.

Why Hacker News recommends it

HN cites it in C++ versus Rust safety debates for its lifetime profile demo, and recommends it as a modern C++ talk.

people recommended it
4
separate months
5
strong recommendations
0
discussed on HN
2015–2018
“Take a look at Herb Sutter's CppCon talk this year”
— something123, Sep 2015, in “When Rust Makes Sense, or The State of Typed Languages”

What HN commenters said

16 Hacker News comments link this video. Each one links back to its thread.

pjmlpMar 2018Recommends

- Tour of C++ ( [link] ) - Principles and Practice Using C++ ( [link] ) - From Mathematics to Generic Programming ( [link] ) - The Scott Meyers books Some of the Bjarne Stroustrup videos, "Learning and Teaching Modern C++" - [link] Some of the Herb Sutter videos, "Writing Good C++14... By Default" - ▶ this video "Back to the Basics! Essentials of Modern C++ Style" - [link] Some of the Kate Gregory videos, "Stop Teaching C" - [link] "10 Core Guidelines You Need to Start Using Now" - [link] "It's Complicated" - [link]

in “Ask HN: Best way to learn modern C++?” · View on HN

e12eMay 2016Recommends

I've been spending a few days going through talks from last years cppcon[1]. They're all good, but they've all left me with a strong desire for a strongly opinionated, there-is-no-past-only-the-future introduction to C++14 (and incidentally, C11). I've added a few of those talks I've watched and liked to a small playlist (with a couple of other talks on programming, unrelated - the relevant talks are prefixed with "cppcon 2015"): [link] The full cppcon playlist is here: [link] Of special relevance is the rather excellent talk by Kate Gregory on "Stop Teaching C" (when you're supposed to do an intro course to C++): "CppCon 2015: Kate Gregory “Stop Teaching C"": [link] (But again, I want an open wiki/live tutorial, along the lines of "How I start", but longer, which goes through all this stuff. We really should make one, both for C++14 and for C11). CppCon 2015: Herb Sutter "Writing Good C++14... By Default": ▶ this video Is also rather uplifting, and: CppCon 2015: Sean Parent "Better Code: Data Structures": [link] makes a pretty good case for simple, modern C++ being clear, easy and efficient. Finally, CppCon 2015: Phil Nash “Test Driven C++ with Catch”: [link] apart for being a pretty straight forward intro to a simple testing framework, appears to reveal some secrets combining template magic and still get sane compile times (hint: don't recompile more (template) code on every iteration than you need to). There's a couple of good ones that touch on meta-programming too (Look for t

in “Why I don't spend time with Modern C++ anymore” · View on HN

jbandela1Dec 2015Recommends

Take a look at Herb Sutter's talk from CppCon 2015. The slides are here ( [link] ) and the video is here ▶ this video . Microsoft will be releasing the static analysis tool as a free cross-platform tool (and I think open-source IIRC). They shipped a preview for Visual Studio 2015 with Update 1, and are planning on shipping a cross-platform version soon. As tools like this become free and ubiquitous, it will greatly improve C++ code safety.

in “Ask HN: C, C++, or Rust which language to learn next?” · View on HN

jbandela1Nov 2015Recommends

At this year's CppCon Herb Sutter the chair of the ISO C++ committee addressed just this issue of lifetime safety. Here is a video of his talk and includes a demo of the upcoming static analysis tool that can do this with very minimal annotations ▶ this video I remember thinking when watching the talk that this was a very bad day for Rust as C++ could now do most of what Rust was promising

in “Rust Lifetimes” · View on HN

something123Sep 2015Recommends

We should be seeing completely safe C++ code soon. Take a look at Herb Sutter's CppCon talk this year: ▶ this video Reinventing the wheel isn't entirely necessary. Though if you're a SysAdmin and you write your codebase in Rust.. that's some nice job security. ;)

in “When Rust Makes Sense, or The State of Typed Languages” · View on HN

MaulingMonkeyNov 2016Cites it

MSVC is continuing to improve their detection of invalidated pointers: ▶ this video This is running the static analysis pass instead of the normal compile pass, but stuff is improving. Of course you're preaching to the choir as far as I'm concerned - this stuff is way late to the party, and speaking generally, has issues with false positives and failing to detect things.

in “Rust and the Future of Systems Programming [video]” · View on HN

Show 10 more comments
swaroopMay 2016Cites it

My understanding is that the tools are the answer - it's a linter that must be run before landing/merging. See ▶ this video for a demo of such tools.

in “A Farewell to FRP” · View on HN

kibwenFeb 2016Cites it

I don't believe it is, unless something's changed. To quote MSDN: "The package currently contains checkers for the Bounds and Type profiles. Tooling for the Lifetime profile demonstrated in Herb Sutter’s plenary talk (video at ▶ this video ) will be made available in a future release of the code analysis tools." [link]

in “Rewrite Everything in Rust” · View on HN

jbandela1Jan 2016Cites it

I think that is a great answer. I actually see some parallels between the relationship of Rust/C++ to Scala/Java. Both basically use the backend of the established language and provide an 'improved' language on top of it. Scala uses the JVM, and Rust uses LLVM. What is interesting is that with the release of Java 8, a lot of Scala early adopters and cutting back their investment in Scala in favor of Java (for exampled LinkedIn). This is despite the fact that Scala is widely used in production, has a killer app in Spark, and allows pretty seamless use of the Java library. Now compare this to Rust. Rust also provides an 'improved' language in the same space as C++ utilizing LLVM. However, what is interesting is the nature of the improvements. The biggest feature of Rust is the memory safety. However, the memory safety is not a productivity improvement as more of a safety improvement. Unlike garbage collection where you just do not have to think about memory allocation issues, Rust forces you to think about ownership and mutability. That same exact thinking will allow you to pretty much get the same memory safety in C++ using unique_ptr and shared_ptr and const. The difference is that the compiler makes you think about it in Rust. Much like Scala inspired the adoption of features for Java, you can see C++ adopting pretty much the borrow checker as a tool - see Herb Sutter's talk at CppCon 2015 - ▶ this video . As the experience with Scala shows, the adopted features of the establishe

in “Why I love Rust” · View on HN

jbandela1Jan 2016Cites it

Wow, this is the first post I have ever read that even kind of implied that Andrei Alexandrescu was a Blub programmer. Part of being a Blub programmer is that you don't even think about the issues. In regards to the weird features brought up, the underlying issues behind these features have been in the C++ consciousness for some time. Below are some talks and resources covering at least some of these issues. Sean Parent - Inheritance is the Base Class of Evil - [link] Herb Sutter - You don't know const and mutable - [link] Andrei Alexandrescu - Systematic error handling in C++ - [link] Herb Sutter - Writing Good C++ by Default - ▶ this video Andrew Sutton - Generic Programming with Concepts Lite - [link] One of the things that helps with avoiding "Blubness" in C++ is the significant interest in languages such as Haskel (which is not considered a Blub language by anyone except Agda programmers) and in applying the techniques and insights where possible to C++ whether through writing new libraries (see for example Fit by Paul Fultz II - [link] ) or through new language features (see this post by David Sankel - [link] ) Finally, is also interesting that Paul Graham's blub paradox is being brought up in regards to Rust, C++, and D. The Paul Graham article is in large part talking about the power of meta-programming. In this regard, D and C++ are significantly more powerful in that regard. Features like higher kinded types (template templates), variadics, and non-type template paramete

in “Rust and the Blub Paradox” · View on HN

jbandela1Dec 2015Cites it

Learn C++. You will have the opportunity to learn low-level features but know how to wrap them up inside highly performant, high-level components. Rust is interesting, but I think it will remain an interesting language outside the mainstream without any major commercial backers (Mozilla does not count). In addition, C++ is taking a lot of the ideas from Rust and incorporating them along with tooling that will provide 95+% of the value of Rust while still keeping the advantages of C++ (see ▶ this video ) What is interesting with C++ is that although a lot of vendors are pushing their own languages - Microsoft with C#, Apple with Swift, Google with Go, Facebook with Hack, Mozilla with Rust - they are all deeply involved with C++ because C++ powers their mission-critical code. Another way of putting it would be that despite all the promotion if all of Mozilla's Rust code were eliminated tomorrow nobody would notice, but if all of Mozilla's C++ code were eliminated, it would cease to exist. Also, C++ is rapidly evolving and by learning Modern C++ 14 now, you can avoid a lot of the mistakes of C++ that were common in the past and write safe, elegant code. C++ is also experiencing a renaissance (see [link] ). C++ is now the one high-level language that is natively supported by the system vendor across Windows, Linux, Mac, iOS, Android, Windows Phone, XBox, and Playstation.

in “Ask HN: C, C++, or Rust which language to learn next?” · View on HN

pjmlpDec 2015Cites it

Here CppCon 2015: Herb Sutter "Writing Good C++14... By Default" around 00:32:00. ▶ this video > The work-in-progress ISO Core C++ lifetime profile does not work on unmodified code and requires a lot of annotations… Herb mentions that it still less than lifetimes in Rust given C++'s type system: ▶ this video [link]

in “IncludeOS roadmap: tiny Node.js-style web services in highly efficient C++” · View on HN

pjmlpDec 2015Cites it

If it was that easy. CppCon 2015, Herb Sutter's talk about writing safe code in C++14, just check how many in the audience use such tools. ▶ this video A tiny 1%, this on the conference of with many of the top C++ developers. Now imagine how little they get used on the typical enterprise environment, specially worse with C, that lacks many of the C++ added safety layers.

in “The Dangers of Super Smart Compilers” · View on HN

gaulDec 2015Cites it

CppCon 2015: Herb Sutter "Writing Good C++14... By Default": ▶ this video Sutter comments on const_cast around 11m15s.

in “Optimizing C++ Const Objects in LLVM” · View on HN

pjtrSep 2015Cites it

Sure. That was kind of my point. Still, as Herb Sutter asked at CppCon 2015: "How many of you have your own homegrown string types at your companies? ... Don't lie. ... Right. And those of you who didn't put up your hand and are just bashful, ... we know we have them." [1] [1] ▶ this video

in “C++ Core Guidelines” · View on HN

pcwaltonJan 2016Critical

> you can see C++ adopting pretty much the borrow checker as a tool - see Herb Sutter's talk at CppCon 2015 - ▶ this video . I have a lot of questions about this tool, both in terms of soundness/expressivity (how do you deal with shared_ptr and similar things if your goal is to statically guarantee no-alias on function entry) and in terms of practicality (the massive subsetting it requires basically makes ISO Core C++ an entirely new language). Also, Herb's claims about the ISO Core C++ lifetime profile requiring fewer annotations than Rust were incorrect. I gave basically this exact answer last time you posted a variant of this same comment on the last Rust thread.

in “Why I love Rust” · View on HN

Topics & tags

C, C++, Rust, Go & systems languagesCompilers, interpreters & program analysisc++ core guidelineslifetime profilestatic analysisherb suttercppcon