Hacker News new | past | comments | ask | show | jobs | submit login

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 N64 in turn took the start screen thing from the Super Famicom and Famicom before it.

I assume title screens are just that: title screens, and the developers want to show off. Maybe it's a legacy of arcade machines, though.


PC games never had a title screens, until the first bad console ports around 2003 came along.

Instead of a title screen, PC games used to go to the main menu directly.

Even today, some console games like GTA V don't have a title screen, but many smaller games feature a useless title screen.


My copy of Alley Cat from 1983 disagrees with you.


Tons of PC games have had title screens going way back. Ultima IV (1985) and Commander Keen (1990) spring to mind.


What about DOOM (1992)? That had a title screen of sorts.


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.


Wouldn't it be P1/2/3/4?


Only in the case of wired controllers.


>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.


It doesn't mean they have to be skippable, just that they can't drag on too long.


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.


aka save scumming


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.


No, it's about showing it long enough so you know what the dialog is and what it's doing.

If a dialog popped up for the brief amount of time it actually takes to unzip, it might freak out users: "huh? WTF was that??"


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 it's a minor security feature. Unzipping something in the background might be something they want to always call attention to.


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)


Then just don't show a dialog.


Then users wonder "Did it actually save?"


So just pop a click-anywhere "Saved!" notification.


Then users will keep clicking on save until that notification comes, when your save takes just a bit longer than usual.


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.


We were talking about unzipping. If successful, the unzipped contents appear next to the archive.


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.


That's highly unlikely. Archive Utility is just slow.


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.


If it's really old, shouldn't it be faster as it would've been designed to perform adequately on way slower CPUs? ;)


No? There are a dozen trivial reasons you can easily think of why that wouldn't be the case.


Newer means different. Older means different. Different CPU meet differently optimized code meet different cocoa framework. Narf!


It's highly unlikely that it's 1000 times slower than the command line utility to decompress, with which they share the same libs anyway...


It isn't because they don't do anywhere close to the same thing. Watch the video:

http://robservatory.com/postimages/unzipping/finder_v_termin...

Where do you think the people who wrote the thing that happens on the left inserted a gratuitous sleep?


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).


None of these are deliberate idling to give the impression of work which is what the original comment was about.


Huh? ALL of these are deliberate idle time (idle as in "not spend in actually decompressing) to give the impression of work ...


By that (deeply silly) logic, 'having a GUI' is 'deliberate idle time'.


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!


obviously when they show the notification for each completed unit?


What is highly unlikely about that? That seems more plausible than, zlib is magically 1000x slower when used by Archive Utility.


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.


Yes I've added delays in many web apps, even loader gifs to show fake hard work


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.


Don Norman talks about that example of intentional delays in some tax software here: https://vimeo.com/96714148 (approx 52:30).

It sounds like he and his team came up with the idea in that instance.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: