¿Por qué los espacios de nombres se consideran una mala práctica en JavaScript? [cerrado]

Me han dicho que los espacios de nombres no deben usarse, ya que "contaminan" el alcance global. Me pregunto cuales son las alternativas?

Cuando quiero definir funciones de utilidad y / o constantes, por ej. para un sitio web, una forma sencilla de hacerlo sería definirlos por espacios de nombres, de esa manera el daño al alcance global se restringe a un solo objeto.

Si los espacios de nombres son una mala práctica, un par de preguntas vienen a la mente:

¿Por qué es esta mala práctica?¿Cuál es el alcance de esta declaración (aplicaciones web / sitios web dinámicos / sitios web estáticos, etc.)?¿Cuáles son las alternativas?

Esta pregunta es el resultado de una discusión iniciada enun post sobre los beneficios de usar extend.js.

Respuestas a la pregunta(2)

Su respuesta a la pregunta