Question about JUCE design


As a total newbie in C++ and frameworks (or toolkits), i just wonder if there is specific design knowledges required to create Framework like JUCE (which is to me a great tool).

For example how has been made the choice of the classes and their interactions - this is probably not only inspiration…

Thank you in advance for any help.