PLIERS: A Process that Integrates User-Centered Methods into Programming Language Design
Michael Coblenz,Gauri Kambhatla,Paulette Koronkevich,Jenna Wise,Celeste Barnaby,Joshua Sunshine,Jonathan Aldrich,Brad A. Myers +7 more
TLDR
In this paper, formative and summative HCI methods are adapted for programming languages to make them more suitable for programming language design, and they integrated these methods into a new process, PLIERS, for designing programming languages in a user-centered way.Abstract:
Programming language design requires making many usability-related design decisions. However, existing HCI methods can be impractical to apply to programming languages: languages have high iteration costs, programmers require significant learning time, and user performance has high variance. To address these problems, we adapted both formative and summative HCI methods to make them more suitable for programming language design. We integrated these methods into a new process, PLIERS, for designing programming languages in a user-centered way. We assessed PLIERS by using it to design two new programming languages. Glacier extends Java to enable programmers to express immutability properties effectively and easily. Obsidian is a language for blockchains that includes verification of critical safety properties. Empirical studies showed that the PLIERS process resulted in languages that could be used effectively by many programmers and revealed additional opportunities for language improvement.read more
Citations
More filters
Journal ArticleDOI
Grounded Copilot: How Programmers Interact with Code-Generating Models
TL;DR: Interactions with programming assistants are bimodal : in acceleration mode , the programmer knows what to do next and uses Copilot to get there faster; in exploration mode, the programmer is unsure how to proceed and usesCopilot to explore their options.
Proceedings ArticleDOI
Garbage collection makes rust easier to use
TL;DR: Gold as discussed by the authors is an optional library-based garbage collector for Rust, which makes Rust more usable and makes it easier to learn and use, but it does not use a garbage collector, but rather achieves these properties through a sophisticated type system.
Proceedings ArticleDOI
Notational Programming for Notebook Environments: A Case Study with Quantum Circuits
TL;DR: Notate as discussed by the authors is an extension to computational notebooks which allows users to open drawing canvases within lines of code, allowing them to draw and sketch within the same line of code.
Journal ArticleDOI
Animated Vega-Lite: Unifying Animation with a Grammar of Interactive Graphics
TL;DR: In this article , a set of extensions to Vega-Lite that model animated visualizations as time-varying data queries is presented, allowing authors to smoothly move between or combine these modalities.
Journal ArticleDOI
What’s (not) Working in Programmer User Studies?
TL;DR: In this article , the authors present a taxonomy of 18 barriers researchers encounter when conducting programmer user studies, and 23 solution strategies some researchers use to address 8 of the 18 barriers in their own studies.
References
More filters
Journal ArticleDOI
Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework
Thomas R. G. Green,Marian Petre +1 more
TL;DR: This paper applies the cognitive dimensions framework to two commercially-available dataflow languages and concludes that it is effective and insightful; other HCI-based evaluation techniques focus on different aspects and would make good complements.
Journal ArticleDOI
Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers
Caitlin Kelleher,Randy Pausch +1 more
TL;DR: A taxonomy of languages and environments designed to make programming more accessible to novice programmers of all ages, organized by their primary goal, either to teach programming or to use programming to empower their users.
Journal ArticleDOI
Empirical Studies of Programming Knowledge
Elliot Soloway,Kate Ehrlich +1 more
TL;DR: Two empirical studies attempt to evaluate the hypothesis that expert programmers have and use two types of programming knowledge: programming plans, which are generic program fragments that represent stereotypic action sequences in programming, and rules of programming discourse, which capture the conventions in programming and govern the composition of the plans into programs.
Journal ArticleDOI
Key Principles for User-Centred Systems Design
TL;DR: A definition of UCSD is proposed and 12 key principles for the adoption of a user-centred development process are identified, principles that are based on existing theory, as well as research in and experiences from a large number of software development projects.
Journal ArticleDOI
Wizard of Oz studies — why and how
DahlbäckN.,JönssonA.,AhrenbergL. +2 more
TL;DR: The focus of the work described in the paper is on the practical execution of the studies and the methodological conclusions drawn on the basis of the authors' experience, and the methods used and the conclusions drawn are of relevance also to other kinds of intelligent interfaces.