Or contaminate it with rot. Meta programming is an enormous risk in software, at least if the software has to last more than 20 years and maintained by more than 10 people.
Every exemple I've seen, be it annotation aspects, script side loaders, preprocessing macros, "configuration" parsers etc has been a complete mistake vs writing what you want clearly, generate nothing or destroy the generator to let people touch the concrete thing rather than navigate a maze of indirection.
I hope you ll end up expanding you mind with the conclusion that we should never program stuff that output other programs if what we want to program is the output.
I am familiar with code generators (in general) and macros from other programming languages like C. And "no"/"lo" code solutions which behind the scenes are code generators.
I have the same bias as you at the outset of this endeavor. But I also like to learn. Maybe there will be an aspect that will grow on me.
Every exemple I've seen, be it annotation aspects, script side loaders, preprocessing macros, "configuration" parsers etc has been a complete mistake vs writing what you want clearly, generate nothing or destroy the generator to let people touch the concrete thing rather than navigate a maze of indirection.
I hope you ll end up expanding you mind with the conclusion that we should never program stuff that output other programs if what we want to program is the output.