Global variables are common pitfalls many developers fall into. Indeed, difficult to scale and maintain an application crippled with globals. Why is that? Isn't it convenient to be able to access variables and their values everywhere? The global state problem is only part of a bigger one, namely leaking states and the lack of encapsulation.