Сегодня читал со смартфона новый (начало марта 2024г.) технический отчёт от гугловцев, в котором они объявляют о постепенном переходе на ЯП с memory safety. Сейчас не могу найти ссылку, но вот, что по сути.
Вводится таксономия ошибок при работе с памятью (типа пространственная и временная безопасность и проч.). Наверное уже миллион раз это уже предлагалось, и у Эппла есть аналогичная классификация. Для каждого типа ошибок предлагается решение.
Далее интересная штука. Ввиду того, что уже дофига кодовой базы на сишке и плюсах, переписывать это никто не будет, поэтому предлагается всё новое начинать на безопасных ЯП, а небезопасные подмножества использовать только для интерфейса с Легаси кодом, и привлекать к ревью небезопасного кода мощных экспертов.
Приводится какая-то статистика, что типа в Андроиде 70% критических уязвимостей - ошибки в работе с памятью. Но тогда возникает логичный вопрос, ведь кроме ядра в Андрюше очень мало плюсового кода, это какие-то нижние части HAL или что там у них, всякая околосистемная мишпуха, может быть кодеки какие анально огороженные, а всё что выше и остальное уже давным давно на память-безопасных мега языках. И что тогда переводить на эти безопасные языки, если всё, что можно уже и так переведено…
Предлагают типа тюнить плюсы до безопасного подмножества и использования только его. Но тогда нафига нужно будет с этого безопасного подмножества переписывать на Rust? Опять непонятка.
Упоминаются языки на VM, а также Rust, Carbon (экспериментальны проект, типа безопасный C++), Go (блин, он-то тут при чём, если это ниша веб-сервисов? Кто-то пишет вебсервисы на сишке, что это прямо такая глобальная проблема?). Ни слова о Аде. Видимо, упоминаются только те ЯП, в которые Гугл вложился и теперь пиарит.