Ну вот, теперь встаёт вопрос - как бороться со сложностью? Мы не знаем, что такое сложность, но у нас зато есть  формальные знаковые системы (языки программирования) и эффективное воплощение формальной системы (компьютер).

Если программист при решении задачи пытается выразить проблемы с помощью некоего формализма, то можно подумать, что чем больше всяких ништяков напихано в этот формализм, тем круче. Замыканий, итераторов и дженериков нет в Обероне, но значит ли это, что формализм Оберона не подходит для выражения проблем? Может так оказаться, что проблема в самом программисте, который привык итераторами мерять всё подряд.

P.S. Ну, Си был создан только для избавления от мучений на ассемблере. Так сложилось. А Оберон - тщательно спроектирован, в чём и отличие.