The developers don’t know from each other’s code and add both user controls in the same page. This means that both init functions are declared globally in one page.
In this situation the last one overwrites the previous one but the developer who added the first one will not be happy about it.
For example these general function names are often used:
But when the errors come, that will be fun to figure out.
Creating A Namespace
I guess all of you will recognize the Old-School Way, which is actually the bad way I described in the situation above.
The patterns described in the above link are good ways to encapsulate big pieces of code, but be careful when using them. If the object/module is instantiated multiple times, also the contained methods are defined multiple times. So then the performance drops.
Other resources which I found helpful: