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

Насчёт не обнуления локальных - ну это трагедия. В A2 для x86 и x64 обнуляются, для ARM, как я понял, зависит от флагов. Нужно либо обнулять, как сделано в голанге, либо должна быть ошибка компиляции, если компилятор не смог доказать, что переменная инициализирована до использования. В Активном Обероне 2018 есть инициализаторы переменных и определение переменных в коде, но некоторые считают это ересью.

Насчёт неявности, есть же всякие copy constructor и оператор =, ЕМНИП. Перегрузка операций тоже позволяет создавать неявные преобразования и достигнуть уровня JS, когда 2+2=22.

> В стандартной библиотеке С++ реализовано несколько видов интеллектуальных указателей, которые вполне надежно защищают от утечек памяти

Здесь недостаточно в курсе, но мне казалось, что это всё же костыли, которые по результату хуже, чем сборка мусора. Давно не писал на C++. Во всяком случае, как-то я пил с пареньком из Яндекса и он сказал, что они не могут справиться с некоторыми багами в их сервисах. При том, что культура производства там наверняка на высоком уровне.

> . Например, если мы делаем веб-систему, и интерфейс у нас уже на другом языке, хотя бы и того же семейства.

Утверждение может быть и дискуссионное. Но сейчас настаёт эпоха webasm и веб-приложений, которые скачиваются и устанавливаются. У js уже нет монополии как у языка веб-клиентов. Да и вся вот эта технология SPA и веб-фреймворков - на самом деле это какой-то ужас. Поэтому вполне можно (и нужно) ставить вопрос о написании и клиента, и сервера веб-систем на одном и том же языке. Другое дело, что передача js по сети в исходных кодах, а jar - в виде байт-кода решает проблемы с безопасностью, т.к. на стороне клиента можно провести входной контроль и ограничить возможности кода. Если передавать машкод, то провести входной контроль, наверное, становится сложнее, хотя я не настолько в этой теме.

> Вот здесь могу отметить интересность С++.
На С++ можно писать в 4 стилях: процедурном, объектно-ориентированном, функциональном, и обобщенном. Ничего подобного в любых других языках нет.
В том числе и в Обероне.

Ну, это не совсем правда, но не будем о запретном

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

> Писать ПРОСТО можно на ЛЮБОМ языке. Только на С++ для этого нужна самодисциплина...)))))
Когда берётся реальный проект на С++ с зависимостями, то нужна самодисциплина у авторов всех используемых библиотек, причём одинаковая. Иначе бедному автору проекта придётся иметь дело с 5 реализациями контейнеров, 5 видами строк и т.п. И знать все те подмножества языка, которые использовали авторы всех библиотек.