Этот инструмент, как и любой другой, обычно злоупотребляют, но я не думаю, что они злые.
Например, у меня есть программа, которая действительно действует как онлайн-база данных. Данные хранятся в памяти, но другие программы могут манипулировать ими. Существуют внутренние подпрограммы, которые во многом похожи на хранимые процедуры и триггеры в базе данных.
Эта программа имеет сотни глобальных переменных, но если подумать, что такое база данных, но огромное количество глобальных переменных.
Эта программа используется уже около десяти лет во многих версиях, и это никогда не было проблемой, и я бы повторил это через минуту.
Я признаю, что в этом случае глобальные переменные - это объекты, у которых есть методы, используемые для изменения состояния объекта. Поэтому отслеживание того, кто изменил объект во время отладки, не является проблемой, поскольку я всегда могу установить точку останова для процедуры, которая изменяет состояние объекта. Или даже проще, я просто включаю встроенную регистрацию, которая регистрирует изменения.