Creo que no te lo han dicho, en el caso de las variables globales estas pueden ser modificadas en cualquier parte del código, lo que significa que si una parte del programa hace lo que no debe y modifica una variable que luego se usa en otra pero no espera que haya sido modificada tu programa terminará fallando o mostrando datos erróneos, seguramente en una parte que está más o menos bien, que no es la que hace la cosa rara con la variable.
Busca ejemplos de "spaguetti code". De ahí la conveniencia de programar utilizando módulos aislados conectados por interfaces claras que por otra parte son reutilizables.
Inyectar la base de datos entera a toda la aplicación, o pasarle al cliente todos los datos de una base de datos y que luego haga subconsultas de esos datos en global es una pésima idea, primero porque estás estresando al servidor de la base de datos pidiéndole todo, en segundo lugar porque esos datoos seguramente van por red hasta el cliente y estás generando mucho más tráfico del que le hace falta y en segundo lugar estás estresando la estación de trabajo del usuario haciéndole cargar en memoria datos que no necesita.
En el caso de la historia a la que referencias en Meneamé es la del típico homo-consulting-informaticus que tiene montado su chiringuito en la típica teleco española, en una compañía de seguros o un banco, que trabajan un huevo dando soporte (o haciendo el desarrollo y dando soporte) de una aplicación interna y supersecreta, generalmente muy antigua que corre en sistemas operativos lo bastante extraños como para que alguien que no haya trabajado nunca en esto conozca (en general unix comerciales, VMS y semejantes) que tienen decenas de bugs, que son subsanables con parches o mediante scripting pero que están apoltronados en su trabajo, que curran mucho, o poco, pero que hacen horas y las cobran y mantienen a su jefe en la inopia, porque no es que le jefe o los compañeros no sepan, es que no les dejan saber. Se guardan la documentación para ellos, dicen que no hay documentación y en realidad tampoco saben mucho del sistema. Todos los días hacen los mismos chequeos a mano, se han pegado un huevo de horas haciendo un sistema de monitorización en cualqueir lenguaje exótico (o no tan exótico) que les manda decenas de eventos cada hora de cosas que necesitan solución (se está llenando un filesystem, se ha caído un proceso) en lugar de utilizar una solución de tipo cfengine o puppet que te mantiene viva la plataforma.
Y así es todo. Los programadores kobold y otras criaturas del pasado se creen que son los únicos que pueden hacer su trabajo, pero los kobols siempre miran con recelo cuando alguien nuevo llega a su mazmorra, no sea que el nuevo becario descubra que el kobol (o porgramador COBOL) en realidad no sabe tanto como los hace creer a Jefus y se descubra que hace un millón de tareas manuales al día porque es tan perro que pasa de automatizar, que con un poco de ganas se puede dejar de hacer un trabajo de robot y pasar a hacer un trabajo que aporta valor...
En fin, esto da para un libro.
Marcadores