Julia has all these fancy metaprogramming features but when is it actually most optimal or comfortable to use them?
Follow up question: Is it ever worth it use metaprogramming in a complicated way?
I am a user of macros, but have never written any. @chain and @benchmark are my most common encounters with metaprogramming. @turbo and @tullio are other good examples.