Tomáš Petříček, 204 (2nd floor)
petricek@d3s.mff.cuni.cz
https://tomasp.net | @tomaspetricek
Lectures: Tuesday 12:20, S6
https://d3s.mff.cuni.cz/teaching/nprg075
Are programming languages user interfaces?
The means by which the user and a computer system interact (...)
Shifts focus on users
and interaction
Equipment interaction incidents by trained users in World War II
Design equipment
to minimize potential for problems
Lab testing and experimental psychology
Created in the
1970s at Xerox
Metaphor as a
design principle
Move from solving problems to building new interfaces
Improve how users work
Study actual users in real workplace environment
Assumptions and methods
Ethnography, prototyping, participatory design
Knowledge has limited generalizability
For each language feature, determine
the best option experimentally
How to make user studies as rigorous
as possible?
An Empirical Investigation into Programming Language Syntax (Steffik, Siebert, 2013)
While users of Quorum were able to program statistically significantly more accurately than users of Perl (p = .047), and users of Randomo (p = .004), Perl users were not able to program significantly more accurately than Randomo users (p = .458).
Large scale corpus study
"[It] appear[s] that "strong typing is modestly better than weak typing, and among functional languages, static typing is also somewhat better than dynamic typing.""
Attempt to reproduce the study mostly failed
"I believe [it does] in my heart of hearts, but it's kind of an impossible experiment to run."
(Greenberg et al. 2008)
"Usability evaluation is appropriate for settings with well-known tasks and outcomes. They fail to consider how novel systems will evolve and be adopted by a culture over time."
(Olsen, 2007)
Lively research field in the 1970s and 1980s
Ubiquitous computing challenges the classic desktop metaphor
Increasing number
of non-expert programmers!
Data transformations using various online data sources
Too hard for Excel, too complex in Python or R
Getting it right is very time-consuming!
Can non-experts actually use it?
Is it better than spreadsheets?
What desirable
design characteristics does it have?
(Ledo et al., 2018)
Research claims made in publications about UI toolkits, etc.
The same works for languages, libraries, tools, frameworks, ...
Can do some-thing previously unthinkable
System makes previously very hard thing easy
Show usability of a system in a range of situations
MIT Media Lab paraphrasing of
"publish or perish".
Aspen Movie Map
The 1978 precursor of Google Street View
Demo of a radically
new technology
(Borowski et al., 2022)
Makes all information visible and modifiable
Affects the whole developer workflow
Case studies to illustrate the effects
(Petricek, 2022)
Can non-programmers really use the system?
Get non-programmers, ask them to try and watch and note!
13 participants from business team of a research institute
Asked to complete
1 of 4 different tasks
Evaluated using activity logging, observation and interview
Widely used to understand use of commercial systems
What language or editor features are used, performance, project profiles
Interviews and observation studies of real work
Two ways of learning complex formulas
Percolation vs. experts
Rules of thumb for evaluating designs
written by experts
Evaluation without direct human involvement!
Example: Match between system and the real world
Olsen's criteria for user interface systems
Baseline or improves over state of the art
Efficiency, lines of code
Not about usability, but an easy thing to show
Getting it right
Claims, comparison, benchmarks, metrices, setup, presentation
See SIGPLAN Empirical Evaluation Checklist
Evaluating and comparing with existing systems
Evaluating usability can inspire new designs
The danger is designing with focus just on
effective evaluability
Human-centric language design
Tomáš Petříček, 204 (2nd floor)
petricek@d3s.mff.cuni.cz
https://tomasp.net | @tomaspetricek
https://d3s.mff.cuni.cz/teaching/nprg075
Methodology
Heuristics
Examples
Books