User interface design is a task that revolves primarily around two very different poles.
On one pole, we have expected behaviors that human beings have lived with for millions of years, this includes things like light and shadow, gravity, distance, and texture. On the other pole, we have the vast technical capabilities of our technology, enabled by things like ultra-fast processors, wide-reaching networks, and programmable interfaces. Where vast computational potential and ingrained interactive principles meet, that is where user interfaces live.
Within this design community there is a debate on how far we should reach back to the real world. There are many that say we should do our best to not mimic the real world at all, while others are looking at the real world for inspiration in their user interfaces. As designers, we have to acknowledge the fact that the computer represents an opportunity to completely break from the physical world. We must also, however, recognize that human beings have expectations, and we sometimes use those to our advantage. For example, if a surface looks touchable, we will assume that we can indeed “touch” it.
A lot of this debate comes down to training as well. There are now generations of people growing up around computers from day one, so the idea of a “window” or a “close button” is not only normal, but completely natural. As with most things, the solution is about compromise, where we rely on what is expected, but continue to push for more immersive and abstracted experiences in order to harness the power that lies before us.