the history of interaction
play

The History of Interaction Batch Interfaces Command-Line - PowerPoint PPT Presentation

The History of Interaction Batch Interfaces Command-Line Interfaces Graphical User Interfaces 2 History 2 The History of Interaction The history of interaction is the history of making the input and output languages of


  1. The History of Interaction • Batch Interfaces • Command-Line Interfaces • Graphical User Interfaces

  2. 2 History 2

  3. The History of Interaction…  The history of interaction is the history of making the input and output languages of the machine closer to the input and output language of the user and their tasks  Interaction has evolved from forms that favoured the machine (when its time was more valuable) to those that favour the user 3

  4. Earliest “Computers”  Human computers (up to 1940s)  Babbage’s Analytical Engine (designed mid 1800s) 4

  5. Batch Interface (1945-1965)  Interaction style - Set of instructions prepared a priori, fed to computer via punch cards, paper tape, magnetic tape - Response typically received via paper printout - No real interaction possible as system executes instructions - Responses received in hours, days  Users - Only used by highly trained individuals 5

  6. Dials, Knobs, Lights and punch cards (1940s) Howard Aiken, IBM ASCC / Harvard Mark I 6

  7. Computing in the 1960s 7

  8. Conversational Interface (1965 – 1985+)  Interaction style - User issues a command, waits for response - Feedback can be given during execution - Commands need to be learned - Commands are hard to discover  Users trained experts 8

  9. Conversational (Command-Line) Interfaces  Program is invoked from a shell, and all I/O is handled via text.  Highly flexible - Many combinations of options can be supplied - Programs can be interactive, and gather user input while running. [Name of the program] – options to be passed to the program e.g. ls – al // list all files, long format df – h // display disk space, human-readable format top – U javery // display process info for user=javery In the original Unix tradition, command-line options are single letters preceded by a single hyphen…The original Unix style evolved on slow ASR -33 teletypes that made terseness a virtue; thus the single-letter options. -- Eric Steven Raymond, The Art of Unix Programming 9

  10. Using Command-Line Interfaces  How do you know which command-line parameters exist? man <command name> <command name> --help  Effort required to figure out how the program works, what parameters are valid etc.  Using the interface typically requires memorization of commands.  Command-line interfaces are not explorable . 10

  11. What are the disadvantages of a Command-Line Interface (CLI)?  Command-line (conversational) interfaces can be highly efficient for trained users BUT at the cost of (a) being difficult to learn to use and (b) being almost completely non-explorable.  Disadvantages - Biased towards expert users. Intimidating for non-expert use. - Requires recall of commands rather than recognition of capabilities - I/O is in system language, not task language - System in control: user cannot refine execution / make modifications during program execution (i.e. you can let a process execute, or cancel it). 11

  12. Interactive Applications  How do we reduce the need to memorize commands? - Reduce available options - Prompt the user (e.g. MENU below, choose 1-6). 14

  13. Interactive Applications  Make it explorable and graphical.  Possible to provide graphical appearance to a text-based application, but lacks features to make it explorable.  Relies on the shell to manage the window size and appearance.  Essentially, still limited interaction, although closer to a “modern GUI”. Midnight Commander https://en.wikipedia.org/wiki/Midnight_Commander 15

  14. Xerox Star Information System (~1981)  First commercial computer with GUI - windows, icons, folders, mouse, (and Ethernet, file/print servers, email) - based on Xerox Alto research ~1974 - introduced “desktop” metaphor 16

  15. Apple Macintosh (1984) Apple’s Macintosh brings the GUI to the masses 17

  16. Computing in the 1980s Explosion of personal computing, and mass-adoption of GUIs. Introduction 18

  17. Apple Macintosh: 1984 Windows 1.0: 1985 Commodore Amiga (1985) Windows 95: 1995 19

  18. Graphical User Interfaces • Benefits • Windowing System • Window Manager • Direct Manipulation

  19. Graphical User Interface (GUI) The “minimum” definition is: Hardware • High resolution, high refresh graphics • Keyboard e.g. mechanical, touchscreen • Pointing device e.g. mouse, touchpad Capabilities • Display graphics, animation and text • Point-and-click interaction • Manage text entry 22

  20. Graphical Interaction in a window system WIMP (Windows, Icons, Menus, Pointers) is the most common instantiation of a Graphical User Interface. It’s usually associated with “desktop” interfaces and often includes a Desktop or Background to hold icons and files. WIMP + Desktop In addition to standard GUI capabilities:  Each application is isolated within its own window(s).  System has methods to move, resize, re-order, re-draw windows.  System supports common presentation of applications/elements. - Provide common GUI elements for building apps (e.g. buttons). - Emphasizes recognition of interface features over recall of commands. 23

  21. Benefits of GUI Windows Windows are independent of one another; they don’t need to know where they’re located on the screen, or what other apps are running.  Multiple application windows can be placed side-by-side to facilitate viewing and manipulating data from multiple sources.  Applications are isolated from one another - Each has its own memory, resources. - Input and output can be directed to a specific windows. - Application isolation, where apps do not not know what other applications are running (benefits system security, resource allocation etc.) 24

  22. Windowing System (WS) A windowing system is a software layer that provides these services - “low - level” input, output and window management capabilities – to the operating system. Window Browse Game Manager r Windowing System Hardware (Abstraction Layer) 25

  23. Example: X Windows as a Windowing System  Developed in 1984 at MIT, extended by a consortium (HP, Sun)  XWindows (X11) is the Unix standard Windowing System - Provides “low - level” input, output and window management capabilities to the underlying operating system. - Separate layer from operating system  Essentially a protocol to manage input, output/graphics, windows  Modern alternatives for Linux include Wayland, Metisse 26

  24. Windowing System Functions A Windowing System provides the following functionality: Provides OS -level routines for creating, destroying, and 1. managing application windows. This includes overlapping windows, tiling windows etc. Routes mouse and keyboard input to the correct window. 2. Typically the window that “has focus” receives input. Manages access to underlying graphics hardware. Prevent 3. simultaneous writes to the frame buffer (or video memory). Window Browser Game Manager Windowing System Hardware (Abstraction Layer) 27

  25. Canvas Abstraction WS controls access to window contents using a “drawing canvas abstraction”  The application is shielded from details of frame buffer, visibility of window, and all other application windows.  Each window represents a “canvas” or drawing area for the application.  Each window is independent and has no-knowledge of other windows  Each window has its own coordinate system - WS transforms between global (screen) and local (window) (o, o) coordinate systems +x (o, o) +x - A window doesn’t worry +y +y where it is on screen; program assumes its top-left is (0,0)  WS provides access to graphics routines for drawing 28

  26. Window Manager (WM)  Provides conceptually different functionality - Can be layered on top of Window System - Manages the placement, size and position of each window - Provides interactive components (close button, resize handle) - Controls the “look and feel” of each window  While the application ”owns” the contents of the window, the Windows Manager and Windowing System together “own” the application window. Window Browse Game Manager r Windowing System Hardware (Abstraction Layer) 29

  27. Roles in Managing the Window  Window vs. Canvas - the Windowing System creates the window - the Window Manager manages interaction with the window, including placement, resizing, and adding visual elements (min/max/restore controls, and titlebar) - the application manages the contents of the canvas owned by window manager owned by application 30

  28. X Window Managers  The window manager defines the look-and-feel of the application (e.g. colors, border width, font used).  Commercial examples: motif Gnome motif 31 xfce

  29. Why Separate Window Manager from WS?  Enables alternative “look and feels” for windowing system (i.e. “Desktops” like Unity, GNOME, KDE, Xfce …)  Enables different windowing paradigms (i.e. Xmonad for tiled windows)  macOS and Windows don’t expose a Window Manager (why?) 32

Recommend


More recommend