This is just what programmers do. They all have irresistible urge to write their own meta language on top of what they are using.
C programmers do that with pre-processor. C++ programmers do that with templates and pre-processor. Java programmers do that with annotations.