Quando as variáveis ​​globais são realmente consideradas boas / práticas recomendadas?

Eu tenho lido muito sobre por que as variáveis ​​globais são ruins e porque elas não devem ser usadas. E, no entanto, a maioria das linguagens de programação comumente usadas suporta globals de alguma forma.

Então, minha pergunta é qual é a razão pela qual as variáveis ​​globais ainda são necessárias, elas oferecem alguma vantagem única e insubstituível que não pode ser implementada alternativamente? Há algum benefício no endereçamento global em comparação com a indireção personalizada especificada pelo usuário para recuperar um objeto fora de seu escopo local?

Tanto quanto eu entendo, em linguagens de programação modernas, o endereçamento global vem com a mesma penalidade de desempenho como calcular cada deslocamento de um endereço de memória, seja um deslocamento do início da memória de usuário "global" ou um deslocamento de umthis ou qualquer outro ponteiro. Portanto, em termos de desempenho, o usuário pode falsificar globals nos casos mais restritos, eles são necessários usando indiretamente o ponteiro sem perder desempenho para variáveis ​​globais reais. Então, o que mais? As variáveis ​​globais são realmente necessárias?

questionAnswers(5)

yourAnswerToTheQuestion