Good news (really): The CppCon program (posted today) is so strong that some of my talks legitimately fell below the cut line. Instead of giving five talks, I’ll be giving two – one as I proposed it, one a plenary session condensed from three proposed talks. The fifth proposed talk fell under “thanks but there’s just no room, maybe next year.”
This is an awesome problem to have. Seeing the other sessions I am sincerely happy to see some of my material and proposed topics have to be condensed and/or cut to make room for the high-quality content in the program from other speakers. Little did we know what a strong response there would be to the call for session proposals, with well over 100 speakers proposing talks, but the response was just, well, awesome. Now that the Program Committee has done its work (thanks again, PC members!), here’s how it came down for me:
First, I’m doing a plenary session in the main hall which will be 90 minutes instead of 60 and so will let me combine and condense material from my proposed talks on Standardization Update, Garbage Collection, and C++ ABI, to make a single forward-looking ‘endnote-y’ session. Here’s the merged title and abstract:
C++ Today and Tomorrow: C++14, a Gaggle of TSes, and Beyond
This talk starts with a standardization update: By the time we meet at CppCon, C++14 might already be ratified. But that’s only one of eight (so far) work items now in flight. This session will start off with a summary of the new features coming in C++14 itself, followed by a tour of the seven (7) near-term separate Technical Specifications already underway – think of these as the “C++14 wave” of deliverables, covering standard support for everything from file system access and networking, to concurrency and parallelism, to concepts and transactional memory. In each case, we’ll get a feel for what each major feature looks like and how to use it, and why it’s important for the standard and for your own portable C++ code.
Then we turn to future directions: What two features are expected to be pillars of C++17? What other work is being done, and what other problems need to be addressed, and how, for C++ to continue to fulfill its mission to be a modern close-to-the-metal systems programming language? Sutter will share thoughts on two specific forward-looking topics: First, how garbage collection can be added well to C++, directly complementing (not competing with) C++’s existing strengths and demonstrating why, as Stroustrup says, “C++ is the best language for garbage collection.” And second, why and how we might develop a standard C++ ABI, including directly addressing the #1 valid reason to use C instead of C++, and removing a major obstacle to sharing binary C++ libraries in a modern way.
Second, I’m doing the lock-free programming talk as a regular talk:
Lock-Free Programming (or, Juggling Razor Blades)
Example-driven talk on how to design and write lock-free algorithms and data structures using C++ atomic – something that can look deceptively simple, but contains very deep topics. (Important note: This is not the same as my “atomic Weapons” talk; that talk was about the “what they are and why” of the C++ memory model and atomics, and did not cover how to actually use atomics to implement highly concurrent algorithms and data structures.)
The talk that didn’t make the bar this time was Modern C++ Style: Idioms of C++11/14. It’s a shame, because I think it’s a strong talk, but some of its material will be covered well in talks by other speakers, and the 1-3 hours this talk would have occupied will be put to even better use by up to three other talks on other modern topics.
I’m really looking forward to being in the audience for the talks that take the place of this one, even as I look forward to re-proposing this talk for next year’s CppCon.
I hope to see many of you at CppCon.