Optimization and making responsive human-computer user interfaces?

A few words about responsiveness. I admit that one can't cast magic on programs. If an elementary task needs a certain amount of memory and time to complete, you can't do unlimited optimization on it. However, sometimes the big picture - the architecture - can use some rework for huge benefits. You don't always need to complete the whole task at once or the precise task at first. Sometimes more appropriate algorithms or data structures can be chosen, or solutions can be specialized for a given task. Sometimes you could complement your implementation with a few common special cases with superior runtime. One could also apply additional refactorings to reveal other design defects.

The last, but most important aspect is the user interface. The reaction time that is considered instant by humans for practical purposes is in the range of 100-300ms. Every human action must be followed by a user friendly response of the computer in the reaction time. This is a simple rule to keep in mind. A smart window manager could solve part of this issue. However, most if not all systems still fail this very axiom in 2008. Most current distributions can not offer this feature on any common hardware configuration. And just imagine how they run on hardware from many years ago! Furthermore, an application window may only steal the input focus in direct response to a user action. Popup dialogs of errors and warnings must appear on a separate notification area without focus in my opinion.

By the way, I never liked double-clicking the mouse!

Comments

Popular posts from this blog

Tftp secret of TL-WR740N uncovered

Hidden TFTP of TP-Link routers

Haskell for embedded: C output, compilers, monads, Timber