> -- Comdiv писал(а):
> Абстракции из-за рефлексии во время исполнения протекают вне зависимости от "нормальности" языка. Это можно попытаться ограничить, но тогда она потеряет привлекательность для сторонников использования рефлексии для решения обыденных задач.

Да зря пытаться решать проблемы информ. безопасности (т.е. защиты не от неправильного использования, а от злоумышленного вмешательства) в одной адресном пространстве, языковыми средствами.. Тут таки изоляция процессов. Т.е. модель типа Minix 3 + Oberon в каждом процессе.

Иначе потери в гибкости (за счёт лишения возможностей той же рефлексии) большие, усложнение защитных средств тоже, а гарантий всё равно нет (верифицировать всю семантику на то, что она не "подтекает" - упаришься.. Как уязвимость WITH на тему изменить указатель из тела WITH - и крэшнуть память).

Для супер-оптимизаций и выкидывания неиспользуемого кода да, стараются ограничить использование рефлексии (как в Dart, где в упакованный JS идут только реально использующиеся функции и типы). Но тут уже надо возлагать на разработчика ответственность: использует что-то динамически - пусть добавляет зависимость в конфиг для учёта сборщиком...

Отказ от рефлексии - архитектурно шаг назад.