A user's first contact with any program is always the user interface. A good UI 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:
- A program is running a slow piece of code. While it is running, the UI 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 non-blocking (asynchronous) alternative and functions that don't.
Sometimes we can...