From iA wiki
A user interface is needed to ensure computer programming provides good interaction between the user and the information or data that is being created, processed, stored, by both the hardware and software.
As programming has progressed the average computer user's expectation increases. A good user interface should consider the following human factors;
- time that it takes for the average user to learn commands for the required tasks
- length of time it takes to complete tasks
- user error
- favourability, is the interface enjoyable to use
- does it help process information, retain knowledge again and again.
- Command Line Interface (CLI) - also called textmode or the console
- Graphical User Interface (GUI)
- Operating System