No. It fails because of its absurdly unreadable syntax (which all of its successors continue to double down on), and fancy yet hardly useful in real world programming idea of S-expressions (i.e. code is data). Yeah, it is very powerful concept, but like for backend implementations, such as compilation & optimization, but not for human operations. How often do you need to write self-modifying code in real programs, or programs to generate programs? There are saner ways to do generic programming than full-blown macro-generation, which with already fucky syntax of Lisp gives even bigger fuck you to program's maintainer. Same goes for DSL, why do you need to invent new ways for expressing things that you already can express in base language? What, you are expert in your field, but not good at programming, so DSL is a very handy way to express yourself to computer? Well, no, if you not good at programming, than no amount of DSL will help your programming, you always will end up with shitty code, just in DSL. That route was already explored by COBOL. So, gid gud and learn to design and develop in proper programming language.
Lisp itself was invented as an autocode for symbol processor machine, and is perfectly fitted exactly for that. Retards was blown away of new concept that computers can be more than simple number crunchers and run away with Lisp as a high level general purpose programming language, which it never was. For fuck sake, all Lisp's descendants to this day don't have a proper mathematical expression syntax, the first thing that started the high level programming.