Bjarne Stroustrup, krijuesi i gjuhës C++, publikoi kundërshtimet e tij ndaj përfundimeve të raportit të NSA, në të cilin rekomandohej që organizatat të largohet nga përdorimi i gjuhëve të programimit si C dhe C++, që i japin kontrollin e memories programuesit, në favor të gjuhëve si C#, Go, Java, Ruby, Rust dhe Swift, të cilat ofrojnë menaxhim automatik të memories ose kryejnë kontrolla të sigurisë së memories gjatë kompaktimit.
Sipas Stroustrup, gjuhët e sigurisë të përmendura në raportin e NSA në të vërtetë nuk e tejkalojnë C++ në aplikimet për të cilat ai ka rëndësi. Veçanërisht, rekomandimet themelore për përdorimin e C++ (C++ Core Guidelines) që janë zhvilluar në vitet e fundit mbulojnë metodat e programimit të sigurt dhe kërkojnë aplikimin e mjeteve që sigurojnë punë të sigurt me tipet dhe burimet. Ndërkohë, programuesit që nuk kanë nevojë për këto garanci të rrepta sigurie kanë mundësinë të vazhdojnë të përdorin metodat e vjetra të zhvillimit.
Stroustrup mendon se një analizues i mirë statik, që përmbush rekomandimet e C++ Core Guidelines, mund të ofrojë garancitë e nevojshme të sigurisë për kodin C++, duke kërkuar në mënyrë të konsiderueshme më pak kosto sesa kalimi në gjuhët e reja të sigurta 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 memory në Microsoft Visual Studio. Disa rekomandime janë gjithashtu konsideruar në analizuesin statik Clang tidy.
Objekti i kritikës gjithashtu ishte theksi i raportit të NSA vetëm në problemet e punës me memory, duke lënë pa vëmendje 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ë, dimensionet e ndryshme të të cilit mund të arrihen përmes kombinimit të stilit të shkrimit të kodit, bibliotekave dhe analizuesve statikë. Për menaxhimin e përfshirjes së rregullave që sigurojnë sigurinë e punës me tipet dhe burimet, propozohet përdorimi i anotacioneve në kod dhe opsioneve të kompilatorëve.
Në aplikacionet ku performanca është më e rëndësishme se sa siguria, një qasje e tillë ofron mundësinë për të aplikuar selektivisht mjete që garantiojnë sigurinë vetëm atje ku është e nevojshme. Mjetet për rritjen e sigurisë gjithashtu mund të aplikohen pjesërisht, për shembull, në fillim duke u kufizuar në rregullat e kontrollit të intervaleve dhe inicializimit, dhe pastaj gradualisht duke e adaptuar kodin për kërkesa më të rrepta.
Burimi: opennet.ru
