Macros are a simple mechanism for generating code, in other words, automating programming. Unless your system includes a better mechanism for automating programming (so far, I have not seen any such mechanisms), not having macros means that you basically don’t understand why you are writing code. This is why it is not surprising that most software sucks – a lot of programmers only have a very shallow understanding of why they are programming.

Even many hackers just hack because it’s fun. So is masturbation.

This is also the reason why functional programming languages ignore macros. The people behind them are not interested in programming automation.