Dlaczego paski postępu wciąż są takie kapryśne?
Paski postępu

W informatyce istnieją elementy, które mimo upływu lat nigdy nie zostały dopracowane. Na szczycie listy znajdują się drukarki – historycznie problematyczne i kosztowne… ale paski postępu nie są wcale wiele lepsze. Nieprecyzyjne, kapryśne i zawodne, zdają się ciągnąć za sobą każdy negatywny aspekt. Skąd to się bierze? Tom Scott wyjaśnia to w krótkim wideo.

Wszyscy je widzieliśmy. Znamy wszystkie ich warianty. Pasek rosnący od lewej do prawej, wskaźnik procentowy w górę albo stała liczba megabajtów do przesłania. Paski postępu doczekały się wielu kosmetycznych poprawek, ale ich zasadniczy problem pozostał nietknięty: po prostu nie działają zbyt dobrze.

I nie jest to nic nowego ani świeżego. Użytkownicy MS-DOS świetnie pamiętają paski, które sprawiały wrażenie zamrożonych na ekranie, aż nagle wracały do życia, i nigdy nie zapomnimy „pięciu najdłuższych minut we wszechświecie” podczas instalacji starych wersji Windows. Więc… co się dzieje? Dlaczego programiści nie naprawiają tego problemu?

Problem pasków postępu

Tom Scott tłumaczy to znakomicie w jednym ze swoich filmów: pasek postępu jest potrzebny, aby wizualizować (w pewnym sensie) pracę, którą wykonuje komputer, ale ta praca jest podzielona na wiele faz, których prędkość może zmieniać się bez ostrzeżenia.

W przeciwieństwie do paska postępu w filmie (który w istocie jest pojedynczym zadaniem), pasek programu reprezentuje takie rzeczy, jak pobieranie plików, ich rozpakowywanie, zapisywanie na dysku i konfigurację systemu operacyjnego.

I w tym momencie precyzja ulatuje w powietrze. Pobieranie plików zależy od tego, jak szybkie i stabilne jest połączenie internetowe. Rozpakowywanie leży w gestii procesora i ilości dostępnej pamięci. Szybkość zapisywania plików może się ogromnie różnić w przypadku dysku twardego i dysku SSD, a nie wszystkie systemy operacyjne są w najlepszej kondycji.

https://old.neoteo.com/por-que-no-puedes-llamar-a-un-archivo-con-en-windows/

Popularne alternatywy, takie jak liczenie liczby plików czy megabajtów do skopiowania, nieco poprawiają sprawę, ale pasek postępu i tak nie będzie płynny. Niektóre pliki są naturalnie większe od innych, a kopiowanie wielu małych plików trwa dłużej. A jeśli chodzi o czas – zegar z „pozostałymi sekundami” zdany jest na łaskę spontanicznych zmian w systemie. Wyobraź sobie, że program potrzebuje 60 sekund na skopiowanie pliku, a Windows 10 postanawia pobierać aktualizacje w tle. Zgadnij, co się dzieje z tymi 60 sekundami…?

Jedną z opcji proponowanych przez Toma jest zwykłe obliczenie średniej – wzięcie pod uwagę wszystkiego, co program zrobił w ostatnich dziesięciu czy dwudziestu sekundach, i opracowanie na tej podstawie „szacowanego czasu”. W ten sposób dochodzimy do fundamentalnej prawdy o paskach postępu: nie muszą być idealne ani poruszać się płynnie. Wystarczy, że wskazują „postęp”.