At the beginning of the chapter, we boldly claimed that metaprogramming is not needed 99% of the time. That is indeed not a made-up number. At the JuliaCon 2019 conference, Professor Steven Johnson from MIT delivered a keynote speech regarding metaprogramming. He did some research about the Julia language's own source code. From his study, Julia version 1.1.0 contains 37,000 methods, 138 macros (0.4%), and 14 generated functions (0.04%). So metaprogramming code comprises less than 1% of Julia's own implementation. While this is just one example of metaprogramming's role in one language, it is representative enough that even the smartest software engineers would not use metaprogramming most of the time.
So the next question is: When do you need to use metaprogramming techniques? Generally speaking, there are several reasons...