@nprofile1q... There is a balance. I often used both compile-time and run-time macros to provide higher level constructs — a mini-language — that matched my problem domain and let me control some optimizations. My colleague did something similar with an optimizing compiler that basically rewrote the source code (joke was it turned other people’s code into something he would have written). Bottom line: there are good technical and creative reasons to work with customized programming languages.