Majority of tools, people have developed in the history, consists of two main parts, functional part of the tool and in general a handle. Typical example is a knife having a blade and a grip. The more complex is the tool from functionality point of view, the more sophisticated is the interactive interface for the system control.
Computer applications represent a very specific type of tool with usually very complicated functionality. This fact results in necessity of specific interface for system navigation. Hexadecimal code may be considered as one of the first interface followed by various programming languages for handling computers. Development of modern operating systems is a remarkable effort to make working with computers as comfortable as possible. Introducing windows philosophy and mouse was a first step to make the communication simple for humans rather than computers.
Research in the field of human natural communication has led to biometric systems which have an origin of human communication in real life. Typical modalities in the direction human-computer are voice navigation, gesture navigation, speaker identification, face recognition, body motion recognition etc. In the opposite direction, modalities like system of warning/agree/disagree sounds, speech synthesis for voice feedback, graphical avatar in form of various creatures or humanoid avatars for visual interaction and in recent years virtual reality (VR) and augmented reality (AR) are used to deliver information to the user. Lot of effort has been observed to develop and use such modalities, which follow human expectation on how we understand natural communication. All types of outputs which are natural to computers are not natural to humans and vice versa.
Developing the quality human-computer interface (HCI) is very often more complex problem, than the method in the application itself. Achieving natural user-friendly HCI, where user can communicate in a natural manner is not a final stage of HCI development. The next step is a system, which observes the user and his behaviour either as a short-term or better long-term activity. The so called recommendation engine is able to predict not only future behaviour of the user but his wish and actual needs and activate relevant functionalities/commands to satisfy the user. The computer shows the functions of artificial intelligence and it becomes not only a machine but a partner.