Обновить

Блин, Хабр! Я полчаса писал комментарий на комментарий, перепроверяя каждое слово гуглежом. Нажимаю отправить — позавчерашняя статья убрана в черновики! Фу так делать!

Пишу здесь комментарий ни к селу ни к городу ни о чём.

‑--‑--‑--‑--

Современные embedded языки имеют такие правила типизации, которые позволяют в тестах перебрать все возможные варианты значений или хотя бы категории вариантов (типа как для int: -1,1,0,min_int, max_int).

В Си и других языках той эпохи в любой аргумент (указатель) любой функции может прилететь nullptr, но в большинстве функций это никак не обрабатывается, потому что программист решил, что до сюда nullptr никак не долетит. Но по правилам языка может. Из‑за этого невозможно проверить покрытие тестами всех вариантов,потому что все возможные варианты даже по задумке работать не должны.

Си это не про надёжно. Си это про быстро летает и авось не упадёт.

С++11 пришёл и сел в ту же кучу, сделав допустимым shared_ptr<MyClass> sptr(nullptr); Его, конечно, можно запретить в своём проекте, но там ещё много чего учесть придётся, в итоге модерновый С++ тоже не тестируемый язык.

Почему я докапываюсь именно до Си? Потому что бортовое ПО всех трёх самолётов, где погибли люди из‑за ошибки в ПО было написано на Си и Ada. В том числе в 2018 году. Потому что всегда ж на них писали.

Есть языки типа Coq, тестируемые полностью. Есть языки типа Rust, тестируемые желудочно достаточно. Но авиация выбрала языки, где три иконки на панели компилятора лишними не будут.

Теги:
Всего голосов 9: ↑7 и ↓2+5
Комментарии7

Трамп перемирил AI-техбро, а также новый бюджет РФ на 2027: главное за неделю

Самые интересные новости финансов и технологий в России и мире за две недели: Флорида пытается через суд притормозить OpenAI, из РФ запретили вывозить много налички, Китай включил экспортный контроль за своими AI-спецами, Anthropic подали заявку на IPO, OpenAI запустил агентов-точечек, но отложил новую GPT-6.1 Astra из-за проблем с безопасностью, а Google тоже не спешит выпускать Gemini 4 Argon.

Трамп перемирил AI-техбро, а также новый бюджет РФ на 2027: главное за неделю

Публикации