«Бацька» C++ выступіў у яе абарону — у АНБ ЗША патрабуюць адмовіцца ад мовы

Стваральнік С++ — адной з найпапулярнейшых сёння моў праграмавання і «мовы года» па версіі TIOBE — Б’ёрн Страўструп адрэагаваў на заклік Агенцтва нацыянальнай бяспекі ЗША адмовіцца ад выкарыстання моў праграмавання, у якіх адказнасць за кіраванне памяццю ўскладзеная на распрацоўшчыка, такіх як C і C++, на карысць тых, што забяспечваюць бяспечнейшую працу з памяццю, напрыклад, Rust.

5 каментарыяў

У адкрытым лісце Страўструп не пагадзіўся з пазіцыяй агенцтва. Па-першае, ён адзначыў, што там «змяшалі ў адную купу» C і C++, хаця мовы развіваліся незалежна на працягу апошніх 30 гадоў. Зрэшты, і практыка прымянення C++ шмат у чым «засела ў мінулым» — распрацоўшчыкі нярэдка ігнаруюць змены ў мове, якія дазваляюць кардынальна павысіць бяспеку кода, наракае Страўструп.

У рэчаіснасці ж, на яго думку, C++ ні ў чым не саступае сучасным так званым бяспечным мовам накшталт C#, Go, Java, Ruby, Rust і Swift, якія АНБ прасоўвае ў якасці альтэрнатывы. Базавыя рэкамендацыі па выкарыстанні C++ (C++ Core Guidelines), над якімі Страўструп працаваў апошнія некалькі гадоў, утрымліваюць метады бяспечнага праграмавання і загадваюць выкарыстоўваць сродкі, якія гарантуюць бяспечную працу з тыпамі і рэсурсамі.

Сур’ёзнай дапамогай праграмісту стане дыхтоўны статычны аналізатар кода, лічыць Страўструп. Укараненне такога інструмента прывядзе да значна меншых выдаткаў працы, ніж пераход на «бяспечныя» мовы.

Агенцтва нацыянальнай бяспекі заклікала распрацоўшчыкаў адмовіцца ад С/С++
Па тэме
Агенцтва нацыянальнай бяспекі заклікала распрацоўшчыкаў адмовіцца ад С/С++

На думку дацкага праграміста і навукоўца, у аўтараў рэкамендацый у АНБ занадта вузкае ўяўленне пра бяспеку софту, якое абмяжоўваецца бяспечнай працай з памяццю. У той жа час існуе больш за дзясятак іншых сцэнароў, пры якіх асаблівасці канкрэтнай мовы можна — наўмысна альбо не — выкарыстоўваць на шкоду бяспецы софту, адзначае стваральнік C++.

«Бацька» С++ лічыць, што дамагчыся бяспекі софту магчыма, спалучаючы розныя стылі праграмавання, правераныя бібліятэкі і абавязковы статычны аналіз кода.

Страўструп заклікаў АНБ спачатку сур’ёзна падумаць пра «бяспеку» новых моў і толькі затым прапанаваць што-небудзь разумнае з гэтай нагоды. «Разумным» Страўструп палічыў бы фармаванне спісу праблем бяспекі С++, якія пасля можна было б ліквідаваць шляхам прыняцця паправак да міжнародных стандартаў мовы. «Гэтым я і планую заняцца», — адзначыў праграміст.

У 2022 годзе Страўструп і Габрыэль дос Рэйс з Microsoft апублікавалі працу, у якой разабралі частыя памылкі праграмістаў, якія прыводзяць да «паломкі» сістэмы тыпаў даных і ўзнікнення праблем з бяспекай выкарыстання сістэмных рэсурсаў (у прыватнасці, памяці), а таксама прапанавалі меры па іх прадухіленні.

У заключэнне ліста Страўструп намякнуў, што аўтарам даклада АНБ варта было б звяртацца па экспертнае меркаванне да прадстаўнікоў камітэта ISO па стандартах C++, а не абапірацца на пункт гледжання нейкай «усёабдымнай супольнасці распрацоўшчыкаў софту, якая прадстаўляе прыватны і дзяржаўны сектары эканомікі ЗША, а таксама акадэмічнае асяроддзе». Якраз так у справаздачы АНБ пазначаныя ініцыятары паўсюднага пераходу на мовы праграмавання, якія забяспечваюць бяспечную працу з памяццю.

TIOBE абраў «мову года»-2022
Па тэме
TIOBE абраў «мову года»-2022

Читать на dev.by