Это такой тонкий сарказм? Глобальные переменные следует пользовать только в исключительных случаях и в большинстве современных ЯП их можно и нужно заменить на другие механизмы(гуглить singleton к примеру).
раскрыть ветку (4)
синглтон также являет собой глобальное состояние которое внезапно может изменится из любой части программы, что обеспечивает в дальнейшем море счастья и радости, happy debugging.
раскрыть ветку (2)
раскрыть ветку (1)
ну как сказать то, даже не реализация а применение чего попало где попало, где-то блеснуть "скилом" а где-то просто "чтобы было".
Я тоже об этом думал, нам всегда рассказывали, что глобальные переменные не должны использоваться там, где без них можно обойтись. Не знаю, может это не относится к скриптингу (сам пишу на Шарпе), но что-то не верися ;-)