Why Global variables are unacceptable
Global variable, for instance, are unacceptable because they break the rules of self - containment. If all procedural components are running as the same program on the same system, global are just fine. But if some functions referencing global are migrated to other platforms, their reference becomes invalid. In addition, responder (server) modules may service requests on many requesters' (client) behalf. In this scenario, the server modification of global variable on behalf of one client may affect other client requesting service as well.