A mouse is a wonderful device to make an interface easy to use for beginners because it enables the user to select or manipulate visual objects. But a mouse has severe disadvantages when it comes to ergonomics. Many people get stress and strain injuries when they have to make precise movements with the mouse. The problems get worse if a ball-mouse gets dirty or an optical mouse is used on a too homogeneous surface so that it reacts less reliably.
However, some pointer devices may use accelerometers to track their movements. They are much more resistant against external conditions, but usually offer less precision.
Double-clicking is particularly a problem because many systems don't accept even the slightest movement of the mouse between the two clicks. Making a fast movement in one direction (mouse button down and up twice) and avoiding even the slightest movement in another direction (horizontally) is a stressing task that puts extraordinary demands on your dexterity, and some people are simply unable to do it. All systems should be set up to accept a certain movement between the two clicks or, preferably, have an extra mouse button instead of the double-click.
A lot of alternative pointing devices have been suggested: joysticks, trackballs, pens, touch pads, touch screens, etc., but no perfect solution has so far been found.
The mouse cursor must respond to mouse movements with negligible delay. If there is a delay, and especially if the delay is unpredictable, then the user does not know where they are clicking. This can happen if the underlying code has lazy loading or lazy binding. It can also happen when a computer is controlled remotely over a network. It is usually impossible to obtain a sufficiently low and consistent delay when remote controlling a computer over a network. Therefore, systems that can be remote controlled must either have enough functionality at the client side to generate the mouse feedback, or it must use an interaction scheme with no mouse.
All systems should have shortcut keys for all common commands in order to enable users to use the keyboard rather than the mouse as much as possible. Using the keyboard is generally faster than using the mouse if the user can remember the commands. Ideally, all software should be operable without a mouse, with the possible exception of manipulating graphics.