Compiling thoughts from Meeting C++ 2017
November 27, 2017This was our first time attending MeetingCpp. We came back from Berlin with many useful lessons and great sightseeing photos. We even got a feel of some recent buzz in C++ – but we’ll come back to that later.
Most of the presentations were quite interesting: we would like to point out the lecture about local memory allocators by John Lakos, which inspired us to further tune the way we manage memory to accelerate the runtime performance of our apps.
Another very interesting talk was about constexpr, where C++ trainer Jason Turner talked about practical ways of applying constexpr in the code base and the advantages of that approach. It helped us get a better idea on how to organize our code differently to allow greater usage of constexpr in order to reduce compiled binary size and app runtime.
Other than those, there are several more talks which caught our attention. Kevlin Henney had a great presentation about the differences between imperative and declarative approaches, as well as a couple of useful techniques applicable in C++, such as unit testing catch2 framework. In his talk about the advantages of free functions, Klaus Iglberger demonstrated why free functions are better than member functions and how they maximize the benefits of object-oriented programming.
Finally, Boris Schäling shared with us some tips and tricks from his experience on how to recognize world-class C++.
An interesting trend we noticed on this year’s conference was the increasing usage of C++ in app development (even the Meeting C++ website was initially made as a C++ app and then compiled into JavaScript, according to its creator!). It’s good to see C++ be used in this area. It’s certainly expected to make the apps run faster and with less memory, but there is another ongoing trend that actually makes the opposite happen. Some try to go around the complexity of C++ by introducing various overheads, and while they do indeed make the app development easier, it comes at the price of significantly slower performance and greater memory consumption. The same effects come from using more typical languages for app development (such as C#, Java, or Python), but at least those are easier to work with.
C++ will always be hard(er), but rewarding. By taking the easy way around it, the final result may not be worth it in the end, because C++ will hardly ever be simpler than other languages mentioned.
Luckily, this trend seems unlikely to catch on. Most of the lecturers and attendees seem very aware of the fact that experimenting with C++ doesn’t hurt, but that its main purpose still remains in the realm of developing real-time and high-performance systems. All in all, we gathered some valuable knowledge and experience which we will definitely use to further develop our best-in-class mobile OCR.
More about Meeting C++: http://meetingcpp.com/2017