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

the history of interaction
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

The History of Interaction

  • Batch Interfaces
  • Command-Line Interfaces
  • Graphical User Interfaces
slide-2
SLIDE 2

2 History

2

slide-3
SLIDE 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

slide-4
SLIDE 4

Earliest “Computers”

  • Human computers (up to 1940s)
  • Babbage’s Analytical Engine (designed mid 1800s)

4

slide-5
SLIDE 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

slide-6
SLIDE 6

Dials, Knobs, Lights and punch cards (1940s)

Howard Aiken, IBM ASCC / Harvard Mark I

6

slide-7
SLIDE 7

Computing in the 1960s

7

slide-8
SLIDE 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

slide-9
SLIDE 9

Conversational (Command-Line) Interfaces

9

  • 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
slide-10
SLIDE 10

Using Command-Line Interfaces

10

  • 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.

slide-11
SLIDE 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

slide-12
SLIDE 12

Interactive Applications

14

  • How do we reduce the need to memorize commands?
  • Reduce available options
  • Prompt the user (e.g. MENU below, choose 1-6).
slide-13
SLIDE 13

Interactive Applications

15

  • 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

slide-14
SLIDE 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

slide-15
SLIDE 15

Apple Macintosh (1984)

Apple’s Macintosh brings the GUI to the masses

17

slide-16
SLIDE 16

Introduction

Computing in the 1980s

18

Explosion of personal computing, and mass-adoption of GUIs.

slide-17
SLIDE 17

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

19

slide-18
SLIDE 18

Graphical User Interfaces

  • Benefits
  • Windowing System
  • Window Manager
  • Direct Manipulation
slide-19
SLIDE 19

22

The “minimum” definition is: Hardware

  • High resolution, high refresh graphics
  • Keyboard e.g. mechanical, touchscreen
  • Pointing device e.g. mouse, touchpad

Graphical User Interface (GUI)

Capabilities

  • Display graphics, animation and text
  • Point-and-click interaction
  • Manage text entry
slide-20
SLIDE 20

Graphical Interaction in a window system

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

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

slide-21
SLIDE 21

Benefits of GUI Windows

24

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.)

slide-22
SLIDE 22

Windowing System (WS)

25

A windowing system is a software layer that provides these services - “low- level” input, output and window management capabilities – to the

  • perating system.

Hardware (Abstraction Layer) Windowing System Browse r Game Window Manager

slide-23
SLIDE 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

slide-24
SLIDE 24

Windowing System Functions

27

A Windowing System provides the following functionality:

1.

Provides OS -level routines for creating, destroying, and managing application windows. This includes overlapping windows, tiling windows etc.

2.

Routes mouse and keyboard input to the correct window. Typically the window that “has focus” receives input.

3.

Manages access to underlying graphics hardware. Prevent simultaneous writes to the frame buffer (or video memory).

Hardware (Abstraction Layer) Windowing System Browser Game Window Manager

slide-25
SLIDE 25

(o, o) +x +y (o, o) +x +y

Canvas Abstraction

28

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) coordinate systems

  • A window doesn’t worry

where it is on screen; program assumes its top-left is (0,0)

  • WS provides access to graphics

routines for drawing

slide-26
SLIDE 26

Window Manager (WM)

29

  • 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.

Hardware (Abstraction Layer) Windowing System Browse r Game Window Manager

slide-27
SLIDE 27

Roles in Managing the Window

30

  • 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
  • wned by

application

  • wned by window

manager

slide-28
SLIDE 28

X Window Managers

31

  • The window manager defines the look-and-feel of the

application (e.g. colors, border width, font used).

  • Commercial examples: motif

motif xfce Gnome

slide-29
SLIDE 29

Why Separate Window Manager from WS?

32

  • 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?)