Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
BeiträgeC++Delphi

C++ neu denken: Ignoranz, Oberfläche und tiefe Architektur

C++ neu denken Ignoranz Oberfläche und tiefe Architektur

Ignoranz, Oberfläche und tiefe Architektur

Warum modernes C++ immer wieder falsch verstanden wird

Ein Blogpost über moderne C++ Architektur, die Rolle von Ranges, Concepts, RAII, Coroutinen und Compile-Time Strukturen, und darüber, warum viele Entwickler trotz tiefem Fachwissen durch oberflächliche Kritik abgewertet werden. Eine Fortsetzung des Blogposts „Innovation oder Amnesie“ und ein Plädoyer für den Schutz derjenigen, die modernes C++ wirklich verstehen.


Einleitung: Die Rückkehr eines alten Musters

Als ich den Blogpost Innovation oder Amnesie schrieb, ging es mir darum, eine technische Blindheit zu beschreiben, die unsere Branche seit Jahren begleitet. Es war eine spontane Reaktion auf eine Äusserung in meinem Livestream über CORBA und effiziente Anwendungen. Aber es spiegelt die Tendenz, moderne Konzepte an der Oberfläche zu messen und tiefe Architektur mit Schlagworten zu verwechseln. Einigen erschien das damals theoretisch, fast schon abstrakt. Doch die jüngsten Ereignisse in Embarcadero- Livestreams haben mir gezeigt, wie erstaunlich lebendig diese Amnesie geblieben ist und wie schnell ein falscher Eindruck eine ganze technische Diskussion dominieren kann.

Ich habe in den letzten Wochen modernes C++ in praktischer Anwendung mit dem C++Builder 13 demonstriert, anfangs nur um das Tool zu testen, und zeigte dabei Beispiele aus der realen Softwareentwicklung, die auf Ranges, Konzepte , Resource Acquisition Is Initialization (RAII) , Koroutinen, variadic Templates, std::expected, std::optional, std::generator und std::println beruhen. Auch mir brachte es neue Erkenntnisse, die ich im Blogpost „C++ neu denken“ beschrieben habe.

Es ging darum, C++ nicht als Werkzeug zu verwenden, sondern als Denkweise, in der Struktur, Verantwortung und Präzision der zentrale Kern einer Architektur sind.

Die Kritik zu dem Live- Stream war die direkte Fortsetzung des Gedankens, den ich im ersten Post formuliert hatte. Und auch in dem erwähnten Embarcadero Live- Stream ging es um dieses Thema. So habe ich am Anfang sogar explizit erwähnt, dass ich nicht das Handling eines Werkzeugs zeige, sondern Konzepte der Entwicklung mit modernem C++. Und der C++Builder13 dieses jetzt ermöglicht.

Doch obwohl diese Strukturen klar im Vordergrund standen, wurde die Diskussion von Oberflächenwahrnehmungen überlagert. Die Reaktion eines Zuschauers, der die gezeigte Architektur als vermeintlich veraltete „Mumie“ bezeichnete („diese staubige Mumie hätte ich im Sarkophag gelassen“) und das gezeigte als „miserable zu programmieren“ bewertete. Er verglich es mit MVVM, Data Binding und Reflection, und war so symptomatisch für ein Denken, das moderne C++ Konzepte nicht erkennt, wenn sie nicht wie Webframeworks aussehen. Genau hier beginnt die technische Verzerrung, die der Anlass für diesen neuen Blogpost ist.


Die Sicht durch die falsche Linse: Wenn moderne Architektur als veraltet gilt

Die Kritik lautete, es seien angebliche ‚onClick‘- Routinen zu sehen, ein nicht existierendes mainForm1 und händisch verschobene Buttons. Es wurde behauptet, moderne Oberflächen müssten MVVM nutzen und Data Binding anbieten, während Reflexion als moderner Qualitätsstandard präsentiert wurde. Der Vorwurf gipfelte in der Aussage, die gezeigten Konzepte seien eine „staubige Mumie“, die man im „Sarkophag“ belassen solle.

Diese Aussagen sind nicht nur sachlich falsch, sondern zeigen eine Denkhaltung, die ich bereits im vorherigen Blogpost Innovation oder Amnesie analysiert habe. Die Oberfläche eines Beispiels wird zum Maßstab für Modernität, während die Architektur, die unter der Oberfläche arbeitet, ignoriert wird. C++ im allgemeinen und der C++Builder hier im speziellen werden dabei reflexartig als alt eingeordnet, ohne auch nur einen Blick auf die tatsächlichen Strukturen zu werfen, die modernen Code heute ausmachen.

Der entscheidende Fehler liegt darin, dass diese Kritik modernes C++ aus dem Blickwinkel dynamischer Frameworks betrachtet. Sie setzt MVVM, Binding und Reflection automatisch mit Fortschritt gleich, obwohl genau diese Mechanismen enorme Laufzeitkosten verursachen und die Typsicherheit schwächen. Gleichzeitig werden Compile-Time Modelle, die Effizienz, Sicherheit und Präzision ermöglichen, als „alt“ abgestempelt, obwohl sie die Grundlage der gesamten modernen Softwarelandschaft bilden.


Was modernes C++ wirklich leistet: Struktur, Präzision und Compile-Time Architektur

In den Streams zeigte ich, wie sich moderne C++ Konzepte zu einer klaren, strukturierten Architektur verbinden. Ein Textfeld (TMemo) wurde zu einer echten std::ranges Sequenz, die ohne Kopie und ohne Abstraktionsverlust in eine Pipeline eingebunden werden konnte. Eine Tabellenansicht (TListView) wurde zu einem strukturierten std::range Objekt, dass sowohl als Ausgabe Bereich (sink) verwendet werden kann, aber auch in std::range mit Random Access genutzt wird, und das alles auch wieder im C++Builder 13. Es ist eben nicht nur einfach ein Container klassischer Art. Die Datenbankpipeline war über std::generator modelliert und erzeugte Daten kontrolliert, wohldefiniert und ohne die Last asynchroner Mechanismen, die unnötige Komplexität erzeugen.

Das vorgestellte IOCntrl Objekt diente als RAII Kapsel und zeigte exemplarisch, wie modernes C++ Verantwortung auf der Ebene des Typsystems modelliert. Eine Ressource existiert nur im Scope, in dem sie gebraucht wird, und verlässt diesen Scope niemals unkontrolliert. Fehler werden über std::expected abgebildet, nicht über globale Zustände. Ausgaben erfolgen typsicher, effizient und formatgenau über std::println, der bereits zur Compile-Time optimal vorbereitet wird.

Genau das ist modernes C++.
Es ist nicht alt und nicht im Sarkophag. Es ist die Form von Softwarearchitektur, die Ressourcen ernst nimmt und Strukturen nicht zur Laufzeit erfindet, sondern vor der Ausführung eindeutig beschreibt.


Warum MVVM, Binding und Reflection keine Antwort auf modernes C++ sind

Die Kritik, modernes C++ sei veraltet, weil es kein MVVM, kein Binding und keine Reflection verwende, ist ein technischer Fehlschluss. Diese Mechanismen stammen aus einer Welt, in der Struktur zur Laufzeit erzeugt wird. Sie mögen bequem sein, doch Bequemlichkeit ist kein Qualitätsmerkmal. MVVM erzeugt zusätzliche Schichten, Binding verbraucht Speicher und erzeugt versteckte Abhängigkeiten, Reflection bricht das Typsystem bereits an der Wurzel auf. Moderne C++ Konzepte lösen genau diese Probleme, bevor sie entstehen. So wird C++ im neuen Standard C++26 ja noch einen Schritt weiter gehen, und Reflections auch in C++ verfügbar machen, aber zur Compile-Time und nicht aufgeblasen zur Laufzeit.

Compile-Time Architektur ist keine Alternative zum modernen Stil, sie ist die einzige nachhaltige Lösung, wenn man Effizienz, Sicherheit und Präzision ernst nimmt. Sie erfordert Verständnis, nicht Gewohnheit. Sie belohnt Denken, nicht reine Musteranwendung.


Verteidigung der Entwicklerinnen und Entwickler, die moderne Architektur beherrschen oder es lernen wollen

Dieser Blogpost richtet sich nicht gegen einzelne Personen, sondern gegen eine Form des Umgangs, der den Aufwand und die Leistung vieler Entwicklerinnen und Entwickler abwertet. Und das meistens nur, um eine Rechtfertigung oder Bestätigung für die eigene, oft begrenzte Sichtweise zu haben und sich selber aufzuwerten. Leider typisch für eine Generation von Full-Stack Entwickelnden die in regelmäßigen Abständen neue Frameworks präsentieren.

Diejenigen, die mit modernem C++ arbeiten, leisten wertvolle Arbeit. Sie beherrschen Strukturen, die anspruchsvoll sind und Verantwortung verlangen. Sie entwickeln Software, die viele Schichten anderer Sprachen und Frameworks erst ermöglicht. Sie tragen eine Form der Architektur, die zur Grundlage moderner Technik geworden ist.

Es ist respektlos und falsch, diese Arbeit als veraltet zu bezeichnen. Es ist auch fachlich unhaltbar, Compile-Time Architektur als Mumie zu verunglimpfen, während man „Laufzeitmagie“ als Fortschritt feiert. Wer solche Urteile fällt, bewertet nicht die Technologie, sondern die Oberfläche, und verkennt damit die eigentliche Essenz von Softwareentwicklung.


Warum das Wort veraltet nicht zu Technologien gehört, sondern zu Denkweisen

Der Begriff veraltet wird häufig verwendet, um etwas abzuqualifizieren, das nicht in vertraute Muster passt. Doch C++ ist nicht veraltet. Es ist die Sprache, die Effizienz, Ressourcen und Architektur ernst nimmt und bewusste Entscheidungen trifft. Veraltet ist nicht die Technologie, sondern der Blick, der nur die Oberfläche sieht. Veraltet ist die Vorstellung, Modernität sei ein visueller Eindruck. Veraltet ist die Amnesie, die die Tiefe von Architektur vergisst.

Moderne Software entsteht durch klare Strukturen und nicht durch dekorative Muster. Sie entsteht durch Präzision im Typsystem und nicht durch „Laufzeitmagie“. Und sie entsteht durch Sprachen wie C++, die den Mut haben, Verantwortung nicht an Frameworks auszulagern.


Schlussgedanke für Embarcadero Leserinnen und Leser

Dieser Blogpost ist eine Fortsetzung von Innovation oder Amnesie, aber auch eine Einladung, einen neuen Blick auf moderne Softwareentwicklung zu werfen. Wer nur die Oberfläche sieht, verkennt die Architektur. Wer Oberflächenurteile fällt, verunsichert diejenigen, die moderne Technologien beherrschen. Und wer C++ als veraltet bezeichnet, versteht nicht, wie viel moderne Software überhaupt erst möglich wird, weil unter der Oberfläche Struktur, Verantwortung und Compile-Time Präzision arbeiten.

Moderne C++ Entwicklung verdient Respekt und Anerkennung. Sie ist nicht veraltet, sie ist die Grundlage, auf der moderne Systeme ruhen. Wenn wir das verstehen, dann verstehen wir Softwarearchitektur.

Und Embarcadero hat mit der aktuellen Version des C++Builders die Lücke zum aktuellen Standard geschlossen, ermöglicht es den Entwicklerinnen und Entwicklern jetzt auch in diesem Tool moderne Konzepte zu verwenden. Damit ist es sicher keine verstaubte Mumie und gehört sicher nicht in den Sarkophag.


Über den Autor

Volker Hillmann stammt aus Norddeutschland und ist Mathematiker sowie Softwarearchitekt mit einem interdisziplinären Hintergrund zwischen formaler Wissenschaft und angewandter Informatik. Sein Mathematikstudium verbindet klassische Strenge mit logischem und kybernetischem Denken, ergänzt durch eine langjährige Beschäftigung mit Chaosmathematik, Systemtheorie und Künstlicher Intelligenz. Der Informatikschwerpunkt seiner Arbeit liegt auf Datenbanken, Datensicherheit und Softwarearchitektur – mit einer konsequent modernen Ausrichtung auf C++.

Seit 1988 programmiert er in Turbo C, seit 1991 in Turbo C++, und kennt die Entwicklung der Sprache wie auch der Werkzeuge aus erster Hand. Er hat zahlreiche Vorträge über C++ und Softwarearchitektur gehalten und ist seit 2001 selbständig tätig. Seit Mitte der 2000er-Jahre ist er außerdem Embarcadero MVP und engagiert sich besonders für die Weiterentwicklung und praktische Anwendung des C++Builder.

Seine Leidenschaft gilt modernem C++:
In seinen kostenlosen Livestreams beschäftigt er sich ausschließlich mit aktuellem C++, unabhängig vom Compiler – sei es MSVC, GCC oder dank der neuen Version auch wieder der C++Builder. Dabei geht es nie um ein bestimmtes Werkzeug, sondern immer um die Sprache selbst: C++ als Ausdruck von Architektur, Präzision und Denken.

Er versteht C++ nicht nur als Werkzeug, sondern auch als Sprache des Denkens. C++ ist eine Plattform für strukturiertes, effizientes und sicheres Entwerfen. In seinen aktuellen Streams und Artikeln testet und analysiert er den C++Builder 13, um zu zeigen, wo modernes C++ in der Praxis steht, welche Möglichkeiten bereits bestehen und welche Grenzen es noch zu überschreiten gilt.

Seine Themen reichen von RAII und Move-Semantik über Coroutinen, Ranges und Concepts bis hin zu Compile-Time-Metaprogrammierung und Typsicherheit. Als Mathematiker denkt er in Systemen und Relationen, in ranges, tuples und Abbildungen, und überträgt diese Sichtweise konsequent auf Softwarearchitektur. Er steht für ein Verständnis von C++, das Verantwortung, Präzision und Evolution miteinander verbindet, und zeigt, dass diese Sprache weder veraltet noch unsicher ist, sondern die präziseste und ehrlichste Form des Softwareentwurfs.

Kai for RAD Studio is Now Available! Special Live Webinar: Introducing Kai - A New Chapter for RAD Studio RAD Studio 13.1 Florence Now Available

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES