ruby r u interfaces by b y - cs.cmu.edubam/chi-award-talk/myerschi-awardtalk2017.pdf · natural...

83
RUBY: Reminiscing about User interfaces by Brad over the Years Brad A. Myers Human-Computer Interaction Institute School of Computer Science Carnegie Mellon University http://www.cs.cmu.edu/~bam [email protected] 1 © 2017 – Brad A. Myers

Upload: others

Post on 25-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

RUBY: Reminiscing about User interfaces by Brad over the Years

Brad A. MyersHuman-Computer Interaction InstituteSchool of Computer ScienceCarnegie Mellon Universityhttp://www.cs.cmu.edu/[email protected]

1© 2017 – Brad A. Myers

Page 2: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

40th Anniversary!

RUBYReminiscing about User interfaces by Brad over the Years

Page 3: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

© 2017 – Brad A. Myers

3

Page 4: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

35 CHI conferences: 1982 - 2017

© 2017 – Brad A. Myers

4

Page 5: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Lots of Badges

© 2017 – Brad A. Myers

5

Page 6: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

35 CHI conferences: 1982 - 2017

© 2017 – Brad A. Myers

6

Page 7: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Conference ribbons

1990

(Thanks to Ben Shneidermanfor the picture)

© 2017 – Brad A. Myers

7

Page 8: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Baby me

© 2017 – Brad A. Myers

8

Page 9: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Brad with Hair

© 2017 – Brad A. Myers

9

Page 10: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Nerdy me

© 2017 – Brad A. Myers

10

Page 11: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

~1974 - Teletype

© 2017 – Brad A. Myers

11By Jamie ‐ Flickr: Telex machine TTY, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=19282428

Page 12: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

MIT

© 2017 – Brad A. Myers

12

Page 13: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Observations

© 2017 – Brad A. Myers

13

• Brad is really old…

• If you don’t keep stuff, youwon’t have it 40 years later!

Page 14: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Spatial Data Management System (SDMS)

• ~ 1977• MIT Architecture

Machine Group• Predecessor of

MIT Media Lab

• Undergraduateresearch

© 2017 – Brad A. Myers

14Christopher F. Herot, Richard Carling, Mark Friedell, and David Kramlich. 1980. A prototype Spatial Data Management System. In Proceedings of the 7th annual conference on Computer graphics and interactive techniques (SIGGRAPH '80). ACM, New York, NY, USA, 63‐70. DOI=http://dx.doi.org/10.1145/800250.807470

Page 15: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Xerox PARC

• Importantresearch lab

• Summer intern

© 2017 – Brad A. Myers

15Picture credit: http://www.digibarn.com/collections/locations/xerox‐parc/

Page 16: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Smalltalk group at PARC

• Summer 1977• Systems Sciences Lab (SSL)• Alan Kay• Also: Dan Ingalls,

Adele Goldberg,Ted Kaehler,Bruce Horn, etc.

© 2017 – Brad A. Myers

16

Alan Kay

Page 17: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

XeroxAlto• 1979

© 2017 – Brad A. Myers

17

Page 18: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Computer Sciences Lab (CSL) at PARC

• Summer 1978• Summer & Fall 1979 – Master’s Thesis• Used the “Mesa” programming language• Advised by: Dan Swinehart (PARC) and

David Reed (MIT)• Helped by: John Warnock, Ed Satterthwaite,

Butler Lampson, Warren Teitelman, Bill Paxton and Paul Rovner

© 2017 – Brad A. Myers

18

Page 19: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

19

Incense

• Displays data structures similar to howthey might be drawn on a blackboard

• Customizable

© 2017 – Brad A. Myers

Page 20: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

SIGGRAPH’83

© 2017 – Brad A. Myers

20

Page 21: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Observations

© 2017 – Brad A. Myers

21

• It’s better not to write outand read a talk.

Page 22: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Three Rivers Computer Corporation

• 1980-1983• Pittsburgh, PA• PERQ

workstation

© 2017 – Brad A. Myers

22

Page 23: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

© 2017 – Brad A. Myers

23

Page 24: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Bernita

• 1982

© 2017 – Brad A. Myers

24

Page 25: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Bernita

• 1982• 35 years!

© 2017 – Brad A. Myers

25

Page 26: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Sapphire for PERQ

• 1983• SAPPHIRE

ScreenAllocationPackageProvidingHelpfulIcons andRectangularEnvironments

© 2017 – Brad A. Myers

26

Page 27: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

1983 - 1987

© 2017 – Brad A. Myers

27

Page 28: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Percent-Done Progress Indicators

• CHI’1985 paper

© 2017 – Brad A. Myers

28Static busy signals Progress indicators are better

Page 29: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Two-Handed Input[Buxton and Myers, CHI’1986]

© 2017 – Brad A. Myers

29

Page 30: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Taxonomy, 1986

• Programming byExample vs. withExample

• Visual Programming vs. Program Visualization

© 2017 – Brad A. Myers

30

Page 31: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Observations

© 2017 – Brad A. Myers

31

• A good taxonomy or survey can be a nice contribution

Page 32: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Peridot, 1986-87

• PERIDOTProgramming byExample forReal-timeInterfaceDesignObviatingTyping

© 2017 – Brad A. Myers

32

CC BY‐SA 3.0, https://commons.wikimedia.org/w/index.php?curid=996283

Page 33: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Peridot, 1986-87

© 2017 – Brad A. Myers

33

Page 34: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Observations

© 2017 – Brad A. Myers

34

• If you are first, then you can just show“it can be done”

• To show “better” requires different evidence• User study or measurements

• Showing it can be used by certain users• Depends on what you want to claim

Page 35: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Observations

© 2017 – Brad A. Myers

• Having kids while a graduate student can work out since you have more flexible time than when you are a professor.

Ryan Myers was born in Toronto, Canada inAugust, 1985

Peridot

Page 36: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

My Four Sons, 1993

© 2017 – Brad A. Myers

36

Page 37: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Family Today

• 2016

© 2017 – Brad A. Myers

37

Page 38: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Carnegie Mellon University, 1987…

• 30 years this summer!

© 2017 – Brad A. Myers

38

Page 39: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Garnet, 1988 - 1994

• GARNETGenerating anAmalgam ofReal-time,NovelEditors andToolkits

© 2017 – Brad A. Myers

39

Page 40: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Prototype-Instance Object System

• Any object can be the prototype for other objects

• Now used by JavaScript• Changes to prototype

propagate• Structural inheritance

© 2017 – Brad A. Myers

40

Page 41: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Constraints

• Values automatically computed based on dependencies

• Connect graphics• Showed useful for copying values

• “Data bindings”• Introduced “pointer variables” for

constraints• E.g., “same size as

whatever is selected”

© 2017 – Brad A. Myers

41

Page 42: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Retained Object Model

• “Display list” for graphics• Automatically handles

refresh• Like DOM for web pages

today

© 2017 – Brad A. Myers

42

Page 43: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

“Interactors” Input Model

• Parameterized objects for each kind of behavior

• Key behaviors used in GUIs• Independent of the graphics• Reusable for all interactions• Never need to write event

handlers• Concept used by

Adobe Flash Catalyst, etc.© 2017 – Brad A. Myers

43

Page 44: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Higher Level Tools in Garnet

LAPIDARYLisp-basedAssistant forPrototypingInterfaceDesignsAllowingRemarkableYield

© 2017 – Brad A. Myers

JADEJudgment-basedAutomaticDialogEditor

GILTGraphicalInterfaceLayoutTool

AGATEAGesture-recognizerAndTrainer byExample

MARQUISEMostlyAutomated,RemarkablyQuickUserInterfaceSoftwareEnvironment

Page 45: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

C32

• CHI’1991

© 2017 – Brad A. Myers

45

C32CMU's Clever and Compelling Contribution to Computer Science in CommonLisp which is Customizable and Characterized by a Complete Coverage of Code and Contains a Cornucopia of CreativeConstructs, because it Can Create Complex, Correct Constraints that are Constructed Clearly and Concretely, andCommunicated using Columns of Cells, that are Constantly Calculated so they Change Continuously, and Cancel Confusion.

Page 46: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Silk

• James LandayPhD, 1996

• SILKSketchingInterfacesLikeKrazy

© 2017 – Brad A. Myers

46

Page 47: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

3 Generations of CHI Academy

• Baecker, Buxton, Myers, Landay© 2017 – Brad A. Myers

47

Page 48: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Programming By DemonstrationTOURMALINEText-formattingOught toUse andRely onMacrostylesAndLayoutInferredNicely byExample

© 2017 – Brad A. Myers

GAMUTGamesAreMadeUsingThis

Page 49: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Programming By DemonstrationTOURMALINEText-formattingOught toUse andRely onMacrostylesAndLayoutInferredNicely byExample

© 2017 – Brad A. Myers

GOLDGraphs andOutputLaid-out byDemonstration

GAMUTGamesAreMadeUsingThis

Page 50: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

All the Widgets,CHI’1990

• Scroll Bars• Menus• Palettes• Command Buttons• Radio Buttons• Check Boxes• Text Selection• Basic Text Editing• Dialog Boxes• Selecting Graphics• Basic Editing of Graphics• Desktops• Window Manager

Commands© 2017 – Brad A. Myers

50

Page 51: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Amulet: 1994 – 1998

© 2017 – Brad A. Myers

51

• AMULETAutomaticManufacture ofUsable andLearnableEditors andToolkits

Page 52: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Command Objects

• TOPAZTranscriptsOfProgramsActivated withZeal

© 2017 – Brad A. Myers

52

Page 53: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Pebbles, 1998 -

• PEBBLESPDAs forEntry ofBothBytes andLocations fromExternalSources

© 2017 – Brad A. Myers

53

Page 54: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Pebbles Projects

© 2017 – Brad A. Myers

54

Page 55: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Pebbles Projects

• Command Post of the Future• Successful DARPA program• Expected to be about speech/gestures• Actual issues were mainly

situation awareness• Including connected mobile

devices

© 2017 – Brad A. Myers

55

Page 56: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Personal Universal Controller (PUC)

• Jeff Nichols PhD, 2006

© 2017 – Brad A. Myers

56

Specifications

Control

Feedback

Page 57: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Personal Universal Controller (PUC)

© 2017 – Brad A. Myers

570

200

400

600

800

1000

1200

1400

HP HP-PUC HP-Consistent

Canon Canon-PUC Canon-Consistent

Aver

age

Tim

e (s

ec)

Page 58: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

EdgeWrite

• Jake Wobbrock,PhD, 2006

© 2017 – Brad A. Myers

58

Page 59: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Sugilite

• Current PhD work of Toby Li• See our paper, Thurs, 11:30 - 12:50 in Room 203

• SUGILITE(come tothe talk tosee what itstands for!)

© 2017 – Brad A. Myers

59

Page 60: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Natural Programming, 1995-

• Make programming easierand more correct by making it more natural• Closer to the way that people think

about algorithms and solving their tasks

• Novice, expert, and“end-user”programmers

© 2017 – Brad A. Myers

60

90,000,000

55,000,000

13,000,0006,000,000 3,000,000

0

20,000,000

40,000,000

60,000,000

80,000,000

100,000,000

Users Spreadsheets andDBs

Self-DescribedProgrammers

Scientists &Engineers

ProfessionalProgrammers

[Scaffidi, Shaw and Myers 2005]

Page 61: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

HCI Study of Programmers

Copyright © 2012 – Brad A. Myers

1973 1980

Page 62: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Allen Newell and Stuart Card, 1985

• “Millions for compilers but hardly a penny for understanding human programming language use. Now, programming languages are obviously symmetrical, the computer on one side, the programmer on the other. In an appropriate science of computer languages, one would expect that half the effort would be on the computer side, understanding how to translate the languages into executable form, and half on the human side, understanding how to design languages that are easy or productive to use.... The human and computer parts of programming languages have developed in radical asymmetry.”

© 2017 – Brad A. Myers

62

Page 63: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Observations:

© 2017 – Brad A. Myers

63

• Intuitions of programmers about what would be helpful are often wrong

• Need to do studies of programmers

Page 64: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Program Complexity and Sophistication

Goal: Gentle Slope Systems

Difficultyof

Use

Goal

Flash

ActionScript

C Programming

Visual Basic

Basic

C or C# ProgrammingSwing

Java

LowThreshold

HighCeiling

64© 2013 – Brad A. Myers

Web Development

CSS & HTML

JavaScript

editor

Server-side

Page 65: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Making Programming Easier

© 2013 – Brad A. Myers

65

• Key focus of most of my research• Life-long pursuit

Page 66: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

HANDS

• John Pane, PhD 2002• HANDS

Human-CenteredAdvances forNoviceDevelopment ofSoftware

© 2017 – Brad A. Myers

66

Page 67: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Lapis

• Rob Miller, PhD 2002• LAPIS

LightweightArchitecture forProcessingInformationStructure

© 2017 – Brad A. Myers

67

By Hannes Grobe ‐ Own work, CC BY‐SA 2.5, https://commons.wikimedia.org/w/index.php?curid=3415430

• Informal parsingand reuse of semi-structured text databases

• Simultaneous editing• Outlier

finding

Page 68: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Whyline

• Andy Ko, PhD, 2008• WHYLINE

Workspace thatHelpsYouLinkInstructions toNumbers andEvents

© 2017 – Brad A. Myers

68

• Causes of software defects• Understanding software

maintenance tasks• Working sets when

programming• Navigation takes 35% of the

time

Page 69: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Whyline

© 2017 – Brad A. Myers

69

Page 70: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Crystal

• Ask “why” for everything else!• CRYSTAL

ClarificationsRegardingYourSoftware using aToolkit,Architecture andLanguage

© 2017 – Brad A. Myers

70

Page 71: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Understanding Unfamiliar Code

• Thomas LaToza, PhD 2012• Hard to answer questions about code:

• Control flow = “reachability”• 100s of others

• “Reacher” visualizes exactlythe paths of interest

© 2017 – Brad A. Myers

71

Page 72: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Backtracking During Editing

• YoungSeok Yoon, PhD 2015• AZURITE

AddingZest toUndoing andRestoringImprovesTextualExploration

© 2017 – Brad A. Myers

72

Page 73: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Observations

© 2017 – Brad A. Myers

73

• Viewing the code is central!• Visualizations of code are mostly useful as

navigation aides

• Search is useful across many dimensions, e.g.:• Search along control flow• Search backwards in time

Page 74: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

API Usability

• Jeff Stylos, PhD 2009• Application Programming Interface

• Libraries, frameworks, SDKs, …• Now: web services, middleware, …• User interface between programmer and functionality

in code• Patterns that decrease usability• New documentation tools to compensate© 2017 – Brad A. Myers

74

Page 75: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

API Usability ToolsMICAMakesInterfacesClear andAccessible

© 2017 – Brad A. Myers

APATITEAssociativePerusing ofAPIsThatIdentifiesTargetsEasily

CALCITEConstructionAndLanguageCompletionIntegratedThroughoutEclipse

JADEITEJavaAPIDocumentation withExtraInformationTacked-on forEmphasis

EUKLASEclipseUsers’KeystrokesLessened byAttachingSamplesGRAPHITE

GRAphicalPalettesHelpInstantiateTypes in theEditor

DACITEDesignAnnotations forComplementingInterfacesTargetingEffectiveness

Page 76: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Glacier and Obsidian

• GLACIERGreatLanguagesAllowClassImmutabilityEasily andReadily

© 2017 – Brad A. Myers

76

• OBSIDIANObject-orientedBlockchainStateInteraction andDevelopmentImplementationAndNotation

• Michael Coblenz’s PhD work• Key Goal: Design more usable

programming languages• Glacier:

• Immutability – declare that instances cannot change after constructed

• Obsidian:• Easier blockchain programming

Page 77: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

InterState

• Stephen Oney, PhD 2015

© 2017 – Brad A. Myers

77

Page 78: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Gneiss

• Kerry Chang, PhD 2016• GNEISS

GatheringNovelEnd-UserInternetServices usingSpreadsheets

© 2017 – Brad A. Myers

78

Page 79: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Variolite

• Current PhD work of Mary Beth Kery• See our paper, Tuesday, 9:30 - 10:50 in Room 111/113

• VARIOLITE(come tothe talk tosee what itstands for!)

• Exploratory Programming© 2017 – Brad A. Myers

79

Page 80: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Observations

© 2017 – Brad A. Myers

80

• Always make a video – demos will stop working

• Having a group culture, fun "signature", e.g. for acronyms and gemstones, ribbons

• One good idea makes attending a conference or reading an article worthwhile

Page 81: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Thanks!

• Funding from Xerox PARC, UofT Fellowship, DARPA, NSF, NIH, Microsoft, SAP, Google, Adobe, IBM, Apple, and many others

• My wife and family• My mentors, colleagues, and especially the

hundreds of students• Bachelors, Masters, and PhD at CMU

© 2017 – Brad A. Myers

81

Page 82: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

Advisee tree

© 2017 – Brad A. Myers

82

Thanks to: Fred Hohman (gen. 5),Robert Pienta (gen. 5), andPolo Chau (gen. 4) for animationand ribbon design

See: http://tinyurl.com/myersadviseetree

Generation Count1 Me2 163 614 715 226 2

TOTAL 172

Page 83: RUBY R U interfaces by B Y - cs.cmu.edubam/CHI-award-talk/MyersCHI-AwardTalk2017.pdf · Natural Programming, 1995-• Make programming easier and more correct by making it more natural

RUBY: Reminiscing about User interfaces by Brad over the Years

Brad A. MyersFor More information:• Brad’s home page: bradamyers.com• Brad’s 66 acronyms: http://www.cs.cmu.edu/~bam/acronyms.html• Brad’s 172 advisees tree: http://tinyurl.com/myersadviseetree83© 2017 – Brad A. Myers