Trip Reports | Videos | Slides | Thanks

Great Success

Our experiment with an online experience for CppCon 2020 has proven to be a great success! We had almost a thousand (994) attendees that were willing to take a chance on our first online conference. To put that in perspective, that’s over fifty percent more than joined us for our first onsite conference in 2014.

In our attendee survey, it was clear that people preferred the onsite experience, but over eighty percent were either pleased or very pleased about attending an online CppCon. Some, who are unlikely to be able to make it to Aurora, were grateful for the opportunity to finally get to attend CppCon. I’ve appended a few comments to this post.

Trip Reports

For more in depth comments on the online CppCon experience, here are a few Trip Reports:

Javier Estrada is reviewing sessions in several posts on his Se Habla C++ blog.

Continue reading

Try a Taste of CppCon

We’ve had a couple of amazing days at our new online conference venue.

If you’ve been curious about how it’s working, we’ve got an opportunity for you. Since the conference is about half over, how about half off?

Use this registration code to register at a special rate of half off the regular $300 rate. For just $150 you can attend CppCon and see what all the excitement is about.

CppCon 2020 Keynote: Performance Matters by Emery Berger

Keynote Speaker: Emery Berger

Emery BergerEmery Berger is a Professor in the College of Information and Computer Sciences at the University of Massachusetts Amherst, where he co-directs the PLASMA @ UMass lab.  To fully appreciate the work that Emery has done and the academic honors that he’s received, you really need to read his bio.

Emery takes performance seriously and that’s what this talk is about. He’ll discus a new approach to profiling called causal profiling. This approach has led to the development of a tool called Coz, which ships as part of standard Linux distros and supports C++, Rust, and Java. “Guided by Coz, we improved the performance of Memcached (9%), SQLite (25%), and accelerated six other applications by as much as 68%; in most cases, this involved modifying less than 10 lines of code and took under half an hour (without any prior understanding of the programs!).”

From his talk’s description:

In this talk, I’ll first discuss some of the significant and surprising challenges facing C++ programmers trying to achieve high performance on modern hardware platforms: performance is far less stable and predictable than you might think! I’ll present some experimental evidence that strongly suggests we can’t count on compiler optimizations to help us out of this hole: in particular, I’ll show — using a new experimental methodology — that the difference between clang’s -O2 and -O3 optimization levels is essentially indistinguishable from noise.

Instructor Interview: Patrice Roy / Managing Memory

In this instructor interview, Kevin Carpenter welcomes Patrice Roy for a discussion of his CppCon Academy class, Managing Memory. Patrice has been a professor for over two decades and has been to every CppCon, but this is his first time at CppCon as a Ph.D graduate!

Patrice and Kevin discuss what attendees will get out of his class. This class is for people coming from other languages that want to do C++ right and for people who have been writing C++ that want to do it better, to get more control, more speed, and more resilience. There are a number of details of specialized knowledge, but they can be simple and fun. People will end the class knowing how to do things because they’ll have done them in the class.

In addition to his class, Patrice is also going to be presenting two talks for the Main Program. The idea for Some Things C++ Does Right comes from identifying the things about C++ that he misses most when teaching classes that use other languages.

The Surprising Costs of void() (and Other Not-Quite-Innocuous Evils) comes from the fact that as a professor grading the work of students he reads a lot of code written by bright people that are still learning, “so they do all sorts of weird things.” When he pointed these “weird things” out to other instructors he found that many knowledgable, experienced people don’t always recognizes some of these mistakes for what they are. This talk will give you a lot to think about.

Instructor Interview: Andreas Fertig / When Efficiency Matters

In this instructor interview, Kevin Carpenter welcomes Andreas Fertig for a discussion of his CppCon Academy class, Modern C++: When Efficiency Matters. This is Andreas’ first time at CppCon.

Andreas and Kevin discuss what attendees will get out of his class and mention that Andreas’ lambda expression talk at Code Dive may give people a taste of what his class will be like.

Of course, they discuss Andreas’ delightful C++ Insights which he uses, along with Matt Godbolt’s Compiler Explore, in the class to help attendees visualize what the compiler is doing with their code.

In addition to his class, Andreas is also going to be presenting the two-part Back to Basics: Templates during the Main Program. He relates that when he teaches classes on modern C++, he frequently hears the comment from students that, although this wasn’t the point of the class, it made them believe in templates in way they’d not perviously. He will be sharing some of that material with attendees in the Back to Basics Track.

CppCon 2020 Keynote: Neighborhoods Banding Together by Lisa Lippincott

Keynote Speaker: Lisa Lippincott

Lisa LippincottLisa Lippincott designed the software architectures of Tanium and BigFix, two systems for managing large fleets of computers. She is chair of the numerics study group of the C++ standardization committee.

This talk builds upon the discussion of local reasoning in last year’s talk The Truth of a Procedure, but is intended to be understandable independently.

From her talk’s description:

In this talk, I will take local reasoning for granted, and look at the process of joining neighborhoods of local reasoning together, and the global reasoning that ensures they form a coherent whole. I will show how we can prevent incoherent joining, and prevent the emergence of unbounded non-local recursion as the program is linked together.

CppCon 2020 Program Available

The Main Program for CppCon 2020 is now live!

We’ll have over seventy-five regular sessions delivered by the best C++ presenters in the industry, many returning from previous years as well as some exciting new voices. We’ll have five or six concurrent tracks full of sessions containing C++ best practices and what you need to know about the brand spanking new C++20.

This year’s Main Program features three special tracks including the Back to Basics Track, the Embedded Track, and one surprise that we’ve not announced yet.

In addition to the Main Program, we’ll have panels, lightning talks, BOFs, exhibitors, social events, classes, and a new feature, online Ask Me Anything (on C++). These AMAs are focused on creating additional engagement opportunities with presenters and other attendees.

Most of the program is published, but we are still working a few surprises, so keep checking back.

We’d like to thank the Program Committee, our speakers, and the many professionals who proposed talks which we, unfortunately, just couldn’t squeeze in this year. Thank you for your hard work and enthusiastic support for this year’s program!

If you aren’t certain about CppCon, just watch (one year old) video!

If you recognize someone you know, let them know that you’ll be looking for them online!

Instructor Interview: Mateusz Pusz / C++ Concepts

In this week’s instructor interview, Kevin Carpenter welcomes Mat Pusz for a discussion of his CppCon Academy class, C++ Concepts: Constraining C++ Templates in C++20 and Before. Mat quickly demonstrates the power and importance of constraining types when calling functions. His class will cover how to do this with the new concepts feature in C++20 and also how to do it if you are not yet using C++20.

In addition to his class, Mat is also going to be presenting A Physical Units Library For C++ during the Main Program. He will be discussing his library and the progress that the Standards committee has made toward including it in an upcoming standard.

Mat and Kevin also discuss the challenges and opportunities of online training. Mat discusses some of the techniques he has developed and the hardware and software tools that he uses.

Watch this space for more interviews with Kevin and CppCon presenters.

CppCon 2020 Keynote: C++20 by Marc Gregoire

Keynote Speaker: Marc Gregoire

Marc Gregoire is a C++ blogger and author of Professional C++ and co-author of C++ Standard Library Quick Reference. He is a software architect at Nikon Metrology with experience developing C++ programs running 24/7 on Windows and Linux and is the founder of the Belgian C++ Users Group.

The title of Marc’s talk is C++20: An (Almost) Complete Overview. C++20 is going be discussed quite a bit at this year’s conference and in addition to providing an overview of the new language/library changes, Marc will guide you to other CppCon talks on C++20.

If you want a complete overview of all C++20 features, including references to other more deep-dive sessions at CppCon 2020 on certain topics, then this session is for you.

Marc’s talk will give you the confidence and familiarity you need to embrace the latest version of C++.

From his talk’s description:

This presentation gives an overview of (almost) all new features in both the language and the Standard Library. Some more exotic features will be left out. New language features include

  • modules,
  • coroutines,
  • concepts,
  • templated lambdas,
  • constexpr changes,
  • designated initializers,
  • the spaceship operator,
  • string literals as template parameters,
  • feature test macros,
  • conditional explicit,
  • immediate functions,
  • and more.

Instructor Interview: Phil Nash / Accelerated Test Driven Design

In this week’s instructor interview, Kevin Carpenter welcomes Phil Nash for a discussion of his CppCon Academy class, Accelerated TDD: For More Productive C++ . Phil shares the origin story of Catch, the popular testing framework that he authored to support better testing in C++. Kevin has taken a previous CppCon Academy class on testing with Phil. Phil explains that he focuses less on what TDD is (which can be explained in five minutes using one slide) and more on how to apply and get the benefits of TDD in real-world code bases.

Phil also chairs the C++ on Sea conference, which was held earlier this year as an online event using Remo (the same platform that CppCon 2020 will use). He discusses the challenges of an online event and the rationale behind use of Remo for C++ on Sea.  As Phil is co-chair of this year’s CppCon we will benefit from his prior experience organizing a conference on Remo.

Kevin and Phil also discuss the two Main Program sessions that Phil will be giving this year. One is a must-see for anyone that isn’t taking the TDD class and the other is on C++ paradigms.

Watch this space for more interviews with Kevin and CppCon presenters.