Bjarne Stroustrup, krijuesi i gjuhës C++, publikoi kundërshtime ndaj konkluzioneve të raportit të NSA, në të cilin organizatat u rekomanduan të shkonin në përjashtim të gjuhëve të programimit, si C dhe C++, të cilat përçojnë menaxhimin e memories te zhvilluesi, në favor të gjuhëve si C#, Go, Java, Ruby, Rust dhe Swift, që ofrojnë menaxhim automatik të memories ose që bëjnë verifikime të sigurisë së punës me memorien gjatë kompilimit.
Sipas Stroustrup, gjuhët e sigurta të përmendura në raportin e NSA në të vërtetë nuk e tejkalojnë C++ në aplikime të rëndësishme nga këndvështrimi i tij. Në veçanti, rekomandimet bazësore për përdorimin e C++ (C++ Core Guidelines) që janë zhvilluar në vitet e kaluara përfshijnë metodat e programimit të sigurta dhe përcaktojnë aplikimin e mjeteve që sigurojnë punë të sigurt me tipet dhe burimet. Në të njëjtën kohë, zhvilluesve që nuk kanë nevojë për këto garanci të rrepta sigurie u lihen mundësitë për të vazhduar me metodat e vjetra të zhvillimit.
Stroustrup beson se një analizues i mirë statik, në përputhje me rekomandimet e C++ Core Guidelines, mund të sigurojë garancitë e nevojshme të sigurisë për kodin C++, duke kërkuar shumë më pak shpenzime sesa transicióni në gjuhë të reja të sigurt të programimit. Për shembull, shumica e rekomandimeve të Core Guidelines janë tashmë të implementuara në analizuesin statik dhe profilin e punës së sigurt me memorien të Microsoft Visual Studio. Një pjesë e rekomandimeve janë gjithashtu marrë në konsideratë në analizuesin statik Clang tidy.
Objekt i kritikës gjithashtu ishte theksimi i raportit të NSA vetëm në problemet e punës me memorien, duke lënë pas dore shumë probleme të tjera të gjuhëve të programimit që ndikojnë në sigurinë dhe besueshmërinë. Stroustrup e sheh sigurinë si një koncept më të gjerë, ku dimensione të ndryshme mund të arrihen përmes kombinimit të stilit të kodit, librarive dhe analizuesve statikë. Për menaxhimin e përfshirjes së rregullave që sigurojnë sigurinë e punës me tipet dhe burimet, propozohet të përdoren anotacionet në kod dhe opsionet e kompilerëve.
Në aplikacione ku performanca është më e rëndësishme se siguria, një qasje e tillë ofron mundësinë e përdorimit selektiv të mjeteve që garantojnë sigurinë vetëm atje ku është e nevojshme. Mjetet për rritjen e sigurisë gjithashtu mund të aplikohen pjesërisht; për shembull, fillimisht mund të kufizoheni në rregullat e verifikimit të intervaleve dhe inicializimit, dhe pastaj gradualisht të adaptoni kodin për kërkesa më të rrepta.
Burimi: opennet.ru
