Muchas veces cuando estamos copiando un archivo a nuestro disco duro la barra de progreso no avanza como debería y al llegar a cierto punto se queda atascada hasta que de repente llega al final. Cuando ocurre esto podemos pensar que el ordenador no va bien o se ha producido algún problema; sin embargo, la realidad es que el único problema que hay es que la parte del software que mide cuánto tardará el archivo en transmitirse no está bien implementado. ¿Por qué esto es así?
Llevamos más de 20 años con este problema en las barras de progreso
Este problema se remonta a la salida de Windows 95, hace 22 años, y no parece que haya mejorado mucho en este tiempo. Microsoft ha añadido Cortana que lo aprende todo de nosotros y cada vez interactúa mejor, pero no ha sido capaz de calcular correctamente el tiempo que tardará nuestro archivo en transferirse en tiempo real.
La barra de progreso cuenta con una información limitada para hacer sus estimaciones: cuántos elementos se están copiando y cuanto ocupan estos archivos. Teniendo en cuenta que nuestro sistema operativo sabe cuán rápido es nuestro hardware, no parece descabellado pensar que tiene la información necesaria para hacer un cálculo acertado.
El principal problema al que se enfrenta esa función es la variación constante de las salidas de nuestro sistema operativo. Por ejemplo, cuando estamos transfiriendo un archivo a nuestro disco duro y diferentes programas empiezan a actuar también sobre éste (como por ejemplo una actualización de Steam, o un proceso interno de comprobación de Windows), la velocidad de la transferencia se reduce y la barra de progreso no tiene forma de anticiparse a ello.
Cuando no tenemos diferentes programas actuando de forma paralela en nuestra unidad de almacenamiento, puede que sí tengamos nuestro disco duro muy fragmentado -esto no afecta a los SSD-, y el tiempo de transferencia también puede variar si debe repartir un mismo archivo en diferentes zonas del disco. Este tipo de situaciones no pueden ser predichas por la barra de progreso y puede que se paralice durante un tiempo su avance.
Sí se puede hacer una barra de progreso que haga una lectura mucho más precisa del tiempo que tarda el archivo en transferirse, pero los desarrolladores deciden invertir su tiempo en otras funciones que los usuarios vamos a disfrutar más. Ya que el tener en cuenta todas las variables que afectan a la transferencia del archivo requiere mucho trabajo e introducir algoritmos complejos, los desarrolladores perderían mucho tiempo y eso no es rentable.