Blog

C++ Qualität by Design - Richard Seidl

Geschrieben von Richard Seidl | 21.08.2023

C++ ist ein lebender Dinosaurier unter den Programmiersprachen, die seit Ende der 70er Jahre genutzt wird. Das sind über 40 Jahre! Aber deswegen noch lange kein alter Hut. Viele Steuergeräte oder auch Branchen wie die Automobilindustrie setzen C++ aufgrund der Vorteile heute noch ein. Auch wird die Sprache C++ in regelmäßigen Abständen um neue Konzepte erweitert und an technologische Entwicklungen angepasst, immer mit Bedacht auf die Rückwärtskompatbilität der Compiler. Rainer ist ganz nah dran an der Entwicklung von C++ und erzählt uns, welchen Charme diese Programmiersprache auf ihn ausübt.

“Ich sage immer meinen Kunden: Wenn Sie den Code nicht ändern wollen, den Sie vor 2 Jahren geschrieben haben, dann haben Sie nix dazu gelernt” – Rainer Grimm

Rainer Grimm ist seit vielen Jahren als Softwarearchitekt, Team- und Schulungsleiter tätig. In seiner Freizeit schreibt er gerne Artikel zu den Programmiersprachen C++, Python und Haskell, spricht aber auch gerne auf Fachkonferenzen. Auf seinem Blog Modernes C++ (heise Developer) beschäftigt er sich intensiv mit seiner Leidenschaft C++. Seit 2016 steht er auf selbstständigen Beinen. Insbesondere das Vermitteln von Wissen zu modernem C++ ist ihm eine Herzensangelegenheit. Seine Bücher “C++11 für Programmierer”, “C++” und “C++-Standardbibliothek” für die “kurz und gut”-Reihe sind beim Verlag O’Reilly erschienen. Seine englischsprachigen Werke “The C++ Standard Library”, “Concurrency with Modern C++” und “C++20” sind in mehrere Sprachen übersetzt worden. Im April erschien sein englischsprachiges Buch zu den “C++ Core Guidelines”.

Highlights in dieser Episode:

  • C++ ist weit davon entfernt, veraltet zu sein und spielt eine zentrale Rolle in vielen sicherheitskritischen Systemen
  • Rainer Grimm ist ein erfahrener C++ Experte, Autor und Trainer, der sein umfassendes Wissen und seine Begeisterung für C++ mit uns teilt.
  • Die C++ Core Guidelines dienen als Best Practices, um hochwertigen, modernen C++ Code zu schreiben und bestehenden Code zu verbessern
  • C++ wird ständig weiterentwickelt, mit großen Updates alle drei Jahre, die die Art und Weise, wie wir programmieren, tiefgreifend verändern
  • Ownership und Leihsemantik sind entscheidend für die Vermeidung von Fehlern in C++ Programmen
  • Die Core Guidelines sind von der Community getrieben und von C++ Legenden wie Björn Stroustrup und Herb Satter unterstützt
  • Rainers Buch über die C++ Core Guidelines macht diese zugänglicher und verständlicher
  • Moderne C++ Standards bringen auch Konzepte aus der funktionalen Programmierung und Mathematik ein, um die Sprache weiter zu verbessern
  • C++ ist essentiell für die Entwicklung von Software in der Automobilindustrie und vielen anderen Bereichen, einschließlich KI und maschinellem Lernen
  • Die Zukunft von C++ sieht dank aktiver Entwicklung und Community-Engagement hell aus

Die unersetzliche Rolle von C++: Von Core Guidelines bis zu neuesten Standards

C++ ist eine Programmiersprache, die sich kontinuierlich weiterentwickelt und eine entscheidende Rolle in der modernen Softwareentwicklung spielt. Von den Core Guidelines bis hin zu den neuesten Standards bietet C++ einzigartige Möglichkeiten für Qualität und Performance.

Die andauernde Relevanz von C++

Seit über vier Jahrzehnten prägt C++ die Welt der Programmierung. Als ich in meiner beruflichen Laufbahn zum ersten Mal mit C++ konfrontiert wurde, stellten mich dessen komplexe Konstrukte vor Herausforderungen. Doch entgegen der Annahme, dass C++ an Bedeutung verloren hätte, wird mir in dem Gespräch mit dem C++-Experten Rainer Grimm deutlich: Diese Sprache ist lebendiger denn je. Die kontinuierliche Weiterentwicklung und die Anwendung in sicherheitskritischen Systemen wie in der Automobilindustrie zeigen die unverminderte Wichtigkeit von C++.

C++ gestern und heute: Ein Überblick

Die Geschichte von C++ ist beeindruckend: Mit nunmehr 45 Jahren Erfahrung hat sich C++ von einer Sprache für spezifische Hardware-Anforderungen zu einem modernen Werkzeug entwickelt, das in zahlreichen sicherheitskritischen Bereichen Anwendung findet. Rainer Grimm verdeutlicht, wie C++ trotz seiner komplexen Natur durch kluges Design effektiv und sicher genutzt werden kann. Die regelmäßige Einführung neuer Standards alle drei Jahre – zuletzt mit massiven Änderungen im 20er Standard – unterstreicht die dynamische Evolution dieser Programmiersprache.

Die Herausforderung der Kompatibilität

Die Balance zwischen Legacy-Code und neuen Features ist eine Herausforderung bei jeder Weiterentwicklung von C++. Rainer erklärt, dass in der Praxis Updates oft nur dann durchgeführt werden, wenn sie unumgänglich sind, etwa wegen Hardwareänderungen. Die strikte Regel, dass neuerer Compiler immer älteren Code unterstützen muss, begrenzt zwar die Risiken bei Updates, spiegelt aber auch die besondere Verantwortung wider, die Entwicklerinnen und Entwickler im Umgang mit C++ tragen.

C++ Core Guidelines

Die C++ Core Guidelines spielen eine zentrale Rolle für Qualität by Design in der Entwicklung mit C++. Sie bieten umfassende Best Practices für modernen Code und adressieren unter anderem das essenzielle Thema des Ownership vs. Borrowing. Ein tiefes Verständnis dieser Richtlinien ist unerlässlich für jeden Entwicklerin, der/die sauberen und effizienten Code schreiben möchte. Dieses Wissen fasst Rainer auch in seinem Buch zusammen, ein Muss für jeden ernsthaften C++-Entwickler.

Warum C++ unersetzlich bleibt

C++ steht nicht still. Die Einführung neuer Konzepte wie Compile Time Reflection im kommenden 26er Standard zeigt die Ambition von C++, an der Spitze der Technologie zu bleiben. Die enge Verbindung zu funktionalen Programmiersprachen wie Haskell beeinflusst zunehmend die Entwicklungsrichtung von C++. Diese fortlaufende Erneuerung sichert C++ einen festen Platz in der Zukunft der Softwareentwicklung – ein Faktor, der besonders in Bereichen wie autonomen Fahren oder künstlicher Intelligenz entscheidend ist.