A user interface is the way in which some system interacts with a user. Exactly how will depend on i) the hardware which is available to pass information to the user (printing terminal, video terminal, bit-mapped display), ii) the function of the software in question (application, text editor, command processor, etc), and iii) the intended target user type (programmer, end-user, etc).
Each new generation of hardware produced a new generation of user interfaces; e.g. editors for printing terminals changed completely when video terminals became avilable, spawning screen editors; these in term were replaced with WYSIWYG editors when bit-mapped displays became widely available. Similarly, new hardware often enabled a new generation of applications (e.g. spread-sheets, image editors, etc).