&gt; I am generally supportive of this, though, if it masks enough underlying complexity.<p>In general, anything that makes the static structure of your program less discernible to whoever has to read it, can be considered technical debt. If you find yourself doing lots of dynamic metaprogramming, chances are you need to rethink your application&#x27;s architecture.