Posted on December 10th 2017
Letting users see that the computer is doing something and reassuring them that the wait is not for naught has been a staple of software design since the very beginning. There are several ways of doing so, which have spawned more ways to address certain pros and cons. By now, we could say that there is an entire ecology of loading visualizations. In this article, we would like to have a closer look at these fascinating creatures, and examine their strange customs.
We shall start with a common species, one you might find in your backyard or your browser...
The Absurd Time Estimate
Sometimes, software will offer you a time estimate for how long something will take, and, as the situation changes, it will update its estimate. This can be affected by download speeds, the amount of simultaneous processing going on inside your computer, etc. The idea is that the software will start out by saying, this may take about 20 minutes, then re-adjust partway to say 15 minutes remain, and, in the end, take a grand total of 17 minutes.
Unfortunately, the way this usually goes is, the estimate starts out saying that the process will take 20 minutes, and as the download speed tanks, it readjusts to five days, and as your internet connectivity near fails, readjusts to 5 months and 17 days. Rosy's friend Bass once sent her a photo of his screen displaying that a download would take over one year on his dial-up connection! However, even though it said it will be over one year, don't you worry: wait a few minutes, and it will probably come back to something reasonable like ten minutes.
As illustrated by these examples, although this estimate was intended for you to make decisions based on the time remaining, the Absurd Time Estimate fluctuates so wildly that you can't tell anymore whether it will indeed be a short time or if it will take longer than the lifespan of the universe. You'll find this to be terrifying or humorous. In either case, you will come to the understanding that the estimate, really, doesn't mean much. You can kind of tell how things are going if the time is getting bigger or smaller, but you cannot take it literally.
Since everyone made fun of it, this must have led into the development of...
The Noncommittal Time Estimate
You cannot say what "several minutes" really means. Is that five minutes, or is that five thousand minutes? According to your frame of reference, it might be both. You can point at the Absurd Time Estimate and say that it's definitely not true, but you can't really point at the Noncommital Time Estimate as a lie - even if it is done in a few seconds, the message only ever said "might"! And so, whoever programmed this evasive time estimate cannot be held responsible for how much of your day will or will not be wasted waiting for your computer to update.
It would be better to have some rough way of knowing how far we are into the process, right?
The Unmoving Percentage
On smaller timeframes, there is nothing wrong with the loading being displayed by a percentage number that steadily rises as progress is achieved. When the entire loading process is two minutes long, each 1% should theoretically take slightly more than one second, leading to the percentage number rising in a continuous animation. You can watch it happen.
However, when the loading process is two hours long, each 1% is theoretically now slightly more than one minute. This means that, for that entire minute in which the number does not rise, you have no way of telling if anything is still being achieved. With this kind of timeframe, waiting for the loading percentage to rise is a lot like trying to watch a plant grow: yes, the plant is indeed moving, and if you come back in some time, you will notice the difference... but, to your eyes, the plant appears to be perfectly still.
You may notice that we used the word "theoretically" talking about how the total time is divided. In actuality, the percentages are not usually based on the total time (which, as previously described, computers cannot predict well at all), but, rather, on the progress through their list of tasks. This means that not all portions of this 100% are created equal. We just saw it happen in a recent Windows update, and I'm sure you've experienced this too: the change from 25% to 26% took about one hour, but the rest was considerably shorter. If you're watching the screen be stuck on 25% for an entire hour, you'll think that the computer has frozen. There was no other indication that anything was even happening anymore, which led to panic and mass hysteria.
Presented visually, the Unmoving Percentage ends up being...
The Proper Loading Bar
And you will see later why we're calling it "proper". A Proper Loading Bar typically fills from left to right, with the leftmost point signifying 0% completion and the rightmost point signifying 100% completion. While it is a godsend in comparison to other things (still wait for it...), the Proper Loading Bar still has the same problem as the Unmoving Percentage approach, in which it is not really suitable for long tasks. In fact, when used on its own, it might be even worse, as it's harder to tell if the bar went from 25% to 26% compared to the number actually changing. One million years ago, when we were children, we would work around this by setting the point of the cursor to the current location of a loading bar, so that, if a change happened in the meanwhile, we could see that the bar had moved a few pixels further along, which would reassure us that something was indeed happening.
To compensate for the issues presented by an Unmoving Percentage or by a Proper Loading Bar, long loading times might be aided by...
The Spinny Spinny
The Spinny Spinny is simply an animation of something that lets you know that the computer is still alive. Theoretically. Best uses of the Spinny Spinny are in conjuction with an Unmoving Percentage, so to correct the unmovingness, or with a Proper Loading Bar, in which case it can manifest itself as some kind of animation of the loading bar itself. It can be stripes moving through the filled portion of the bar, or some kind of "pulsing" animation.
Alone, however, the Spinny Spinny doesn't give you any estimate for how long it will take, or what is even happening. It could spin forever, because there's no end to the spinning. And as it's not directly correlated to meaningful things happening, your computer may have effectively frozen, but the Spinny continues spinning, to give you the illusion of something being achieved.
Rosy's computer sometimes has an issue where most peripherals stop working, including the keyboard, and, most tragically, the power button. You can still use the trackpad, with which you'll be tempted to try to restart. However, for some reason, this starts the restarting process but the computer never actually restarts. During the failing restart process, all the screen shows is Restarting... and the Spinny, which continues spinning until the battery finally dies hours later. * The Spinny would seem like an indication of something happening, but you can absolutely tell that this is not the case because there's no sound from the fans or the disk or anything, just the electrical hum of it being on. It's like the lights are on, but nobody is home. But the Spinny is still spinning happily, as if nothing was wrong.
* By the way, if anyone knows the solution to this problem, let us know. We've called the support a few times, in which we were told to press the power button to force restart... The problem is, since the issue affects peripherals and the keyboard, the power button also doesn't work. And then we're told to press a reset button that doesn't exist on this model, and finally to remove the battery. But this is a model where you have to unscrew the entire bottom to unplug it from the living guts of the computer, and understandably the support didn't want us to do that. So, instead, we had to wait the entire night for this brand new computer with so many hours of battery life to run out of juice just from the usage of the dark screen with a Spinny on it. If we could get to the root of the problem that causes the peripherals to stop working, that would be very appreciated.
However, there is some good to the Spinny Spinny. It simply cannot be used alone. The same cannot be said for...
The Bullshit Bar
Back in the good old days, a Proper Loading Bar would start empty, progressively fill from left to right, and then, once full, the loading would be complete, and the user could go on their merry way. This is how it should be. This is how the cosmos are supposed to be ordered.
Nowadays, however, we have these new Bullshit Bars which have no respect, and don't follow any Proper logical rules. When encountering a specimen of the Bullshit Bar, you may at first mistake it for one of its more useful ancestors, and think that the filling animation from left to right indicates progress of some kind. You are sorely mistaken. In the span of a few more seconds, you will notice the identifying mark of this noisome, invasive species: the fact that, after filling once from left to right, it will restart from left again, or possibly unfill from either direction. We've even seen specimens with a small filled quantity bouncing around within the borders of the bar and shrinking and growing from both sides, as if it was thumbing its nose at us.
This is bullshit! Who thought of this?
It's like a practical joke of a loading bar. It's like the prank cup which spills when tipped. It's like the floating faucet that never fills the bucket. And yet, somehow, this is not a one-time prank. Oh, no. Bullshit Bars are now far more common than Proper Loading Bars. This Bullshit is now the norm. This species has somehow killed off the useful loading bars of yore, and can now be found anywhere, displaying its uselessness in full animated glory. It's really the Spinny Spinny again, except even worse, for it pretends it's making progress from point A to point B, deceiving those who still remember when loading bars used to make sense. The Spinny Spinny at least honestly acknowledges that it's going in circles.
Nothing is worse than the Bullshit Bar. So far. Please don't take this as a challenge.
But, now that we have seen the worst, what about the best?
The Ideal Approach
Ideally, you should show a Proper Loading bar, in conjunction with an Unmoving Percentage to help clarify how far along we are in the process, and to make small progress more visible. This should also be in conjuction with a Spinny Spinny, which, when the moving from 25% to 26% becomes one hour long, at least lets you know that the screen hasn't frozen.
The real problem with all of these systems is that, sometimes, things don't go as expected, and the loading visualization does not usually account for that. If we had known that the progression from 25% to 26% would have taken one hour, and the rest less than that, we would have not panicked.
What would really solve this problem would be if the computer could let us know what is the list of tasks in question, and give us an honest estimate for how long each will take. In the past, we have seen this function fulfilled by this list being visible to the user as a sort of checklist, or as a stream of filenames flashing by, or as separate loading bars for each intermediate task. We suspect that the reason why this is no longer as common as it was in the past has to do with developers thinking that users will be scared by this much information, and hiding it all under a "friendly" Noncommittal Time Estimate. But, in actuality? We think it's much scarier to have the computer seemingly be stuck between 25% and 26% with a condescending message and a Spinny Spinny to sweeten the deal.
Giving the user meaningful information is important. There surely can be a middle ground between none and too much. And, to be honest, we have never encountered the case of too much. The only downside to too much information about software is that it can't give so much that it helps someone with malicious intent to hack the system, but there's a long way between "We've made some tweaks to make Windows even better" and that.
Another trend brought to light by the speciation of the loading visualization is that it's not necessary to reinvent the wheel all the time. The Spinny Spinny is just fine. You don't need your loading bar bouncing all over the place in Bullshit ways. It's not cute. It's just annoying.
And, by the way? We wrote all of this while waiting for the latest Windows 10 update.