Highlights of CppCon 2015
Oh my, how time flies by! One month ago, I had the pleasure to travel to Bellevue, Washington, to attend CppCon 2015. It was a blast, and as a C++ developer, easily the best conference I ever attended. Below, I try to summarize my personal highlights of the talks I attended live. Note however that there were up to six sessions running in parallel, meaning I missed most of the conference. Thankfully, nearly all sessions were recorded in high quality and are already accessible online. So, be sure to not only look at the small selection of my personal highlights below, but also look at the ton of other high-quality talks that I missed!
C++ Core Guidelines
This year’s biggest announcement for the C++ community at large was in my opinion the release of the C++ Core Guidelines. There were two keynotes on that topic, one by Bjarne Stroustrup on Writing Good C++14 and the other one by Herb Sutter on Writing Good C++14… By Default.
These guidelines are aiming at advocating a “smaller, simpler, safer language” subset of C++. Potentially this effort can fix a whole plethora of common bugs found in C++ code. Note however, that the hundreds of rules are not meant to be read like a book cover to cover. But they will be useful for cross-referencing from within code reviews, tools and real books.
One astonishing example of how they can be applied to produce safer code is the Guideline Support Library (GSL). Together with static code analysis tools, currently developed by Microsoft, they give a foundation to prevent stack overflows, resource leaks and more, and that at close to no runtime overhead. If you want to dig deeper, there have been more talks on this topic which I sadly missed to see live:
- Marshall Clow on string_view
- Neil MacIntosh on Evolving array_view and string_view for safe C++ code
- Gabriel Dos Reis on Large Scale C++ with Modules: What You Should Know
- Gabriel Dos Reis on Contracts for Dependable C++
To me, it is interesting to see how much Microsoft is investing in that area, and I really welcome that they plan to open source their static code analysis tool which will be released in the coming weeks for Visual Studio 2015. See Neil MacIntosh’s talk on Static Analysis and C++: More Than Lint for more information.
I’m also really looking forward to seeing how the guidelines will evolve over time, and hope to be able to try them out soon on non-Windows platforms with Clang and/or GCC. Furthermore, it will be interesting to see how we can apply the rules to Qt.
The other keynotes of CppCon were also all of very high quality. I’m a big fan of Sean Parent’s previous talks on Better Code. As such, it comes without surprise that his keynote on Better Code: Data Structures was again truly inspirational. Similarly, the elegance of the solution Eric Niebler’s presentation on Ranges for the Standard Library proposes for a specific problem again took me by surprise. Coming up with ideas on how to improve Qt to allow similar code, e.g. by wrapping it within reactive frameworks such as RxCpp, sounds again like an interesting research project for the future.
Then, as a big fan of the Linux perf subsystem and accompanying tools, it was a pleasure for me to listen to Chandler Carruth talking about Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!. This talk, together with Bryce Adelstein-Lelbach on Benchmarking C++ Code, give a very good overview of what to keep in mind when benchmarking C++ code, and how to do it correctly. Oh, and while talking about performance analysis, I also want to point out the very interesting presentation by Scott Wardle on Memory and C++ debugging at Electronic Arts, where he presents their in-house Delta Viewer application that is not only used for debugging, but also for improving the performance of AAA games at EA. I’d love to see some similar UI tool for Qt and perf in the future…
My personal prize for most entertaining talk(s) goes without thinking to Andrei Alexandrescu. His two sessions, one on Declarative Control Flow, the other on std::allocator is to Allocation what std::vector is to Vexation, more resembled a stand up comedy show from the laughs he triggered in the audience. Nonetheless, the content he delivered was once again superb and thought provoking. I can wholeheartedly recommend watching these two talks.
Conceptually related, but not nearly as entertaining, was Howard Hinnant’s presentation of his C++14 approach to dates and times. I deeply respect both persons for their experience and knowledge when it comes to designing good API for complex problems, resulting in easy and fast solutions.
To close with this summary of my CppCon 2015, I can only repeat that this is but a fraction of what was shown at CppCon 2015. I invite you to watch the recordings of every talk that is of interest to you. Similarly, if you haven’t done so already, look at past year’s recordings, which are just as educational! Finally, if you are interested to see my own talk at this year’s CppCon on Modern User Interfaces for C++, go watch it. In hindsight, I’d have liked to go more in-depth: My talk gave an overview about Qt and what you can do with it, and I still think that it was good to have. But during my conversations with various people attending the conference, it became clear that there is also high demand for in-depth sessions on Qt, i.e. similar to what we do every year at Qt Developer Days or Qt World Summit. For that purpose, I did a short 10 minute talk about CppCon at this year’s Qt World Summit, and explicitly asked for more people to hand in Qt related sessions for next year. As such, I’m looking forward to CppCon 2016 – with hopefully more Qt related content!
KDAB believes that it is critical for our business to invest into C++, Qt and OpenGL in general, to keep pushing these technologies forward and to ensure they remain competitive.