{"id":1569,"date":"2018-05-16T07:42:24","date_gmt":"2018-05-16T14:42:24","guid":{"rendered":"http:\/\/www.elbeno.com\/blog\/?p=1569"},"modified":"2018-05-16T10:41:40","modified_gmt":"2018-05-16T17:41:40","slug":"cnow-2018-trip-report","status":"publish","type":"post","link":"https:\/\/www.elbeno.com\/blog\/?p=1569","title":{"rendered":"C++Now 2018 Trip Report"},"content":{"rendered":"<p>Last week, a little fewer than 150 C++ programmers gathered in Aspen, CO for C++Now 2018. This year the conference was scheduled before Mother&#8217;s Day, so with it being quite a bit earlier than usual, I was half-expecting snow and travel delays. In fact last week turned out to be uniformly lovely, for the most part with clear skies and temperatures in the low 20s Celsius.<\/p>\n<p>After a connection through Denver, I arrived on Sunday afternoon ready for a week of geeking out about C++. As always, there were many talk slots where I had to make a tough choice, but professional recording by Bash Films means the ones I missed should be <a href=\"https:\/\/www.youtube.com\/user\/BoostCon\">on YouTube<\/a> in just a few weeks. Here are a handful of the standout presentations.<\/p>\n<p><strong><em>Smart Output Iterators<\/em><\/strong> &#8211; <a href=\"https:\/\/twitter.com\/joboccara\">Jonathan Boccara<\/a><\/p>\n<p>I met Jonathan for the first time in person on Sunday night, although I&#8217;ve been reading his blog for a while and really enjoyed the recent <a href=\"https:\/\/www.youtube.com\/watch?v=bXkWuUe9V2I\">algorithms talk<\/a> he gave at ACCU. He has an infectious enthusiasm for C++ that comes across well, and this talk was very enjoyable. This sort of thing is right in my wheelhouse &#8212; I&#8217;m a sucker for algorithms and code structure &#8212; and exploring the space between the existing STL and the Ranges TS sparked in me a few ideas for exploration. I spent a while talking to Jonathan afterwards and I have some things to work up in the coming days and weeks.<\/p>\n<p><strong><em>Fancy Pointers for Fun and Profit<\/em><\/strong> &#8211; <a href=\"https:\/\/bobsteagall.com\/\">Bob Steagall<\/a><\/p>\n<p>The problem with submitting multiple talks to a conference is that they might get accepted, which is how Bob ended up with 3 talks to give at C++Now! Allocators are a hot topic at the moment, with lots of changes for C++17 and more than a few conference talks about them over the past year. Bob has been doing a lot of work in this area and he presented a nice demo of relocatable heaps with an impressively small amount of code. I think this has a real potential for saving time spent in serialization; it&#8217;s basically a memcpy between machines!<\/p>\n<p><strong><em>My Little <code>*this<\/code> Deduction: Friendship is &#8230; Uniform?<\/em><\/strong> &#8211; <a href=\"https:\/\/twitter.com\/atomgalaxy\">Ga\u00c5\u00a1per A\u00c5\u00beman<\/a><\/p>\n<p>This was the kind of presentation that you only get at C++Now: a room full of C++ nerds arguing and trying to pin down the truth, just about kept on track by the presenter. It&#8217;s the sort of presentation that gets irked comments on YouTube, but for those of us in the room it&#8217;s brilliant fun. I think Ga\u00c5\u00a1per knew what he was getting into, and did a great job taking the audience through the ramifications of the proposal, even though at times they wanted to jump a dozen slides ahead! Anyway, this talk got the &#8220;most educational &#038; inspiring&#8221; award, and well deserved. Congrats, Ga\u00c5\u00a1per! This is going to be an interesting one to caption&#8230;<\/p>\n<p><strong><em>Initializer Lists are Broken, Let&#8217;s Fix Them<\/em><\/strong> &#8211; <a href=\"https:\/\/twitter.com\/lefticus\">Jason Turner<\/a><\/p>\n<p>This was a great talk of the kind we&#8217;ve come to expect from Jason: polished material taking us through various implementation options to solve a problem, with a good amount of audience participation, and of course exploration with <a href=\"https:\/\/godbolt.org\/\">Compiler Explorer<\/a>. Jason: &#8220;I put this in Godbolt earlier&#8230;&#8221; Matt: &#8220;Oh, I wondered what that was!&#8221; It turns out that <code>std::initializer_list<\/code> has a few gotchas and &#8212; surprise &#8212; isn&#8217;t the panacea it may have initially seemed to some. Oh well. Jason&#8217;s new presentation secret is the ability to click on any code sample and bring it up inline in Compiler Explorer. That&#8217;s nifty.<\/p>\n<p><strong>Other talks and the Keynotes<\/strong><\/p>\n<p>There were so many more great talks &#8212; I really enjoyed <a href=\"https:\/\/twitter.com\/cppsage\">Matt Calabrese<\/a>&#8216;s <em>Argot: Simplifying Variants, Tuples and Futures<\/em>; Zach Laine&#8217;s talks on Unicode support; <a href=\"https:\/\/twitter.com\/tvaneerd\">Tony Van Eerd<\/a>&#8216;s <em>Words of Wisdom<\/em>; David Sankel&#8217;s <em>C++17&#8217;s std::pmr Comes With a Cost<\/em>; and Alan Talbot&#8217;s <em>Moving Faster: Everyday Efficiency in Modern C++<\/em> to name just a few.<\/p>\n<p>On the surface, Lisa Lippincott&#8217;s opening keynote and <a href=\"https:\/\/twitter.com\/johnregehr\">John Regehr<\/a>&#8216;s closing keynote (locknote?) were completely different &#8212; one talking about high level ideas for modelling program shape mathematically, the other concerned with compiler optimizations and undefined behaviour. I would say the similarity between them was the rigour each presenter brought to their subject. Both Lisa and John also have a talent for making the complex seem simple &#8212; I have a new framework to think about contracts now, and I have a deeper understanding of the reasoning and tradeoffs behind optimizations and undefined behaviour choices.<\/p>\n<p><strong>My Talk<\/strong><\/p>\n<p>This year, my talk <em>Easy to Use, Hard to Misuse: Declarative Style in C++<\/em> seemed to me a bit of a departure from previous talks I&#8217;ve given. Generally, my talks do have some well-founded ideas behind them, but they tend to involve a large amount of code experimentation beforehand, and that is rather easy to talk about. This time, I had plenty of code examples, but they weren&#8217;t especially modern; this was much more a talk about the everyday basics of programming, and an attempt to think more deeply about good practices and consciously elucidate concrete guidelines. I&#8217;m glad that it was very well received, and that the time management worked out!<\/p>\n<p>It&#8217;s sad to leave Aspen again, but I&#8217;m back to my regular schedule now with lots of new things to contemplate, disseminate among my colleagues, and investigate.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week, a little fewer than 150 C++ programmers gathered in Aspen, CO for C++Now 2018. This year the conference was scheduled before Mother&#8217;s Day, so with it being quite a bit earlier than usual, I was half-expecting snow and travel delays. In fact last week turned out to be&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[],"class_list":["post-1569","post","type-post","status-publish","format-standard","hentry","category-cpp"],"_links":{"self":[{"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1569"}],"version-history":[{"count":4,"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1569\/revisions"}],"predecessor-version":[{"id":1573,"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1569\/revisions\/1573"}],"wp:attachment":[{"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1569"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elbeno.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}