At IMC we care a lot about performance and control in our software, which is why C++ is one of the key tools in our kitbag.
The Boost Asio library has become the de-facto standard when it comes to creating flexible frameworks for asynchronous I/O and networking. Such networking is at the heart of almost all our C++ code, so when Asio’s primary author, Chris Kohlhoff, was speaking in Sydney for the latest IMC-hosted C++ event, we had more than a passing interest in what he had to say!
During the evening, Chris was able to walk his audience through a thoroughly modern C++ approach to networking and library design. Asio is friendly to beginners while still delivering at the level demanded by advanced users. The impressive thing is that the library supports both synchronous iostreams and asynchronous coroutine-based implementations – with locks elided to allow for optimal performance.
Chris’s work on Asio has spawned the Networking TS, a proposal to the C++ standards committee pushing to have networking incorporated as a standard library common to all C++ implementations. For programmers like us, that means not having to deal with operating system specifics and being able to write at a higher abstraction. With the Networking TS we’ll see longer running tasks become asynchronous and coroutines become more efficient and flexible, making for simplified non-thread based concurrency. Ultimately, Chris (and people like him) are making C++ more powerful, more expressive and more accessible to new developers. This is the utopia we strive for: efficient code as you’d expect as a C++ user, but written faster and with greater clarity of thought and intent. Terse but approachable network code.
The evening’s second speaker, Chris Di Bella, was also passionate about modern C++ design, taking us through two other TS proposals under active discussion in the community: Concepts and Ranges. Just a few years into his software career, Chris is forwarding proposals to the C++ committee. It reminds us of the new energy behind C++’s evolution since C++11/C++14, and it is exciting to see the acceleration of development in the language.
The enthusiasm of the speakers and attendees make these meetups an engaging and exciting way for us to expand our own knowledge & abilities. It challenges us to think differently and become better engineers, which is what life at IMC is all about.