Una barra de progreso o barra de carga es un componente de la interfaz gráfica de usuario que se utiliza para indicar el progreso de una tarea que está realizando el ordenador, como una descarga, una transferencia de archivos o una instalación.[1] Al principio, la barra está completamente vacía, y después se va llenando de color de izquierda a derecha a medida que avanza la tarea, hasta llenarse por completo cuando ésta finaliza. En ocasiones, el gráfico va acompañado de una representación textual del progreso en formato de porcentaje.
También aparecen en los videojuegos durante las fases de carga antes de poder empezar a jugar, en cuyo caso se conocen como barras de carga. Los desarrolladores suelen poner especial empeño en que sean originales. En los videojuegos, en cambio, es habitual que no aparezca ningún porcentaje.
El concepto de barra de progreso es anterior a la informática digital. En 1896, Karol Adamiecki creó un gráfico denominado armonograma, hoy conocido como diagrama de Gantt.[2] Sin embargo, Adamiecki no publicó su gráfico hasta 1931, y sólo en polaco.[3] En la actualidad, el gráfico lleva el nombre de Henry Gantt (1861-1919), que lo diseñó entre 1910 y 1915 y lo popularizó en Occidente.[4]
La primera barra gráfica de progreso adaptada al campo de la informática apareció en la tesis doctoral de Mitchell Model de 1979 titulada Monitoring System Behavior in a Complex Computational Environment ("Supervisión del comportamiento del sistema en un entorno informático complejo").[5] En 1985, Brad Myers presentó una ponencia sobre los "indicadores de progreso del porcentaje realizado" en una conferencia dedicada a las interacciones persona-ordenador.[6]
La investigación de Myers consistía en pedir a varias personas que realizaran búsquedas en bases de datos, en algunos casos acompañadas de una barra de progreso y en otros no. Los que esperaron mientras veían una barra de progreso describieron una experiencia global más positiva. Myers llegó a la conclusión de que el uso de la barra de progreso reducía la ansiedad y era más eficaz.[7]
Por lo general, las barras de progreso aplican una función lineal, de tal forma que el avance de la barra es directamente proporcional a la extensión de la tarea que se ha completado. Sin embargo, factores como la variabilidad de la capacidad del disco, la memoria, el procesador y el ancho de banda, entre otros, hacen que esta estimación sea más complicada. Por ello, las barras de progreso suelen mostrar comportamientos no lineales, como aceleraciones, desaceleraciones y pausas. Estos comportamientos, unidos a la percepción no lineal del paso del tiempo por parte del ser humano, dan lugar a que el tiempo que tardan en completarse las barras de progreso no siempre se perciba de la misma manera.[8] Esto también implica que las barras de progreso se pueden diseñar para que "parezcan" más rápidas.
En ocasiones, para mostrar el progreso de una operación particularmente larga, como la instalación de un programa pesado o la copia de muchos archivos a la vez, algunas aplicaciones optan por mostrar dos barras de progreso al mismo tiempo, una para indicar el progreso de la totalidad de la tarea y otra para el de las distintas subtareas, como la instalación de un único componente o la copia de un archivo concreto.
Por último, también se ha demostrado que el diseño gráfico de las barras de progreso influye en la percepción de la duración por parte del ser humano.[9]
Suele representarse como un área rectangular larga y estrecha que se va "rellenando" de izquierda a derecha a medida que se completa la operación. El relleno del área rectangular suele ser una barra rectangular coloreada continua o una serie de pequeños bloques separados entre sí. En ocasiones, la parte gráfica del componente va acompañada de un porcentaje que indica hasta qué punto se ha completado el proceso. En ocasiones, el color del relleno puede cambiar para indicar que el proceso se encuentra en estado de pausa o error.[10]
La norma ISO 9241-161 recomienda que la barra de progreso se diseñe de forma que no se confunda con un control deslizante.[11]
Una variante de más reciente creación es la barra de progreso indeterminada, que se utiliza en situaciones en las que se desconoce la extensión de la tarea o en las que el progreso de la misma no puede expresarse en forma de porcentaje, y al mismo tiempo debe quedar claro que el ordenador sigue trabajando activamente y no se ha quedado atascado.[1] Estas barras recurren al movimiento continuo de uno o varios bloques dentro del área rectangular, de modo análogo a un poste de barbero.[12]
También existen indicadores de progreso indeterminados que no tienen forma de barra, como los throbbers o los cursores en modo de espera (por ejemplo, con forma de reloj de arena).
En los dispositivos que funcionaban con terminales de modo texto de épocas en las que las capacidades gráficas no estaban tan desarrolladas, las barras de progreso se visualizaban como una serie creciente de caracteres, como [XXXXXX...]
, [######...]
o [======...].
[13]
Se considera que el precursor basado en texto del throbber es la secuencia recurrente de caracteres |/-\, que se mostraban en la misma posición del cursor. Estas animaciones basadas en texto ya aparecían en las primeras versiones de UNIX y DR-DOS en la década de 1980.