Blog

C++ Quality by Design - Richard Seidl

Written by Richard Seidl | Aug 21, 2023 10:00:00 PM

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 far from obsolete and plays a central role in many safety-critical systems
  • Rainer Grimm is an experienced C++ expert, author and trainer who shares his extensive knowledge and enthusiasm for C++ with us.
  • The C++ Core Guidelines serve as best practices for writing high-quality, modern C++ code and improving existing code
  • C++ is constantly evolving, with major updates every three years that profoundly change the way we program
  • Ownership and borrowing semantics are crucial for avoiding bugs in C++ programs
  • The Core Guidelines are driven by the community and supported by C++ legends like Björn Stroustrup and Herb Satter
  • Rainer’s book on the C++ Core Guidelines makes them more accessible and understandable
  • Modern C++ standards also introduce concepts from functional programming and mathematics to further improve the language
  • C++ is essential for developing software in the automotive industry and many other fields, including AI and machine learning
  • The future of C++ looks bright thanks to active development and community engagement

The irreplaceable role of C++: from core guidelines to the latest standards

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.

The continuing relevance of C++

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++.

C++ yesterday and today: An overview

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 challenge of compatibility

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++.

C++ Core Guidelines

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.

Why C++ remains irreplaceable

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.