Не обязательно "не-программисту". Это может быть и программист. Но
скриптовый язык, особенно декларативный позволяет описать и решить
задачу контролируемо, осознаваемо даже программисту. Вот пример -
сейчас я всерьез озаботился чтобы в первом приближении хотя бы
репрезентовать свою систему блочно/скриптово, а затем может быть и
реализовать её таким же образом (либо сгенерировать код, либо
интерпретировать в рантайме). Внешне система до смешного простая.
Но внутри со временем развились несколько десятков состояний, подсостояний, констант и переменных. Которые в реалтайме постоянно изменяются. И уже можно ебануться понять как она работает и что пошло не так чисто по логам. Постоянный анализ состояний и проходы по if... switch... else... доводят до сумасшествия, необходимо что-то более высокоуровневое как в части представления, так и в части написания.