Er det noe som kan få det til å gå en kule varmt hos utviklere, er det debatten om hvorfor en bør - eller ikke bør - bruke det og det språket.
Nå tar den amerikanske etterretningstjenesten National Security Agency (NSA), til orde for at utviklere bør droppe C og C++ til fordel for språk som C#, Go, Java, Ruby, Rust og Swift.
Og ja, helt riktig: NSA er den skumle etterretningstjenesten som du kjenner igjen fra Edward Snowden-lekkasjene i 2013.
Folka bak Carbon vil ta tronen fra C++: - En eksperimentell arving
Kan ende opp med å bli hacka
Hvordan et program administrer minne er kjernen i å forhindre mange sårbarheter og sikre robuste programmer, skriver NSA i et nytt notat.
Ved å utnytte dårlig eller uforsiktig minnehåndtering, kan en hacker utføre ondsinnede handlinger.
Dette kan for eksempel være å krasje programmet eller endre instruksjonene til det hackeren måtte ønske.
Selv ikke-utnyttbare problemer med minnebehandling kan resultere i feil resultater, dårligere ytelse over tid, eller tilfeldige programkrasj, påpeker NSA.
Hvordan og hvorfor koder noen i C++?
C++ gir frihet, men lav sikkerhet
Ifølge NSA gir språk som C og C++ mye frihet og fleksibilitet i minnehåndtering. Samtidig må du stole på at utvikleren har utført minnereferanser riktig. Og enkle feil kan fort føre til utnyttbare, minnebaserte sårbarheter.
Derimot mener NSA at den iboende beskyttelsen som tilbys av minnesikre språk, kan forhindre eller redusere de fleste problemer med minneadministrasjon. Mantraet fra overvåkningsetaten er derfor: Bruk et minnesikkert språk når det er mulig!
Ifølge "big brother" er minnesikre språk nettopp sikre, ettersom minnet administreres automatisk. Det er ikke nødvendig at utvikleren legger til kode for å implementere minnebeskyttelse.
Per-Arne har koda et dataspill i Python og C++ som trener AI: - Det holder med vanlig maskinvare
Velg minnesikre språk
Den automatiske beskyttelsen skjer ved hjelp at en kombinasjon av kompileringstids- og kjøretidskontroller, skriver NSA, i språk som C#, Go, Java, Ruby, Rust og Swift.
Det er disse iboende språkfunksjonene som beskytter utviklere fra å introdusere utilsikta minnehåndteringsfeil.
Samtidig: NSA bemerker at dette ikke gir en absolutt beskyttelse. Men bidrar til å forhindre at utviklere introduserer visse typer minnerelaterte problemer.