Two weeks ago, I attended the ACCU Conference in Bristol again, and again it was a blast. ACCUConf is by far the most interesting and enjoyable conference I have attended so far.
While ACCU has some roots in C++ programming, ACCUConf is not a pure C++ conference. There is a lot of C++ content, but also content about other programming languages, tooling, processes and soft skills. The range of topics is overall very well-balanced and can be attractive even for programmers who don’t use much C++ or none at all.
Besides that, the people at the conference are not only more diverse than at most other conferences but also extremely friendly and welcoming. When I attended for the first time last year, I had known only a handful of “regulars” via Twitter, but it felt like becoming part of a big family rather than being lost in the crowds. And ACCUConf is by no means a small conference, having a few hundred attendees.
Most of the links below are to videos. Some are not online yet as I write this though, and a few sessions have not been recorded.
This year I was honored to not only have a talk at the conference but also hosting one of the pre-conference workshops. Therefore I arrived already on Monday afternoon, with a small problem: I had two flights from Hamburg via Frankfurt, with only about 10 Minutes to change planes due to a delay in Hamburg. It turned out that my luggage wasn’t that fast and did not arrive until Tuesday midday, so I had some shopping to do on Monday.
The title of the Workshop is “100 baby steps away from spaghetti code”, and it shows the attendees to use small, secure refactoring steps to bring some structure into a messy code base. In this workshop, we used CLion and its automated refactoring capabilities. You can find the material on GitHub. (Shameless plug: If you’d like me to host a workshop like that at your company, get in touch! We have Java and C# versions available, too.)
On Tuesday evening, there was a little gettogether at an Indian restaurant with a few people from the #include C++ community which I will write about a bit later.
Day 1 – Wednesday
The opening keynote was (Diversity & Inclusivity in Tech)[https://conference.accu.org/2018/sessions.html#XDiversityandInclusivityinTech] by Gen Ashley. I really applaud the conference organizers to reserve such a prominent slot to such an important topic. The talk itself fell short of expectations for me, to not say I was disappointed. We were presented a few photos and videos of Women in Tech meetups, which definitely is important work, but that was mostly it. The talk itself ended after ca. 25 minutes.
Next up was my favorite talk of that day: Runtime Polymorphism: Back to the Basics by Louis Dionne. If you think about simple inheritance, think again. Louis is the one who takes hardcore template magic, wraps it in a nice-to-use interface and makes it look easy in the process. The talk focuses more on the “looking easy” part and touches compile-time reflection in the end.
Another great talk was 105 STL Algorithms in Less Than an Hour by Jonathan Boccara where Jonathan shows us his map of the algorithms. The map makes it rather easy to mentally categorize and group all the algorithms we have in the standard library. He then went on to explain all of the algorithms in a visual and very understandable way.
The last full talk I attended on Wednesday was C++ Templates Revised by Nicolai Josuttis. Nico presented a few of the additions we got regarding templates in the last iterations of the C++ standard. It came to quite a few groans when he showed us how e.g.
decltype(auto) can behave in weird and unintuitive ways.
The last slots of days 1 through 3 were reserved for lightning talks. Lightning talks are strictly limited to 5 minutes, and I have seen presenters try to overrun that time only once or twice. They didn’t succeed… Topics are open and range from lighthearted (did you ever try to do FizzBuzz using the preprocessor?) to very serious (e.g. mental illness). The first lightning talk on Wednesday was an invite to join #include C++, which focuses on providing a diverse and inclusive community for developers interested in C++.
Lightning talks were not recorded, but the slides of these and lots of other sessions can be found in the ACCUConf 2018 slide repository.
Day 2 – Thursday
Thursday started with another keynote, Kotlin/Native – Embracing existing ecosystems by Hadi Hariri. I had only heard about Kotlin before, and this talk provided a nice introduction. The language seems to be worth a second look.
After that, I attended How not to lead a team of software professionals by Arjan van Leeuwen where he describes some of the pitfalls he encountered being a team manager. While I had expected something more in the direction of technical team leads, it was still quite interesting to see what daily struggles team managers spend their time with to provide us with a smooth working environment.
Back to C++: C++ Modules and Large-Scale Development by John Lakos was an interesting talk about what the proposed C++ modules can (and can not) do for us. It was not quite the slide-fest I would have expected – John did not come even close to the 15 slides per minute I had heard of.
Before Thursday’s Lightning Talks, I attended the (for me) obligatory Kevlin Henney talk Procedural Programming: It’s Back? It Never Went Away. Kevlin’s talks are always informative and entertaining. This time he managed to put code examples in 10 different languages into his slides – including Plankalkül.
After another set of lightning talks, day 2 ended with the conference dinner, where speakers and attendees are mixed between the tables after each course. After the dinner, there was a long evening and a mission to accomplish…
— Björn Fahller (@bjorn_fahller) April 11, 2018
Day 3 – Friday
Friday’s keynote was The Shape of a Program by Lisa Lippincott. Lisa gave an introduction to the topology of imperative programs, and how it may be used to reason about the correctness. It was a good talk and felt a bit like going back to university 😉
Another must see for me was [Simplicity: not just for beginners] by Kate Gregory. As you know, I think that simplicity is very important, and as Kate presented in this great and well-rounded talk, it is all but easy to achieve.
Before Friday’s lightning talks, I had my own very interactive session about Code Reviews. I had done a talk with pretty much the same material at Meeting C++ 2017. The difference was that ACCUConf officially does not want pure frontal lectures, so I asked the attendees for their opinions and experiences in the matter. I learned a lot in the process, especially that in this format, time management can be pretty hard and people like to discuss a lot 😉
Day 4 – Saturday
I started the last ACCUConf day attending another C++ session – These 10 tricks that only library implementors know! by Marshall Clow and Jonathan Wakely. To be fair, a few of those tricks, e.g. tag dispatch, are not only for library implementers. However, there still were a few interesting takeaways for me, and the video is definitely worth watching.
Next up for me was Scripting Git by CB Bailey. I attended this talk especially because I am currently doing a lot of the DevOps stuff in our code base. I feel that I have not even scratched the surface of what I can do with Git to glue all the bits and pieces together, and this was a nice peek into the possibilities of the tool.
The conference concluded with the last keynote: Software development – learning to walk again by Seb Rose. For me, it was the most enjoyable talk of the conference. He compared his personal project of walking through France for two weeks with real software projects, discovering a surprising lot of parallels.
To me, ACCUConf has become more than just a normal conference, as I really enjoy not only the diversity of session topics but also the people. I have learned a lot, played some chess under the influence of adrenalin overdoses, met some “conference friends” again and made new ones. I am looking forward to next year!