I wonder whether this is not an example of a UI interaction which is slow on purpose, to emphasize how much work the OS is doing for you.
TaxAct and TurboTax, for example, both operate on (in the typical case) kilobyte scale data requiring trivial math. They also make both saving the data and calculating taxes take 5+ wall-clock seconds when they actually require milliseconds and nanoseconds respectively. This is largely because (non-technical) users don't trust your computer did the math right if the answer comes back instantly. (I also suspect there is an element of "Wait if it is so easy to calculate my taxes why am I paying you to do that.")
This reminds me of how some PlayStation game's developers complained that they were required by Sony to add a false multi-second delay to their game's save routine, so the user would have enough time to read the mandatory warning not to turn off the console. Their game in fact saved so quickly there needn't be a warning at all.
This is really interesting. I read that warning every time I save and I never noticed the delay. For some reason, it doesn't bother me like the archive utility animations. I guess it's because saving the game is a such ritualized action.
I wonder what other requirements Sony imposed on developers. Maybe they have their own video game-oriented human interface guidelines. Do you have a source for this information? I found plenty of technical documents and SDKs but nothing about interfaces.
Kind of related, the reason there's a "Press A to play game" on xbox (and a lot of PC ports) is because Microsoft requires a button press every x seconds, and if the game takes too long to load before the menu appears, pressing A will circumvent that requirement.
N64 had press Start to start, years before XBox was even a thing.
And yes, many/most PC ports are of very low quality. Gone are the days of PC-first Triple-A games with forgotten features like Quick-save/load, LAN-multiplayer, Map-editor, official Mod-support. These days, these ports feel like they started porting two months before release, done by two coders. All these console-ish things like messages "don't turn off your system" (yah-right), press a key to start (yup), save-points (wtf), always-on single player (...)
The other reason behind "Press A to play" is that a console can have several controllers associated with it. Pressing a button at the title lets the game know which controller the user is holding.
>Microsoft requires a button press every x seconds
What is the rationale behind such a requirement?
>if the game takes too long to load before the menu appears, pressing A will circumvent that requirement.
Does this mean those screens/videos that get displayed after the game starts and before the menu appears are required by Microsoft to be skippable?
If that's the case then it's good UX design in my opinion. I think those things are an unacceptable waste of player's time; I hate them so much I rename the files in the game's directory so it will fail to show them.
Presumably so they can see how long it takes to handle input events, because that's a good proxy for whether the application is responsive or not. What they don't want is the game freezing. But that's harder to measure directly.
Can only speak for PlayStation 2 games (I also worked on PS3 and XBox 360 but didn't handle that part). Sony's Technical Requirements were a pain. We had to build a freaking complicated State machine to handle all save scenarios (PS2 still used those external things to save games, you had to handle the user taking it out midsave, put back, etc). We had a game rejected for having a SINGLE space between PlayStation and that registered trademark symbol.
I'm never actually sure if I actually saved in the PC port of Valkyria Chronicles. I think we've been trained to wait a while to save since the 8 bit consoles so something feels a bit wrong when things instantly save. Undertale makes amazing use of this, though.
There was a time, when F5 key for Quick-save was common in PC games.
Together with Quick-load, it worked very fast, no need for info-screens, it just worked in milli-seconds and allowed gameplay styles completely forgotten or newer experienced by console gamers who are keen to their save-point system.
Baldur's Gate best feature. Allows you to test all variations of the game, every encounter, so much potential, so much possibilty you could just explore, rewind, explore, rewind.
One of the best, and most under-utilised features of Half-Life, to name one of many. Made clearing a room an entertaining exercise in how few crowbars/bullets/rockets can you use...
quicksave/quickload encourages bad game design. Look at games with save anywhere abilities that include elements of chance like Skyrim and Fallout. So you are able to pickpocket and use charm in these games but because you can save anywhere does anyone ever live with the chance these things fail?
Of course not they just try>reload>try>reload>try>succeed. Making that whole skill set pointless and the mechanic pointless
not offering quick-save is bad game design. a game should be about fun. nowadays it's often more about work (boring grinding gameplay, save-points were you have to play the same passage several times again... oh what great game design - not). with current gen-consoles there is no single technical reason not offer quick-save & load. and for driving games, the quick-playback feature introduced by Codemaster in GRID should nowadays be common, but sadly is not.
No kidding. In one of my previous companies we explicitly added a delay in our financial webapp. We saw a significant improvement in bounce rate after that.
Hahaha, I remember coding some physics problem solvers in Visual Basic back in high school, and I added a "calculating" progress bar and messed with the timing a lot to make it still pleasant to use but seem like it was really crunching through your problem. "Crunching" is even funny and a throwback to the days of spinning rust + lots of random seeks.
I've been asked to blank out a screen in a single page web application and re-render after 250ms when people switch 'folders'. My boss thought it was a familiar user interface pattern to draw attention to the page content. This is... not the silliest thing I have done professionally.
The Finder already handles this differently for file copy operations - you don't get a file copy progress dialog if it takes less time than you need to react (just an audio confirmation). It seems like Archive Utility didn't get that extra attention though.
Maybe a new type of dialog could help? Rather than showing this blinking things, just show a notification of style "24 archives extracted" (kind of like what forklift does)
By hypothesis (see https://news.ycombinator.com/item?id=13135385), the operation is effectively instant. If it weren't, a UI on its own thread could notice that and act accordingly.
I have been made to do this, I called the function wasteMyTime() and all it did was waste the user's time for a few seconds with a spinner. Still a little bitter about it.
I think you're probably right. I'd imagine that most of the code in Archive Utility.app is very old, and there's very little business reason to spend any engineering time on improving it beyond doing just enough work to make sure it works with API changes for later OS releases.
There are third party GUI compression utilities that are faster that you'd find if you actually care about how long it takes to decompress your archives, and the CLI utilities are all there out of the box for people who don't need a GUI.
For each file, a split second to animate the apparition of the window (or the increase of the existing window), another split second to show the empty progress bar, a millisecond to fork the decompression process, a couple of frames at 60 Hz to animate it being filled, and another split second to animate the disappearance of the window (or the decrease of the existing window).
No. You'll notice that your browser doesn't sequentially wait for each character to show up on the screen before rendering the next character.
The obvious thing to have done would be to have a single progress bar for all decompression operations requested in a single UI action. Darwin has had a process scheduler for some time now; they can be expected to make good use of it.
It is infuriating to be waiting for animations to end for literally 12 seconds.
Again, this has absolutely nothing to do with the original and inaccurate idea that Archive Utility waits around doing nothing on purpose to give you the impression it's doing something while it's doing nothing. It just means AU is implemented in a way that is slow and inefficient. Which is what I said so hey, we agree!
What seems more likely to me is that the "decompressing a large number of small archives" task is so rare that Apple hasn't optimised it. More likely than "Apple added an arbitrary delay to make the interface more satisfying."
It's unlikely it's on purpose. It makes sense in something like tax software you use once a year. It makes no sense at all when doing a bunch of i/o bound operations which are already potentially slow.
I don't think that's the reason. It's more of an edge case due to some minimum animation timing.
If you were expanding 24x 100MB, or 1GB files, the overhead of animation would be much smaller relative to the total time. And it would be quite an informative GUI showing the progress of each file. While the command line version may sit there for a long time before returning to prompt.
Mercifully, in those tax applications you can often just click the "Next Step" button to skip the useless "loading bars". I laughed out loud when I discovered this.
TaxAct and TurboTax, for example, both operate on (in the typical case) kilobyte scale data requiring trivial math. They also make both saving the data and calculating taxes take 5+ wall-clock seconds when they actually require milliseconds and nanoseconds respectively. This is largely because (non-technical) users don't trust your computer did the math right if the answer comes back instantly. (I also suspect there is an element of "Wait if it is so easy to calculate my taxes why am I paying you to do that.")