C++ is a living dinosaur among programming languages that has been in use since the end of the 1970s. That’s over 40 years! But that doesn’t mean it’s old hat. Many control units or even industries such as the automotive industry still use C++ today due to its advantages. The C++ language is also regularly expanded with new concepts and adapted to technological developments, always with a view to the backwards compatibility of the compilers. Rainer is very close to the development of C++ and tells us what charm this programming language exerts on him.
“I always tell my customers: If you don’t want to change the code you wrote 2 years ago, then you haven’t learned anything” - Rainer Grimm
Rainer Grimm has been working as a software architect, team leader and training manager for many years. In his spare time, he likes to write articles on the programming languages C++, Python and Haskell, but also enjoys speaking at specialist conferences. On his blog Modernes C++ (heise Developer) he deals intensively with his passion C++. He has been self-employed since 2016. In particular, imparting knowledge about modern C++ is a matter close to his heart. His books “C++11 für Programmierer”, “C++” and “C++-Standardbibliothek” for the “kurz und gut” series have been published by O’Reilly. His English-language works “The C++ Standard Library”, “Concurrency with Modern C++” and “C++20” have been translated into several languages. His English-language book on the “C++ Core Guidelines” was published in April.
Highlights of this episode:
C++ is a programming language that is constantly evolving and plays a crucial role in modern software development. From the core guidelines to the latest standards, C++ offers unique possibilities for quality and performance.
C++ has been shaping the world of programming for over four decades. When I was first confronted with C++ in my professional career, its complex constructs presented me with challenges. But contrary to the assumption that C++ had lost its importance, it became clear to me in my conversation with C++ expert Rainer Grimm that this language is more alive than ever. The continuous further development and use in safety-critical systems such as in the automotive industry show the undiminished importance of C++.
The history of C++ is impressive: with 45 years of experience, C++ has developed from a language for specific hardware requirements to a modern tool that is used in numerous safety-critical areas. Rainer Grimm explains how C++ can be used effectively and securely through clever design, despite its complex nature. The regular introduction of new standards every three years - most recently with massive changes to the 20 standard - underlines the dynamic evolution of this programming language.
The balance between legacy code and new features is a challenge in any further development of C++. Rainer explains that in practice, updates are often only carried out when they are unavoidable, for example due to hardware changes. The strict rule that newer compilers must always support older code limits the risks associated with updates, but also reflects the special responsibility that developers bear when working with C++.
The C++ Core Guidelines play a central role for quality by design in development with C++. They offer comprehensive best practices for modern code and address, among other things, the essential topic of ownership vs. borrowing. A deep understanding of these guidelines is essential for any developer who wants to write clean and efficient code. Rainer also summarizes this knowledge in his book, a must-read for any serious C++ developer.
C++ is not standing still. The introduction of new concepts such as Compile Time Reflection in the upcoming 26 standard shows C++’s ambition to remain at the forefront of technology. The close connection to functional programming languages such as Haskell is increasingly influencing the development direction of C++. This ongoing renewal secures C++ a firm place in the future of software development - a factor that is particularly crucial in areas such as autonomous driving or artificial intelligence.