Я знаю, что программисты Lisp и Scheme обычно говорят, что eval
следует избегать, если это строго необходимо. Я видел ту же рекомендацию для нескольких языков программирования, но Ive еще не видел список четких аргументов против использования eval
. Где я могу найти отчет о потенциальных проблемах использования eval
?
Например, я знаю проблемы GOTO
в процедурном программировании (делает программы нечитабельными и трудноподдерживаемыми, затрудняет поиск проблем безопасности и т.д.), но я никогда не видел аргументов против eval
.
Интересно, что те же аргументы против GOTO
должны быть действительными в отношении продолжений, но я вижу, что Schemers, например, не скажут, что продолжения являются "злыми" - вы должны просто быть осторожными при их использовании. Theyre гораздо более склонны хмуриться на код, используя eval
, чем на код с использованием продолжений (насколько я вижу - я мог ошибаться).