Why Lisp Macro Sucks
Lisp Macros Complexity
here's a lisp macro, from GNU Emacs 27.1 of 2020:

can a sane person read that?
Is Your Language WEAK that You NEED Meta Programing?
lisp macro is a form of meta programing. If you have to use meta-programing to solve a problem, it indicates perhaps your language isn't expressive enough in the first place, or you are going round-about.
Damnation of Lisp Macro and Special Forms
(apply #'or '( nil nil t)) ;; Debugger entered--Lisp error: (invalid-function or) ;; or(nil nil t) ;; apply(or (nil nil t)) ;; eval((apply (function or) (quote (nil nil t))) nil) ;; elisp--eval-last-sexp(nil) ;; eval-last-sexp(nil) ;; funcall-interactively(eval-last-sexp nil) ;; call-interactively(eval-last-sexp nil nil) ;; command-execute(eval-last-sexp)
It doesn't work because or
is a “special form”, meaning, it's a builtin macro.