Twórca C++ skrytykował narzucanie bezpiecznych języków programowania

Bjarne Stroustrup, twórca języka C++, opublikował zastrzeżenia wobec wniosków zawartych w raporcie NSA, w którym organizacjom zaleca się rezygnację z używania języków programowania, takich jak C i C++, które przenoszą zarządzanie pamięcią na dewelopera, na rzecz języków takich jak C#, Go, Java, Ruby, Rust i Swift, które zapewniają automatyczne zarządzanie pamięcią lub wykonują kontrole bezpieczeństwa podczas kompilacji.

Według Stroustrupa wspomniane w raporcie NSA bezpieczne języki nie przewyższają C++ w istotnych z jego perspektywy zastosowaniach. W szczególności rozwijane w ostatnich latach podstawowe wytyczne dotyczące użycia C++ (C++ Core Guidelines) obejmują metody bezpiecznego programowania i nakazują stosowanie narzędzi zapewniających bezpieczne operacje z typami i zasobami. Deweloperom, którzy nie potrzebują takich surowych gwarancji bezpieczeństwa, pozostawia się możliwość kontynuowania użycia starych metod programowania.

Stroustrup uważa, że dobry statyczny analizator zgodny z wytycznymi C++ Core Guidelines może zapewnić niezbędne gwarancje bezpieczeństwa kodu C++, wymagając znacznie mniej nakładów niż przejście na nowe bezpieczne języki programowania. Na przykład, większość rekomendacji Core Guidelines jest już wdrożona w statycznym analizatorze i profilu bezpiecznego działania pamięci w Microsoft Visual Studio. Część zaleceń uwzględniono również w statycznym analizatorze Clang tidy.

Obiektem krytyki stało się również skupienie raportu NSA tylko na problemach z pamięcią, pomijając wiele innych problemów języków programowania, które wpływają na bezpieczeństwo i niezawodność. Stroustrup postrzega bezpieczeństwo jako szersze pojęcie, którego różne aspekty można osiągnąć poprzez połączenie stylu pisania kodu, bibliotek i statycznych analizatorów. Do zarządzania włączeniem zasad zapewniających bezpieczeństwo pracy z typami i zasobami proponuje się stosowanie adnotacji w kodzie i opcji kompilatorów.

W aplikacjach, w których wydajność jest ważniejsza niż bezpieczeństwo, takie podejście umożliwia selektywne wdrażanie środków zapewniających bezpieczeństwo tylko tam, gdzie to konieczne. Narzędzia poprawiające bezpieczeństwo mogą być też stosowane częściowo, na przykład początkowo ograniczając się do zasad sprawdzania zakresów i inicjalizacji, a następnie stopniowo dostosowując kod do surowszych wymagań.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster