It seems to me that LISP will probably be superseded for many
purposes by a language that does to LISP what LISP does to machine
language. Namely it will be a higher level language than LISP that,
like LISP and machine language, can refer to its own programs.
(However, a higher level language than LISP might have such a large
declarative component that its texts may not correspond to programs.
If what replaces the interpreter is smart enough, then the text
written by a user will be more like a declarative description of the
facts about a goal and the means available for attaining it than a
program per se).
An immediate problem is that both the kinds of abstract syntax
presently available and present pattern matching systems are awkward
for manipulating expressions containing bound variables.