Код: Выделить всё
перем данные = МУСОР : ряд 10050 из литера8
То же и про сборку мусора - она увеличивает надёжность, D не взлетел, но ява, дотнет, го, Ruby, PHP, Python уж точно взлетели. Лисп как взлетел, так по сей день и летит - ведь EMACS на нём написан, да и в PostgreSQL, и в gcc в родословной лисп тоже прослеживается. Также ocaml, haskell и ещё куча всего.
Универсальный указатель - да, это проблема надёжности. Как раз для того, чтобы было безопаснее, и создаются ЯП со строгой типизацией. void * нужен по той причине, что выразительность Си недостаточна. В С++ с этим получше.
> Т.е., контейнеры массивов запихнули в парадигму языка, лишив программиста права на свободное приведение типа этого указателя
Это совершенно нормально. В Обероне есть адресная арифметика, которая помечается необходимостью импорта в таком модуле псевдомодуля SYSTEM (НИЗКОУР). Как правило, нужны массивы, а адресная арифметика - лишь иногда. В Си нет массивов, а только адресная арифметика. В Си люди вынуждены пользоваться опасным ввиду отсутствия безопасного.