scispace - formally typeset
Open AccessJournal ArticleDOI

PLIERS: A Process that Integrates User-Centered Methods into Programming Language Design

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

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

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

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

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.
Related Papers (5)