Writing responsive user interfaces
A user’s first contact with any program is always the user interface. A good user interface can make or break a program. Leaving the user interface design aside (as I am not qualified to speak about that), I will focus on just one fact. Users hate user interfaces that are not responsive.
In other words, every good user interface must react quickly to a user’s input, be that a keyboard, mouse, touchpad, or anything else.
What are the tasks that can make a user interface unresponsive? Basically, they all fall into one of two categories, as follows:
- A program is running a slow piece of code. While it is running, the user interface is not responding.
- Updating the user interface itself takes a long time.
The problems from the first category fall into two subsets—functions that have nonblocking (asynchronous) alternatives and functions that don’t.
Sometimes we can replace the slow function with another...