«Бацька» C++ выступіў у яе абарону — у АНБ ЗША патрабуюць адмовіцца ад мовы
Стваральнік С++ — адной з найпапулярнейшых сёння моў праграмавання і «мовы года» па версіі TIOBE — Б’ёрн Страўструп адрэагаваў на заклік Агенцтва нацыянальнай бяспекі ЗША адмовіцца ад выкарыстання моў праграмавання, у якіх адказнасць за кіраванне памяццю ўскладзеная на распрацоўшчыка, такіх як C і C++, на карысць тых, што забяспечваюць бяспечнейшую працу з памяццю, напрыклад, Rust.
У адкрытым лісце Страўструп не пагадзіўся з пазіцыяй агенцтва. Па-першае, ён адзначыў, што там «змяшалі ў адную купу» C і C++, хаця мовы развіваліся незалежна на працягу апошніх 30 гадоў. Зрэшты, і практыка прымянення C++ шмат у чым «засела ў мінулым» — распрацоўшчыкі нярэдка ігнаруюць змены ў мове, якія дазваляюць кардынальна павысіць бяспеку кода, наракае Страўструп.
У рэчаіснасці ж, на яго думку, C++ ні ў чым не саступае сучасным так званым бяспечным мовам накшталт C#, Go, Java, Ruby, Rust і Swift, якія АНБ прасоўвае ў якасці альтэрнатывы. Базавыя рэкамендацыі па выкарыстанні C++ (C++ Core Guidelines), над якімі Страўструп працаваў апошнія некалькі гадоў, утрымліваюць метады бяспечнага праграмавання і загадваюць выкарыстоўваць сродкі, якія гарантуюць бяспечную працу з тыпамі і рэсурсамі.
Сур’ёзнай дапамогай праграмісту стане дыхтоўны статычны аналізатар кода, лічыць Страўструп. Укараненне такога інструмента прывядзе да значна меншых выдаткаў працы, ніж пераход на «бяспечныя» мовы.
На думку дацкага праграміста і навукоўца, у аўтараў рэкамендацый у АНБ занадта вузкае ўяўленне пра бяспеку софту, якое абмяжоўваецца бяспечнай працай з памяццю. У той жа час існуе больш за дзясятак іншых сцэнароў, пры якіх асаблівасці канкрэтнай мовы можна — наўмысна альбо не — выкарыстоўваць на шкоду бяспецы софту, адзначае стваральнік C++.
«Бацька» С++ лічыць, што дамагчыся бяспекі софту магчыма, спалучаючы розныя стылі праграмавання, правераныя бібліятэкі і абавязковы статычны аналіз кода.
Страўструп заклікаў АНБ спачатку сур’ёзна падумаць пра «бяспеку» новых моў і толькі затым прапанаваць што-небудзь разумнае з гэтай нагоды. «Разумным» Страўструп палічыў бы фармаванне спісу праблем бяспекі С++, якія пасля можна было б ліквідаваць шляхам прыняцця паправак да міжнародных стандартаў мовы. «Гэтым я і планую заняцца», — адзначыў праграміст.
У 2022 годзе Страўструп і Габрыэль дос Рэйс з Microsoft апублікавалі працу, у якой разабралі частыя памылкі праграмістаў, якія прыводзяць да «паломкі» сістэмы тыпаў даных і ўзнікнення праблем з бяспекай выкарыстання сістэмных рэсурсаў (у прыватнасці, памяці), а таксама прапанавалі меры па іх прадухіленні.
У заключэнне ліста Страўструп намякнуў, што аўтарам даклада АНБ варта было б звяртацца па экспертнае меркаванне да прадстаўнікоў камітэта ISO па стандартах C++, а не абапірацца на пункт гледжання нейкай «усёабдымнай супольнасці распрацоўшчыкаў софту, якая прадстаўляе прыватны і дзяржаўны сектары эканомікі ЗША, а таксама акадэмічнае асяроддзе». Якраз так у справаздачы АНБ пазначаныя ініцыятары паўсюднага пераходу на мовы праграмавання, якія забяспечваюць бяспечную працу з памяццю.
Читать на dev.by