На мой взгляд, Иван Андреевич не смог достаточно хорошо ответить на вопрос о безопасности типов данных в Обероне в тусовке, где принято программировать на Си. Я думаю, это потому, что Иван Андреевич чувствует себя в обероне как рыба в воде и не часто задумывается над такими вопросами. А такой ответ должен быть наготове у любого оберонщика при выходе из гидросферы в другие сферы. В соседней теме было много слов и даже проклятий в адрес С++, но я попробую кратко сформулировать моё понимание отличий Оберона от Си/Си++, к-рые можно было бы назвать его преимуществами, и относящихся к надёжности/безопасности.

присутствует безопасный тип данных "массив длины, неизвестной во время компиляции". Длина массива хранится вместе с массивом и обычно среда выполнения автоматически проверяет выход за пределы массива. В Си есть только указатели и массивы длины, известной во время компиляции. В С++ есть много разных контейнеров, но С++ слишком сложный язык и фактором ненадёжности выступает как сложность самого языка (ограниченность его понимания разработчиком), так и сложность его компиляторов, сред выполнения и библиотек (в них могут быть ошибки).конструкция WITH реализует безопасный аналог union-ов - в Си есть только опасные. В С++ есть объекты, но см. предыдущий пункт.понятие модуля изначально присутствует в языке - повышает надёжность на архитектурном уровнекак правило, среда выполнения Оберона обнуляет локальные и глобальные переменные, при этом заполнение неинициализированных переменных случайными данными становится резко менее опасным.меньше неявных преобразований типовсборка мусора - резко снижает вероятность ошибок типа "висячий указатель" и "утечка памяти", хотя вносит и свои проблемы вида "утечка ресурсов", которые частично сглаживаются финализаторами. Существуют языки оберон-семейства с задачами реального времени, которые могут прерывать сборщик мусора. Для таких задач на уровне языка запрещено обращение к объектам из кучи, и это сглаживает противоречие между сборкой мусора и реальным временем без ущерба для надёжности.один язык - системы на Обероне зачастую являются однородными по языку, значит, в них нет FFI (интерфейс для вызова инородных функций), который является слабым местом с т.з. надёжности. Бывают ассемблерные вставки, но они есть и в Си/Си++простой язык - по сравнению с С++ - устраняет такой фактор ненадёжности, как недостаточное понимание языка разработчиком.простые компиляторы. Многие компиляторы Оберона достаточно просты, можно залезть и понять, какой машинный код будет сгенерирован и почему. Это позволяет выйти на понятие "доверенности". Популярные компиляторы Си достаточно сложны, поэтому создать доверенный компилятор Си сложнобезопасность была одним из важнейших критериев для принятия решений при разработке языка. В том числе, роль безопасности поставлена выше роли производительности. Поэтому в Обероне зачастую никогда не отключаются проверки, аналогичные санитайзерам, а объём выполняемых оптимизаций ограничен. Это снижает подверженность таким вещам, как ошибки в оптимизаторах, удаление кода, важного для надёжности и безопасности, облегчают диагностику и отладку промышленного кода, который не отличается от отладочного. В случае Си, мы отлаживаем одну версию программы, а в промышленности используется другая, оптимизированная, между их поведением может быть существенный зазор, который снижает надёжность внедрения.стиль оберона - это копирование и адаптация кода вместо создания обобщённого кода. Хотя такой код является более трудоёмким в разработке и поддержке, этот код проще, а значит, более постижим и вследствие этого более надёжен.молниеносная компиляция и горячая замена модулей. Кратковременная память человека стирается через 30 секунд. Если процесс компиляции и перезапуска не укладывается в этот порог, то происходит скачкообразное снижение производительности труда программиста с одновременным снижением надёжности, поскольку модель разрабатываемого фрагмента приходится строить в голове заново после каждой перекомпиляции. В Обероне за счёт быстроты компиляции и за счёт горячей замены модулей довольно сложные программы
можно перезапустить менее, чем за 30 секунд (хотя не знаю, как это относится к встраиваемым применениям, но если говорить вообще, то такой фактор есть).
Прошу добавлять, убавлять и т.п.

Можно также сказать, хотя это не относится к данному набору, что язык оберон-семейства сегодня вошёл в мейнстрим - это golang. Golang позиционируется как язык для написания сетевых сервисов. В этой роли он вытесняет Java и C++. А настоящий Оберон может использоваться и в других областях, в т.ч. в системном программировании - на нём написано несколько операционных систем. Поэтому, опираясь на успех golang, можно предсказать успех Оберона в более широкой области применения.