Oorspronkelijk geschreven voor het onderzoeksproject programming-languages-ai-era.
De lijn die verschoof
C++ kiezen voor een nieuw project was ooit een technische voorkeur. In 2026 draagt het een regulatoire blootstelling die CTO’s moeten begrijpen.
De verschuiving is niet subtiel en niet geleidelijk. Memory safety is overgestoken van een technische voorkeur die binnen engineeringteams werd bediscussieerd naar een selectiecriterium van toezichthouders en platformeigenaren dat erbuiten wordt bediscussieerd: door de Amerikaanse National Security Agency, het Amerikaanse Office of the National Cyber Director, het Security Response Center van Microsoft, het Chromium-project en het Android-beveiligingsteam van Google. Vier onafhankelijke gezichtspunten, vier verschillende institutionele prikkels, één convergerende aanbeveling tegen dezelfde set talen. De beslisimplicatie voor senior leiders is direct: greenfield C++ in beveiligingsgevoelige domeinen is geen standaardkeuze meer. Het is een gedocumenteerde uitzondering met een schriftelijk spoor van risicoaanvaarding.
Hume waarschuwde dat je geen behoren uit een zijn kunt afleiden. Toezichthouders hebben een omweg gevonden: ze veranderen het zijn, en het behoren volgt in de aanbestedingsregels.
De vier pijlers
Het Security Response Center van Microsoft rapporteert dat ongeveer 70% van de CVE’s die Microsoft toewijst memory-safety-problemen zijn, in producten die grotendeels in C en C++ zijn geschreven. Het cijfer is stabiel geweest over meerdere rapportageperiodes en is het empirische anker voor de interne richtlijn van Microsoft zelf voor taalkeuze. Het Chromium-project rapporteert onafhankelijk dat ongeveer 70% van de ernstige beveiligingsbugs memory-safety-bugs zijn: een andere codebase, een ander team, een andere rapportagemethode, en hetzelfde getal. Twee C++-codebases op industriële schaal, twee beveiligingsteams die onafhankelijk opereren, twee aparte rapportagepipelines, één convergerend cijfer.
De Software Memory Safety Cybersecurity Information Sheet van de Amerikaanse National Security Agency adviseert weg te bewegen van memory-onveilige talen en noemt C en C++ expliciet. Het rapport Back to the Building Blocks van het Amerikaanse Office of the National Cyber Director herhaalt die aanbeveling op het beleidsniveau van de uitvoerende macht. De Android-beveiligingsdata van Google laten zien dat memory-safety-kwetsbaarheden afnemen naarmate nieuwe native code verschuift naar memory-veilige talen, met nul memory-safety-kwetsbaarheden ontdekt in Android Rust-code ten tijde van het Android 13-rapport. Vier instituties, drie verschillende rollen (toezichthouder, platformeigenaar, OS-eigenaar), één selectiecriterium.
Het structurele feit is dat deze convergentie geen piek uit 2024 is die wegebt. Het MSRC-cijfer houdt al jaren stand. Het Chromium-cijfer houdt al jaren stand. De NSA- en ONCD-documenten dateren uit respectievelijk 2022 en 2024 en zijn in latere richtlijnen herbevestigd in plaats van teruggedraaid. De Android-telemetrie blijft in elk jaarlijks beveiligingsrapport dezelfde richting op bewegen. Vier instituties, vier verschillende rapportagecycli, geen terugdraaiing, herhaalde herbevestiging.
Dit klopt niet als de genoemde richtlijnen worden teruggedraaid, afgezwakt of tegengesproken door latere documenten van gelijkwaardig gezag. De herbevestigingscyclus van 2024-25 is het tegendeel van een terugdraaiing. Het patroon is intensivering, geen terugtocht.
Wat met de druk meebeweegt
Vijf talen in het cohort sluiten structureel aan bij de institutionele druk, elk via een ander mechanisme.
Het ownership-systeem van Rust beheert geheugen via door de compiler gecontroleerde regels, zonder garbage collection of handmatige free. Single-owner-semantiek, referenties met lifetime-controle en de expliciet afgebakende unsafe-grens geven Rust samen de sterkste structurele aansluiting in het cohort, en de Android Rust-telemetrie is het empirische bewijs dat die aansluiting zich vertaalt in gemeten uitkomsten. Ik scoor Rust op MC=5 (alleen aan het cohortplafond op Machine Cognition, door geen andere taal gehaald) en SV=5 (eveneens alleen aan het cohortplafond op Strategic Viability). De these van de veiligheidsdruk is een van de redenen dat de cel voor strategische levensvatbaarheid bovenaan staat.
Kotlin draait op de Java Virtual Machine met haar verplichte bytecode-verifier, met daarbovenop null-safety als garantie van het typesysteem. De verifier is geen code-reviewpatroon; het is een runtime-invariant die de JVM afdwingt voordat een klasse wordt geladen. .NET draait op de Common Language Infrastructure met metadata-gecontroleerde types en voegt nullable reference types toe voor null-safety. Swift specificeert memory-safety-regels, waaronder detectie van conflicterende toegang tijdens het compileren. De BEAM van Elixir biedt procesisolatie en expliciete faalsemantiek: een ander model, dezelfde aansluiting bij de as van veiligheidsdruk.
Het structurele onderscheid is het punt. Elk van de vijf talen sluit aan via een mechanisme dat de steward van de taal afdwingt, niet via een discipline die een team toepast. Dat maakt de aansluiting tot een structurele eigenschap waarop toezichthouders kunnen selecteren: de eigenschap is invariant over alle teams die de taal kiezen, en hangt niet af van het reviewproces van het team. De C++ Core Guidelines zijn adviserend en configuratieafhankelijk, en daarom rekenen de institutionele richtlijnen ze niet als gelijkwaardig.
Dit klopt niet als er een nieuwe taallaag opkomt die via een ander mechanisme aansluit bij de veiligheidsdruk, een mechanisme dat het framework nog niet scoort. De kans binnen de planningshorizon is laag: het cohort is stabiel, en de institutionele druk versterkt de bestaande structurele onderscheiden in plaats van ze af te vlakken.
Wat blootgesteld is
C++ zit alleen in de blootgestelde laag. Ik scoor C++ op HC=2, MC=3, AO=2, SV=2, gewogen totaal 2.46: laatste in het cohort met 0.64 gewogen punt verschil (het grootste gat tussen opeenvolgende rangen in de matrix), de enige taal onder 3.00, en alleen op de cohortvloer op Reachability to Top Tier met Reach=2.0 (met de eerstvolgende, Elixir, een half punt hoger). De as van veiligheidsdruk is één input voor de score SV=2, niet de enige, maar wel de meest aangehaalde.
De tegenposities van C++ zijn reëel en bestaan naast de veiligheidsboete in plaats van die te compenseren. Het krediet als hosttaal voor accelerators (CUDA, ROCm, Vulkan) houdt C++ de taal-van-de-stack voor GPU- en accelerator-runtimes: een toekomstig productiekrediet dat ik expliciet vastleg. Het werk aan C++26-modules, het reflectievoorstel van WG21 (P2996) en de Core Guidelines zijn concrete signalen van taalverbetering. Geen daarvan maakt de institutionele convergentie uit de vier pijlers ongedaan. De adoptie van modules is ongelijk over compilers en buildtools. Core Guidelines zijn adviserend. Reflectie tilt SON op als het binnen de planningshorizon landt, maar SON van 1.0 naar 3.0 laat C++ nog steeds buiten de top op het rijtotaal.
Ik zet C++ alleen in de laag “blootgesteld” op de as van veiligheidsdruk. Dat is een structurele lezing, geen stilistische. Greenfield C++ in beveiligingsgevoelige domeinen is nu alleen nog een standaardkeuze waar accelerator-hostcode onvermijdelijk is, met de veiligheidsboete bewust aanvaard.
Dit klopt niet als een nieuwe compiler memory-safety-als-standaard voor C++ levert en adoptie wint: de Safe C++-voorstellen van Microsoft, Google’s -fbounds-safety en vergelijkbare initiatieven van Apple zijn in beweging, maar geen ervan heeft binnen het cohort de drempel van “standaard in productie” gehaald. Doet een ervan dat wel, dan herzie ik de C++-rij.
Wat er verandert voor CTO’s
Voor CTO’s bij organisaties die vallen onder richtlijnen van de NSA, CISA, ONCD of sectorequivalenten, defensie, financiële dienstverlening, zorg, federale aannemers, platformeigenaren met regulatoire oppervlakken, vereist greenfield C++ nu expliciete risicoaanvaarding met gedocumenteerde onderbouwing. De beslissing is niet geblokkeerd. Ze wordt gelogd. Mijn werkaanname is dat de kosten van dat loggen zich opstapelen: elke volgende inkoopcyclus, elke volgende certificeringsaudit, elke volgende security review draagt het eerdere spoor van risicoaanvaarding mee. Over vijf jaar zijn de cumulatieve kosten van dat spoor een strategische post, geen technische.
Voor CTO’s buiten gereguleerde sectoren is de rekensom anders, maar niet afwezig. Microsoft, Google en Apple gebruiken intern dezelfde telemetrie die de publieke richtlijnen opleverde. Engineers aannemen die zijn opgeleid in Rust, Kotlin, Swift of .NET betekent engineers aannemen die de framing van veiligheidsdruk als standaard hebben opgenomen in plaats van als beperking. De arbeidsmarkt weerspiegelt de institutionele druk met vertraging; die vertraging krimpt.
De pragmatische aanbeveling: greenfield-infrastructuur die in 2018 standaard C++ zou zijn geworden, moet in 2026 standaard Rust worden, tenzij het project accelerator-hostcode vereist, in welk geval de C++-scope wordt beperkt tot het accelerator-oppervlak en de rest van het systeem in een memory-veilige taal draait. Dat is de portfoliovorm die de data aanbevelen, en het is de vorm die aansluit bij de institutionele convergentie in plaats van ertegen te vechten.
Dit klopt niet als een nieuwe compiler memory-safety-als-standaard voor C++ levert die binnen de planningshorizon adoptie wint, of als de regulatoire richting omkeert. Geen van beide is gesignaleerd.
De strategische lezing
De framing doet ertoe. Rust wordt niet structureel bevoordeeld omdat toezichthouders van Rust houden. Rust wordt structureel bevoordeeld omdat het alternatief, C en C++, expliciete institutionele druk draagt die dat alternatief niet kan compenseren. Het signaal is niet “kies Rust omdat de NSA het zegt”. Het signaal is “C++ is blootgesteld omdat vier instituties convergeren op die blootstelling, en de talen die structureel aansluiten bij de druk zijn de talen die aan die blootstelling ontsnappen”. Andere framing, hetzelfde antwoord.
Ik lees de data zo dat dit het stabielste taaloverstijgende signaal in het cohort is. De vier pijlers hangen niet van elkaar af. De vier instituties coördineren niet. De convergentie is de bevinding, en de bevinding heeft over rapportagecycli heen standgehouden. Senior teams die de matrix lezen en C++ kiezen voor een greenfield-systeem in een gereguleerde sector, wedden tegen de convergentie. De frameworkversie is v0.6 en de C++-rij op 2.46, alleen op de cohortvloer op gewogen totaal, de enige taal onder 3.00, met een gat van 0.64 punt naar de eerstvolgende buur en Reach=2.0 eveneens alleen op de cohortvloer, is de laagste in het cohort door structureel ontwerp, niet door redactionele voorkeur.
Tot slot
Vier instituties zijn geconvergeerd op memory safety als structurele taaleigenschap waarop ze selecteren. C++ is alleen blootgesteld. Kies de talen die aansluiten bij de druk, of aanvaard de kosten van ertegen vechten, op schrift.
Abonneer je op rutgerhemrika.substack.com voor stuk 6, de afhankelijkheidsrisico-these over het hele cohort: Pydantic, Zod, Instructor, Outlines, llama.cpp, nlohmann/json, en wat dragende libraries met één maintainer een platforminzet van vijf jaar kosten. Wil je de onderliggende data, claims en bronnen, dan staat het framework open op github.com/hemrika/programming-languages-ai-era.
Greenfield C++ in beveiligingsgevoelige domeinen is nu een gedocumenteerde uitzondering, geen standaardkeuze.
De Black Knight van de systeemprogrammering heeft een arm verloren aan een toezichthouder en houdt vol dat het een schrammetje is. Het raamwerk scoort de arm, niet het volhouden.
Verwijzingen
De knipogen en citaten in dit stuk, met hun herkomst:
- Monty Python and the Holy Grail (1975): the Black Knight, “’tis but a scratch”.
- David Hume, A Treatise of Human Nature (1739): the is-ought problem.
- #AI-tijdperk
- #Programmeertalen
- #Engineeringstrategie

Rutger Hemrika
AI-strategie en -governance voor sectorsoftware. Schrijft vanuit bouwen, niet vanuit slides; elke claim draagt een bewijsniveau.