Чет пришла мыслишка, напишу, а то потом забуду, позже обмозгую. Идея следующая. У нас (как обычно принято, как сейчас, по дефолту) есть исполнитель и текст программы — данные, а «внутри» программы, есть тоже исполнители (функции, инструкции, подпрограммы) и данные (списки, символы и пр). Это некоторого рода смещение абстракции. А что если мы оставим в языке (правилах написания текста программ) только данные, а обработку этих данных оставим на совести исполнителя? Черт возьми, мы получим чисто декларативный язык!!! В этом языке нет абстракции «исполнитель», есть только абстракция «данные». И это будет работать!!!
Тоесть, у нас получилось четкое разделение ролей. Программа-исполнитель — выполняет, программа-данные только декларирует. Эта концепция гораздо проще выглядит. И нет конечно тут ограничений, один программист может написать и исполнителя и «данные». Но, тут у нас сладкая перспектива открывается: программу-данные можно поручить и секретарше.
Сумбурно изложено, извиняюсь, но это ИМХО, настоящая бомба:)