Report on CPPCon 2018
This is the third time I attend CPPCon.
I won't refer to personal successes at the conference, I will attempt to report as if I were an attendee who would not have involvement with many people who regularly attends the conference.
While the quality continues to be hard to believe, as well as the enthusiasm, and I wholeheartedly recommend colleagues to attend, in my third time I've noticed losing one edge in terms of quality. I watch some older presentations on a regular basis, I'd say older CPPCons had more substantial presentations, you could learn a lot, think about fundamentals you hadn't before, etc. I am pressed to find a classic this year. A presentation I would be watching many times, recommending people to watch it, that will stand the test of time as Walter Brown's compendium of modern metaprogramming. The attitude seems to have evolved a little towards more practical, concrete, specialized, content, things are presented in isolation with fewer attempts to put them in a larger picture. I specially disliked there were too many "catalog" presentations, presentations in which the presenter does not share much insight or experience or attempts to inspire; but the focus is to go over each bullet point, a catalog of the subject matter he is presenting about. To explain by way of comparison, I think The Design and Evolution of C++ is a great book, very insightful, "The C++ Programming Language" makes much more emphasis on being comprehensive, which makes for less insightful reading, and yet, there are the reference manuals, that are necessary but not inspiring at all. Going back to the example, Walter Brown's has "compendium" in the title, yet, it is profoundly insigthful.
We have C++17 and we need to "digest" it, learn its new concepts, for example, the recent understanding of "Borrowing Types" such as
std::string_view, new techniques made possible by if-constexpr and so on, and there was substance, just I felt slighlty less than at '17 and then less than older CPPCons. There is a tendency. I was not convinced with Bjarne Stroustrup's presentation of concepts. I think it lacked vision. Concepts is probably the subject matter that will change this language most profoundly since the incorporation of templates, much more important than presenting as-is the results of the work done at standardization, there is the need for people to start learning in depth how to develop concepts, which seems to require much stronger abstraction skills, syntax be damned. There are important, fundamental questions that have arisen due to the "conceptualization" of C++, for example, the Ranges library has hit many of them, and it has implemented limited versions of concepts with the resources in the language present today, I was hoping there would be plentiful presentations on these things, how to implement concepts now, that way we acquire the abstraction skills, gain experience with the limitations of the language today and are ready to use the features when they get standardized or help the features improve, as it happened with metaprogramming before 2011. Another area would be co-routines. Also, we need more presentations that almost nobody understands, those that we are not ready yet to understand but will help us get there.
It seems the language is evolving faster than what the community is making use of, there may be many reasons for the tendency, what I mean is the value of substantive, inspiring presentations is raising versus solid, comprehensive catalogs of material. I know firsthand how difficult it is to try to provide insights to the CPPCon attendees. I decided to submit a presentation because I thought there may be at least a few insights valuable to the attendees, things that would have taken lots of work, pain and luck for the attendees to discover on their own, to let them know a bunch of techniques have been put together successfully and what the results were. It is very frightening because who knows what they are going to say about what you think are insights, perhaps you are wrong and you embarrass yourself, perhaps you are "right" but fail to connect, communicate to your audience and the value is lost. Best case your work gives you recognition and begins a life of its own, people in the opposite side of the world do the continuation work you had no interest in doing and you can benefit for free from that. Worst case, people get the wrong idea about you and your code. That is why there are very strong incentives to play it safe.
The part of the conference that I like the most are the lightning talks. Perhaps because people feel free to express their insights without the responsibility of delivering a full program item, at least 45 minutes of insights, or 9 times the span of a lightning. Thus, the presenters make us think, laugh, cry and give us a great experience. I thank them all. They are the best.
I found Sean Parent's human interface presentation insightful. I have never thought about the problem of revealing the internal logic of the application to the user. This will keep me busy for years to come. Simon Brand in a few seconds really drove the point home about how programming with monads without monadic interfaces leaves a mess. And the high point of any CPPCon I've been to, which in a way is also the lowest, is the eerie silence before the standing ovation that occurred at the last lighting talk at Bellevue. Gosh! I am so glad to have been in the audience and therefore a part of that moment...
We can not miss attending.