El paquete de golang "net/http" usa la variable global DefaultServeMux para registrar manejadores. ¿Se considera esto una buena práctica o incluso una expresión de golang? ¿Es una variable global después de todo?¿El uso de "net/http" de las variables globales se considera una buena práctica en golang?
Las dos razones principales para no usar variables globales son AFAIK 1) que agregan a la complejidad y 2) son problemáticas en los programas concurrentes.
¿Quizás 1) no se considera importante en este caso porque el desarrollador puede optar por no usar DefaultServerMux? ¿Qué hay de 2)? ¿Las variables globales son siempre thread/goroutine seguras en Go? Aún así, me sorprende que se use en la biblioteca estándar de Go. Nunca he visto tal práctica en otros idiomas/bibliotecas estándar.