Similar to the way operators can define their own UI directly through defining a callback, this patch moves modifier UI drawing to a similar system.
This was described in the **[[ https://wiki.blender.org/w/index.php?title=Source/Architecture/Extensibility | Extensible Architecture Proposal ]]**. The idea is that the code becomes more organized, and self contained.
There are no visible changes except for a bit of simplification to the Data Transfer modifier's UI. Apparently I'm sort of masochistic because I went and rewrote 1700 lines of UI in C. I didn't get to the grease pencil modifiers though.
From my experience it's just a little more complicated than writing it in Python, but it's more purposeful too, and really not that different. The compiler can even find some errors for you.