End-User Programming End-User
Total Page:16
File Type:pdf, Size:1020Kb
Empowering Users One of the key features of computers is InvitedInvited ResearchResearch Overview:Overview: programmability Perform the specific actions desired End-User Programming But only if know how Spreadsheets enable people to define their own computations Brad Myers, Andrew Ko, and Margaret Burnett Invented late 1970’s Human Computer School of Elec. Engr. One of the key reasons InteractionInteraction InstituteInstitute & & ComputerComputer ScienceScience personal computers became Carnegie Mellon Univ. Oregon State Univ. popular for business How to generalize to other areas? Copyright © 2006 – Brad A. Myers Copyright © 2006 - Brad A. Myers, CMU 2 Malleability is Key Today Definitions Hottest new thing on the web is end-user ““Program”Program” authoring ‘‘A‘‘A setset ofof statementsstatements thatthat cancan bebe submittedsubmitted asas aa unit to some computer system and used to Blogs direct the behavior of that system’’ Flickr – Oxford Dictionary of Computing MySpace ““Programming”Programming” Key is personalization ‘‘The‘‘The processprocess ofof transformingtransforming aa mentalmental planplan ofof desired actions for a computer into a End users shape the artifact representation that can be understood by the Raises expectations for the level of computer’’ – Jean-Michel Hoc and Anh Nguyen-Xuan personalization, customization generally Copyright © 2006 - Brad A. Myers, CMU 3 Copyright © 2006 - Brad A. Myers, CMU 4 Definitions, cont. Definitions, cont. ““ProfessionalProfessional ProgrammerProgrammer”” ““End-UserEnd-User ProgrammerProgrammer””(EUP) (EUP) Someone whose primary job function is to write People who write programs, but not as their or maintain software primary job function Typically have significant training in Instead, they must write programs in support of programming (e.g., BS in CS) achieving their main goal, which is something else ““NoviceNovice ProgrammerProgrammer”” Covers a wide range of programming expertise Someone who is learning to be a professional programmer Business executives and secretaries Physicists Copyright © 2006 - Brad A. Myers, CMU 5 Copyright © 2006 - Brad A. Myers, CMU 6 1 Examples of EUP Other Names Accounting (spreadsheets) Analysts using MatLab Also called “End User Development” (EUD) Creating a web page As in European Commission’s Recording Macros in Word Automating office tasks Business software (SAP programming) Some “Domain-Specificic Languages”Languages” (DSL) (DSL) “Programming” VCRs, Microwaves Often created for end-user programmers Scientific research Visual (Graphical) Programs Authoring educational software Sometimes created for EUP Creating email filters Musicians configuring synthesizers “Scripting” languages, “Macros” Mashups Rapid Application Development (RAD) EntertainmentCopyright (e.g., © 2006behaviors - Brad A. Myers, in CMU The Sims) 7 Copyright © 2006 - Brad A. Myers, CMU 8 How Many Today? Languages Being Used Number of Programmers, by Language Most people who United States, at Work, 2006 For the 12 millions self- write programs described programmers 4,000,000 3,500,000 100,000,000 todaytoday areare not 90,000,000 Caveats: 3,000,000 professional Probably outdated 2,500,000 75,000,000 programmers Doesn’t count the programmers 2,000,000 50,000,000 spreadsheet 1,500,000 50,000,000 programmers 50,000,000 1,000,000 (based(based onon datadata fromfrom USUS 1,000,000 Cobol SAP, etc. Bureau of Labor Statistics) 120,000 ..Net (C#) is rising 25,000,000 0 12,000,000 hi sic p alk 3,000,000 Java C++ 0 ual Ba Smallt Programmers Programmers Users Spreadsheets Professional Vis land's Del Described r and DBs and Bo Self- Copyright © 2006 - Brad A. Myers, CMU 9 Copyright © 2006 - Brad A. Myers, CMU 10 History Allen Newell and Stuart Card, 1985: Long History: “Millions for compilers but hardly a penny for Original HCI! understanding human programming language use. 1973 “Psychology of Programming” Now, programming languages are obviously “Software Psychology” symmetrical, the computer on one side, the programmer on the other. In an appropriate science Ben Shneiderman book, 1980 programmer on the other. In an appropriate science of computer languages, one would expect that half the “Empirical Studies of Programming” (ESP) effort would be on the computer side, understanding Workshops from 1986 through 1999 how to translate the languages into executable form, “Psychology of Programming” “Psychology of Programming” and half on the human side, understanding how to Psychology of Programming Interest Group (PPIG) design languages that are easy or productive to use.... thth design languages that are easy or productive to use.... fromfrom 19871987 andand PPIG’06PPIG’06 == 1818 workshop The human and computer parts of programming But mostly focused on novice or languageslanguages havehave developeddeveloped inin radicalradical asymmetry.”asymmetry.” professional Copyright © 2006 - Brad A. Myers, CMU 11 Copyright © 2006 - Brad A. Myers, CMU 12 2 Renewed Interest Recently Consequences of Lack of Attention Lots of errors attributed toto End-UserEnd-User ProgrammingProgramming of spreadsheets: Significant numbers of papers at Columbia Housing Authority admitted to overpaying by CHI, VL/HCC, ICSE, UIST and many $118,387 due to a spreadsheet data-entry error other conferences! (February(February 22,22, 2006)2006) New York Times, Oct 30th, 2003 - $1.2 Billion New book from Springer Spreadsheet Error at Fannie Mae Areas like End-User Software TransAlta Corp. took $24 million charge to earnings due toto cut-and-pastecut-and-paste errorerror inin anan ExcelExcel spreadsheetspreadsheet (June(June Engineering (EUSE) 3rd, 2003) End-users are and will program Auditor, major accounting firm: How to make their software more reliable? “...in“...in 66 yearsyears work,work, checkingchecking literallyliterally hundredshundreds ofof business-critical models, ... my team have never failedfailed EUSES – NSF funded consortium toto findfind errors.”errors.” 3 papers and a workshop at CHI’06 …. (many more!) This overview! See http://eusesconsortium.org/euperrors/ This overview!Copyright ☺ © 2006 - Brad A. Myers, CMU 13 Copyright © 2006 - Brad A. Myers, CMU 14 Consequences, 2 Why is Programming Difficult? Also, errors in: Web pages Some difficulty may be intrinsic to Email filtering rules programming From the WEUSE II workshop: Problem solving Clinical customization package used by medical personnel reports the need for better reuse and Precise specification of algorithms debugging support How much difficulty can be attributed to SysAdmins need better testabilitylity ofof databasedatabase andand otherother sorts of scripts usability problems? IssuesIssues withwith reusereuse ofof MATLABMATLAB applicationsapplications Programming languages are a kind of user Difficulty of learninglearning interfaceinterface Potentially millions of peoplele whowho trytry toto learnlearn HTML,HTML, Most language designs do not emphasize Flash, Visual Basic, Javascript, spreadsheets, etc., but give up because of one or two insurmountable errors usability Copyright © 2006 - Brad A. Myers, CMU 15 Copyright © 2006 - Brad A. Myers, CMU 16 Evidence That Difficult Hello World! End User Programming is still research goal class HelloWorldApp { Researchers have tried many approaches public static void main(String[] args) { Surveyed next System.out.println("Hello World!"); Many commercial attempts have moved } away from addressing end users } E.g., Visual Basic & Flash Increasing language complexity and features 3 kinds of parentheses and 9 special words! Compared to click and type: “Hello World” Copyright © 2006 - Brad A. Myers, CMU 17 Copyright © 2006 - Brad A. Myers, CMU 18 3 Goal: Gentle Slope Systems Outline WideWide Java WallsWalls Visual Basic NOTE: Not Comprehensive Director (v6) Empirical studies of programming HyperCard Novices, professionals, EUP Swing C Programming Approaches: C or C# Programming Difficulty Visual Programming of Programming by Example Use xCmds Simpler Textual Languages Lingo HyperTalk Better Environments Basic Goal LowLow Email Recent: Focus on Reliability ThresholdThreshold Filters HighHigh End-User Software Engineering (EUSE) Program Complexity and Sophistication CeilingCeiling End-User Software Engineering (EUSE) Copyright © 2006 - Brad A. Myers, CMU 19 Copyright © 2006 - Brad A. Myers, CMU 20 Empirical Studies of Programming Techniques for Studies Many observations and intuition based on teaching Studies of why programming difficult to learn Green & Petre’s “Cognitive Dimensions” [1996] Identified collections of issues with languages 13 criteria for evaluating programming systems Mostly relevant to EUP Mostly relevant to EUP E.g., “Viscosity” – how hard to change Survey: [Pane 1996] “Consistency”,“Consistency”, “Premature“Premature Commitment”,Commitment”, etc.etc. Low-cost analytical tool that cancan avertavert aa lotlot ofof problemsproblems at design time Very influential in a number of language/environment design efforts “Natural Programming” approach [Myers, Pane, Ko] See how people thinkthink about a task Design a tool to support thethe wayway theythey areare thinkingthinking Evaluate how well the tool works with user studies Copyright © 2006 - Brad A. Myers, CMU 21 Copyright © 2006 - Brad A. Myers, CMU 22 Empirical Studies of Programming, cont. Empirical Studies of Programmers, cont. Inappropriate formatting hinders reading (e.g., Many Syntax Problems observed highlighting