Personally, I don't find I'm "fighting" with macros. You can get an
astounding amount done with macros without having to do the mental
context switch to coding mode. And if I'm already in coding mode, I find
putting the real application I was working on (in Java or C or PHP or
JavaScript or whatever) on short-term hold and switching context to
writing Elisp code for editing the application code, leaves me
struggling to remember what I was trying to accomplish with my changes
to the application code when I finally finish writing the Elisp code and
need to pop that context off my mental stack and return to thinking
about the application code.
But other people's mental processes may well be different. To each his
own. Or, as they say, YMMV.
Mark