I am wondering why client developers' style of programming is so different from server (backend) style. I am looking at the client code, and it is C++; however, it feels alien and wrong. Global variables, nested if statements, awkward interfaces, singletons everywhere, and multiple layers of proxy classes.