I’ve just returned from the week-long CppCon 2014 in Bellevue, Washington. Here’s what I experienced.
I’ve absorbed a great deal from a variety of C++ developer conferences – CppNow, Going Native, C++ And Beyond – but always virtually, via video and webcast. This was an opportunity to jump into the thick of things and participate in person. With community heavyweights like Herb Sutter and Scott Meyers in attendance I knew the content would be stimulating and informative. (Honestly, the speaker list featured nearly every name in the “C++ royalty” that you could imagine. I smiled to myself seeing Bjarne Stroustrup standing in the registration line like he was just another attendee.) So when the conference’s early-bird admission opened in March, I eagerly sent in my hard-earned dollars and blocked off the week of September eighth on my calendar.
The technical content provided by the speakers was impressive in its depth and variety. Some talks were wholly focused on low-level intricacies of the language. Others were much more general and highlighted the usages of the language in an applied manner. The latter talks included presentations about the F-35 Joint Strike Fighter from a Lockheed-Martin developer, and a particularly well-presented session about the Mars Science Laboratory rover “Curiosity” by an engineer from JPL. While all the talks had their own appeal and value, I found the latter sessions particularly interesting and rewarding. It’s one thing to learn details of data structure optimization or to contemplate exception safety – but it’s quite another to see how JPL’s rover uses stereoscopic computer vision to autonomously select, plot and drive routes on another planet. Profoundly impressive stuff.
A fact of life with conferences like this one is this: you cannot attend every interesting session. Multiple tracks of fantastically interesting material ensure that you will miss things. A corollary to that is the fact that some of the content is presented at such speed and depth, it is impossible to absorb in the first sitting. Fortunately the CppCon organizers will be making the video recordings of every session available, presumably in just a few weeks. It is telling that a good portion of my hastily scribbled notes are items like “Defens. prog. 00:50 – revisit!” and “DCL – learn more!” I am quite eager for the videos and presenter notes to be made available online so that I can shine some light on my many questions.
The observed technology ran the gamut. It was quite unlike, say, a Ruby on Rails conference or ADC, where glowing Apple logos and lots of polished aluminum dominate the view. Here I saw a healthy mixture of sleek Thinkpads and MacBooks, colorful Lumias and black Nexus devices. Windows, OS X and Linux in about equal amounts. Android perhaps the dominant phone OS. And yes, a goodly portion of polished aluminum. C++ is, after all, a cross-platform development tool and the variety of devices reflected that.
One unexpected, interesting, and frankly depressing aspect of such a conference that I must mention is the terrible loneliness that is the mantle of the solo attendant such as I. Most others seemed to have been sent in groups of two to three from their respective development houses. Now, you have to really consider the type of person that attends a C++ programming conference, and realize that it’s a thoroughly self-selecting crowd: brainy, shy introverts with bags of electronic devices. The result is a fairly un-surprising state machine:
The latter state especially makes things difficult, for during the actual prime “meet and socialize” time people are emanating a very standoffish vibe. Society’s current etiquette is not to bother a device-absorbed person. The interstitial break periods were not at all like a cocktail party or wedding where people are primed for handshakes and hellos, I’m sad to say.
Another disappointing observation was the severe gender skew of the audience. Out of nearly six hundred attendees, there were, I suspect, no more than ten or fifteen females in the entire audience. We know that software engineering is battling gender challenges and working hard to become more accessible to women, less of a boys’ club… but to see such a marked imbalance was a little eye-opening. I hope that the positive efforts to bring more women into software engineering will eventually put an end to such severe imbalance.
In retrospect several sessions are particularly memorable and noteworthy. The most interesting was the discussion of the Mars Rover’s autonomous behavior, a topic that greatly appeals to my AI interests. The most thought-provoking presentation was John Lakos’ “defensive programming” talk, the concepts of which I am still absorbing. And Vittorio Romeo’s game programming session deserves a prize for sheer enjoyment value and his clean, modern code style. One of the most impressive take-aways from the conference as a whole was the importance of testing. Every single production codebase that was discussed — from the Mars rover, to the F-35 JSF, to the financial code — had strong and well-maintained test suites. The presenters emphasized the importance of their tests’ contribution to the code reliability and maintainability; it was clear that automated testing was no afterthought, but an established and integral part of each house’s development and release workflow, and critical to the robustness of the delivered product.
My hat is off to the conference organizers. Putting on a conference such as this one is, I imagine, a Herculean task. Nice touches like ample and free coffee, snacks like fruit, pastries and bagels, even hummus and pita in the afternoon went a long way to keeping the blood-sugar and caffeine levels high, and the volunteer staff kept the operation running smoothly. John Kalb and the other staff derserved every bit of the thanks and applause that they received.