Некоторые современные исследования Гипотезы Лингвистической Относительности показывают явные корелляции между выразительным инструментарием языка программирования и предпочтениями программистов.
В этой связи особенно важно отметить стилистическую ценность мультипарадигменных языков в решении одной весьма известной проблемы, а именно: Expression Problem.
en.wikipedia.org/wiki/Expressio…
Увы, но в данном вопросе пологаться на случайность уже не получится. Необходимость создания эффективной прикладной основы для решения задачи выразительности определяет весьма конкретные границы для языков, основанных на передаче сообщений, к коим относится и JavaScript.
И современное состояние JavaScript вплотную приблизило нас к решению этой задачи. Развитый инструментарий Прототипного Наследования в комбинации с Функциональной Природой позволяет использовать уже известные решения: Классы Типов,
Мультиметоды и даже Категорные Суммы.
Беусловно, есть ограничения, самым важным из которых является распределение процессов Конструирования во времени. Базовое ограничение состоит в том, что хоть мы и можем унаследоваться от множества конструкторов, но сделать это получится лишь последовательно.
Связь между прототипом конструктора и процессом создания экземпляра является вторым значимым ограничением: конструктор используется для создания экземпляра единожды, вне зависимости от направления самих связей.
И поскольку привычное нам требование идемпотентности результатов не позволяет выйти за границы топологии, то и в решении проблемы выразительности мы большей частью основываемся на Абелевых Кольцах.
Этот же вывод позволяет решить задачи топологической сортировки: наследование экземпляров распределено как по времени жизненного цикла обектов, так и по жизненным циклам взаимосвязанных подсистем, например системы сборки мусора.
Отсюда видно, что в этой частности мы остаёмся в рамках проблем разрешимости, и в том числе в рамках теоремы Гёделя о неполноте.