I was a programmer and I wrote lots of applications that showed the progress of long-running tasks with a progress bar that was reasonably accurate. It just took a little bit of extra work is all, plus knowledge of how to do it. Every time I put in a spinny thing instead (and incidentally it’s still possible to have the main task frozen while a little spinny thing on a separate thread happily spins away) it was because the managers and designers were too cheap and/or lazy to do it properly. Admittedly, adding a reasonably accurate time-remaining estimate is more complicated, but that’s also the part that is less important.
I was a programmer and I wrote lots of applications that showed the progress of long-running tasks with a progress bar that was reasonably accurate. It just took a little bit of extra work is all, plus knowledge of how to do it. Every time I put in a spinny thing instead (and incidentally it’s still possible to have the main task frozen while a little spinny thing on a separate thread happily spins away) it was because the managers and designers were too cheap and/or lazy to do it properly. Admittedly, adding a reasonably accurate time-remaining estimate is more complicated, but that’s also the part that is less important.