C++ kūrėjas kritikavo saugių programavimo kalbų primetimą

Bjarne'as Stroustrupas, C++ kalbos kūrėjas, paskelbė prieštaravimus NSA ataskaitos išvadoms, kuriose organizacijoms rekomenduojama atsisakyti programavimo kalbų, tokių kaip C ir C++, kurios palieka atminties valdymą kūrėjui, o ne kalbas. tokias kaip C#, Go, Java, Ruby, Rust ir Swift, kurios užtikrina automatinį atminties valdymą arba atlieka atminties saugos patikras kompiliavimo metu.

Pasak Stroustrup, NSA ataskaitoje minimos saugios kalbos iš tikrųjų nėra pranašesnės už C++ jo požiūriu svarbiose programose. Visų pirma, pastaraisiais metais parengtos pagrindinės C++ (C++ Core Guidelines) naudojimo rekomendacijos apima saugius programavimo metodus ir nurodo naudoti įrankius, garantuojančius saugų darbą su tipais ir ištekliais. Tai palieka galimybę kūrėjams, kuriems nereikia tokių griežtų saugumo garantijų, ir toliau naudoti senus kūrimo metodus.

Stroustrup mano, kad geras statinis analizatorius, atitinkantis C++ pagrindines gaires, gali suteikti reikiamas garantijas dėl C++ kodo saugumo žymiai mažesnėmis sąnaudomis nei perėjimas prie naujų saugių programavimo kalbų. Pavyzdžiui, dauguma pagrindinių gairių jau įdiegtos statiniame analizatoriuje ir atminties saugos profilyje, įtrauktame į Microsoft Visual Studio. Į kai kurias rekomendacijas taip pat atsižvelgiama naudojant Clang tidy statinį analizatorių.

NSA ataskaita taip pat buvo kritikuojama dėl to, kad dėmesys sutelkiamas tik į atminties problemas, neįtraukiant daugelio kitų programavimo kalbos problemų, kurios turi įtakos saugumui ir patikimumui. Stroustrup į saugumą žiūri kaip į platesnę sąvoką, kurios skirtingus aspektus galima pasiekti derinant kodavimo stilių, bibliotekas ir statinius analizatorius. Norint kontroliuoti taisyklių, užtikrinančių darbo su tipais ir ištekliais saugumą, įtraukimą, siūloma naudoti komentarus kode ir kompiliatoriaus parinktyse.

Programose, kuriose našumas yra svarbesnis už saugumą, šis metodas leidžia pasirinktinai taikyti funkcijas, kurios garantuoja saugumą tik ten, kur to reikia. Saugos įrankiai taip pat gali būti taikomi dalimis, pavyzdžiui, pradedant nuo diapazono tikrinimo ir inicijavimo taisyklių, o vėliau palaipsniui pritaikant kodą prie griežtesnių reikalavimų.

Šaltinis: opennet.ru

Добавить комментарий