This is the first CppCon hybrid (in person and virtual) conference, and in my opinion, it was a success in terms of content and organization, particularly from the virtual side. Sure, there were the occasional quirks, or the first day emergencies if one didn’t read the “instruction manual” (ahem) beforehand. But ’nuff said.
I’m writing this trip report while the experience is fresh, and before the glitter fades, drinking a hot cup of coffee while everybody else sleeps.
The Words of the Conference
I’ve joked in the past that every conference seems to coin a term that other presenters and attendees start using. Last year’s it was incantation (if C++ feels like magic to you, then you know why).
This year the words of the conference were: respect, inclusion and harassment-free. It is sad that at 21% into the 21st century we still have to be talking about this, but thanks to the organizers for making this a conference where everybody is treated respectfully.
There were two formats: in person, which you had to shell some green (a.k.a, money) to land a seat in the conference and a bed in the Gaylord Rockies hotel or a nearby hotel. This is no different than in 2019, albeit the attendance numbers I ignore (I remember Jon Kalb mentioning the number of attendees, but that detail escapes my mind. A constraint for attendees this year was being able to fly to the U.S. due to COVID, even while vaccinated.
I will concentrate on my experience using the virtual format.
The virtual format, which is the one I used, had an excellent body of volunteers and presenters that were answering every question I had. The conference used a Discord server with plenty of channels, and again, people were very, very helpful. Several of the volunteers were from Europe, which brings me to a kudos moment: thanks to the organizers for accommodating attendees from all over the world; even though the schedule was early (at least for me: I gave a lightning talk and had to get up at 4 AM PDT to be ready for 5 AM). It shows the commitment to the C++ community and I for one appreciate it.
There were three virtual facilities to be aware of: Discord for social media, digital medium (CppCon.digital-medium.co.uk) and Zoom for the presentations online, and Gather Town, a virtualization of the facilities that required too much fingering, in my opinion.
Discord, as mentioned above, was key to follow up on several topics. It also had specialized channels, but I mostly used the ones referring to the online experience. Again, the body of volunteers was excellent. It was funny to see some of the statuses as “Sleepy” for those of us on the West coast in the U.S.
The presentations were available from a nifty website from digital medium (CppCon.digital-medium.co.uk) that updated the upcoming sessions and one could just click the link and join using Zoom, which in my opinion was a nice choice. It a was very flexible and familiar medium–who doesn’t use Zoom, and one could chat with other attendees and post questions. Furthermore, it allowed presenters to pre-record their presentations and answer questions as the session was in progress. Two sessions that come to mind are Sy’s and Bryce’s.
Now we come to Gather Town. This is the part that I did not enjoy much. A few of the online sessions had to be accessed through Gather Town. Now, you could “practice” beforehand and move around using, literally, your arrow keys. I was late to a couple of sessions because on the first attempts either the session posted did not have a Gather Town shortcut or I missed it. Regardless, to participate over a virtual microphone it was confusing–a session by Nico Josuttis comes to mind, where it was painful to have to wait until a participant could “walk to the mike” and ask the question, receiving instructions online. Nico was patient, though ;-).
I guess that as a participant I was expecting last year’s virtual format, but alas, it wasn’t so. To the organizers credit, the links appeared in Discord and one could just click on them and then join a session in Gather Town by “picking a seat” and clicking X. Yep, X marks the spot.
As feedback to the organizers, this is one of those cases where a physical metaphor does not translate onto a virtual one.
Well, there were too many (you can find them in the expanded schedule, right hand side here). My favorite was the Software Design track and gravitated towards those sessions, as well as the Async/Concurrency and Parallelism and Algorithms/Functional tracks.
My Favorite Keynotes
Keynotes are the anchors of the conference, and as one would expect, they rise above the common talks and concentrate on the timeless and not the timely. I will be brief here and say that my favorite keynotes were Value in a Procedural World, by Lisa Lippincott, and Extending and Simplifying C++, by Herb Sutter. I’ll be writing more about those keynotes in future posts.
My Favorite Session
I have to say it. Eric Niebler‘s Working With Asynchrony’s Generically: A Tour of C++ Executors (Parts 1 and 2) , was a delight to attend. Besides the expertise, the presentation was well done, with animation, coloring, and examples. Definitely worth your while once the sessions start to appear in YouTube.
My Other Favorite Sessions
Jason Turner – Your New Mental Model of constexpr. This is the first time I attend one of Jason’s sessions, and boy, it was an attention turner (punt intended). The session is a tour around
constexpr from its beginnings to what it is today, and Jason’s experience as well as an accomplished trainer, made the session very enjoyable. And sure, I reminesced that I was playing Space Invaders while waiting at the bus station in my college years. Oh, did I mention that a Commodore 64 was my first computer?
Walter Brown – Correctly Calculating Min, Max and More: What Can Go Wrong? Well, apparently, a lot! Joke aside, this is a talk that I can explain to my daughter (at least half of it) even though she programs in Java and I like Walter’s style. By the way, I went back to es.cppreference.com and documented std::less<void> in Spanish.
Klaus Iglberger – Type Erasure: Breaking Dependencies – A Design Analysis. This is a prescriptive talk that everybody should attend. I had seen other talks and read material online, but this one brings it home. The analogy of the Strategy design pattern went a little too far, in my opinion (Strategy encapsulates an algorithm), so not everything is a strategy (policies are not strategies, so policy-based design wouldn’t qualify as a strategy, again, in my opinion), but the talk is very solid.
Andrew Lumsdaine and Phil Ratzloff – Generic Graph Libraries in C++20. This is a very promising talk. I keep a copy of The Boost Graph Library in my bookshelf and hearing Andrew, one of the authors, express that C++20 is ripe for standardizing graphs in C++ was music to my ears. This is one of the projects that I’ll probably join if there’s space in it.
Bryce Lelbach – C++ Standard Parallelism – Nice presentation, easy flow, prerecorded, which gave Bryce the time to answer questions on the fly. Between becoming a New Yorker, baking, and leading the LEWG, I don’t know how he finds time for anything else, but check this out. And if you can say
Lightning talks are supposed to be light. and so they were. That’s C++ for the rest of us, that love it and live it, and some loath it. The talks were nicely coordinated online and in person. In my particular case, kudos to Phil Nash for herding us, a bunch of C++ enthusiasts and practitioners onto the
void. Nah. Check them out once they’re online. You’ll have fun. I gave one entitled C++ en tu idioma, where I share my experience in slowly, very slowly documenting es.cppreference.com, the brother/sister site of cppreference.com, but in Spanish. If you have some time, check the talk and the site, and participate!
I attend one C++ conference a year, and this one is it. It is the time for me to recharge, to absorb, and use it as a directive on what to learn and expect in the coming years The virtual format worked for me, and I hope that the organizers keep it in coming years. The “human touch” is needed too, and I’m glad that there was an in-person option too. For personal reasons I had to cancel my trip to Aurora, and I appreciate that the organizers provided a hefty window for refunds, and an affordable price for online attendance.
Where will C++ be in C++23, C++26, C++29? (heck, hopefully I’m retired by the time C++29 hits the proverbial stands). Well, if this conference is an indication, C++ will be used in even more spaces than it is today, richer, hopefully easier to use, and as I’ve said before, what I love about the language is its expressiveness, its flexibility, and of course, its community.