Update: this was written before I ever touched an iPhone or iPad. These devices are major improvements over the desktop metaphor GUIs I complain about below.
When you grow up playing video games, like I did, the primitiveness of office software user interface design comes as a shock. The desktop metaphor was a brilliant stroke back in 1970 when they thought it up at Xerox PARC, but I feel like it has outlived its usefulness.
User interfaces are the first and most immediate form of computer instruction, and for many people the only instruction they ever receive. Not every interface designer teaches their own products equally well. The problems mostly emerge from designers’ presuming implicit knowledge from the user that might not really be there. There are plenty of computer science concepts that are common knowledge to programmers and engineers, but that are esoteric or totally opaque to the population at large. For example, the general public uses the terms memory and storage interchangeably, even though they refer to different computer components that function in very different ways. Most normal people don’t have mental models of a computer program’s inner workings, and rely entirely on the interface to provide the model.