In the embedded industry the huge majority of software development is done in C. Even in 2021, C++’s usage is still a second distant. It’s worth asking: why is that? Does C++ not provide the right tools to the embedded developers? Do these tools come at an unacceptable price? How much truth there is in the “usual” comments about C++’s complexity?
This talk wants to discuss how C++ is, in fact, a great language for embedded development. C++ isn’t merely a “superset of C”; it also features a stricter type system, deterministic and automatic release of resources, true support for generic programming, as well as other facilities that can actually drastically improve a C++ program’s performances (over an equivalent written in C).
I know, now you’re probably thinking;
“What’s the catch? If it’s so good, why aren’t we using it already everywhere?” or “Sure, that all sounds nice and easy, but that’s only because _you_ are already proficient in C++! Try reading through these 2000 lines of error message…” or even “Linus says C++ is bad, who are you to disagree with him? Where’s _your_ kernel?”. Then, this talk is for you.
While learning how C++ can be incredibly useful for embedded software, we will try to demystify (some of) the “myths” about C++. Sure enough, many legends have a grain of truth; but in science and technology, sometimes legends spiral out of control, and eventually become self-fulfilling prophecies. We will tame these stories, and showcase actual code that hopefully will demonstrate how C++ can serve C developers just fine, and make them create more robust and more efficient software.
About the speaker
Giuseppe is an Approver of the Qt Project and a Senior Software Engineer at KDAB. He is a long time contributor to Qt, having used Qt and C++ since 2000. His contributions in Qt range from containers and regular expressions to GUI, Widgets and OpenGL. A free software passionate and UNIX specialist, before joining KDAB, Giuseppe organized conferences on open source around Italy. He holds a BSc in Computer Science.
View the slides for this presentation here…