Code Craftsmanship: Programming Support Tools

会議の名前
UIST 2023
Lorgnette: Creating Malleable Code Projections
要旨

Projections of computer languages are tools that help users interact with representations that better fit their needs than plain text. We collected 62 projections from the literature and from a design workshop and found that 60% of them can be implemented using a table, a graph or a form. However, projections are often hardcoded for specific languages and situations, and in most cases only the developers of a code editor can create or adapt projections, leaving no room for appropriation by their users. We introduce Lorgnette, a new framework for letting programmers augment their code editor with projections. We demonstrate five examples that use Lorgnette to create projections that can be reused in new contexts. We discuss how this approach could help democratise projections and conclude with future work.

著者
Camille Gobert
Université Paris-Saclay, CNRS, Inria, Orsay, France
Michel Beaudouin-Lafon
Université Paris-Saclay, CNRS, Inria, Orsay, France
論文URL

https://doi.org/10.1145/3586183.3606817

動画
Live, Rich, and Composable Programming with Engraft
要旨

Live & rich tools can support a diversity of domain-specific programming tasks, from visualization authoring to data wrangling. Real-world programming, however, requires performing multiple tasks in concert, calling for the use of multiple tools alongside conventional code. Programmers lack environments capable of composing live & rich tools to support these situations. To enable this composition, we contribute Engraft, a component-based API that allows live & rich tools to be embedded within larger environments like computational notebooks. Through recursive embedding of components, Engraft enables several new forms of composition: not only embedding tools inside environments, but also embedding environments within each other and embedding tools and environments in the outside world, including conventional codebases. We demonstrate Engraft with examples from diverse domains, including web-application development, command-line scripting, and physics education. By providing composability, Engraft can help cultivate a cycle of use and innovation in live & rich programming.

著者
Joshua Horowitz
University of Washington, Seattle, Washington, United States
Jeffrey Heer
University of Washington, Seattle, Washington, United States
論文URL

https://doi.org/10.1145/3586183.3606733

動画
Hypothesizer: A Hypothesis-Based Debugger to Find and Test Debugging Hypotheses
要旨

When software defects occur, developers begin the debugging process by formulating hypotheses to explain the cause. These hypotheses guide the investigation process, determining which evidence developers gather to accept or reject the hypothesis, such as parts of the code and program state developers examine. However, existing debugging techniques do not offer support in finding relevant hypotheses, leading to wasted time testing hypotheses and examining code that ultimately does not lead to a fix. To address this issue, we introduce a new type of debugging tool, the hypothesis-based debugger, and an implementation of this tool in Hypothesizer. Hypothesis-based debuggers support developers from the beginning of the debugging process by finding relevant hypotheses until the defect is fixed. To debug using Hypothesizer, developers first demonstrate the defect, generating a recording of the program behavior with code execution, user interface events, network communications, and user interface changes. Based on this information and the developer's descriptions of the symptoms, Hypothesizer finds relevant hypotheses, analyzes the code to identify relevant evidence to test the hypothesis, and generates an investigation plan through a timeline view. This summarizes all evidence items related to the hypothesis, indicates whether the hypothesis is likely to be true by showing which evidence items were confirmed in the recording, and enables the developer to quickly check evidence in the recording by viewing code snippets for each evidence item. A randomized controlled experiment with 16 professional developers found that, compared to traditional debugging tools and techniques such as breakpoint debuggers and Stack Overflow, Hypothesizer dramatically improved the success rate of fixing defects by a factor of five and decreased the time to debug by a factor of three.

著者
Abdulaziz Alaboudi
George Mason University, Fairfax, Virginia, United States
Thomas D.. LaToza
George Mason University, Fairfax, Virginia, United States
論文URL

https://doi.org/10.1145/3586183.3606781

動画
DiLogics: Creating Web Automation Programs with Diverse Logics
要旨

Knowledge workers frequently encounter repetitive web data entry tasks, like updating records or placing orders. Web automation increases productivity, but translating tasks to web actions accurately and extending to new specifications is challenging. Existing tools can automate tasks that perform the same logical trace of UI actions (e.g., input text in each field in order), but do not support tasks requiring different executions based on varied input conditions. We present DiLogics, a programming-by-demonstration system that utilizes NLP to assist users in creating web automation programs that handle diverse specifications. DiLogics first semantically segments input data to structured task steps. By recording user demonstrations for each step, DiLogics generalizes the web macros to novel but semantically similar task requirements. Our evaluation showed that non-experts can effectively use DiLogics to create automation programs that fulfill diverse input instructions. DiLogics provides an efficient, intuitive, and expressive method for developing web automation programs satisfying diverse specifications.

著者
Kevin Pu
University of Toronto, Toronto, Ontario, Canada
Jim Yang
University of Toronto, Toronto, Ontario, Canada
Angel Yuan
University of Toronto, Toronto, Ontario, Canada
Minyi Ma
University of Toronto, Toronto, Ontario, Canada
Rui Dong
University of Michigan, Ann Arbor, Michigan, United States
Xinyu Wang
University of Michigan, Ann Arbor, Michigan, United States
Yan Chen
University of Toronto, Toronto, Ontario, Canada
Tovi Grossman
University of Toronto, Toronto, Ontario, Canada
論文URL

https://doi.org/10.1145/3586183.3606822

動画
MIWA: Mixed-Initiative Web Automation for Better User Control and Confidence
要旨

In the era of Big Data, web automation is frequently used by data scientists, domain experts, and programmers to complete time-consuming data collection tasks. However, developing web automation scripts requires familiarity with a programming language and HTML, which remains a key learning barrier for non-expert users. We provide MIWA, a mixed-initiative web automation system that enables users to create web automation scripts by demonstrating what content they want from the targeted websites. Compared to existing web automation tools, MIWA helps users better understand a generated script and build trust in it by (1) providing a step-by-step explanation of the script's behavior with visual correspondence to the target website, (2) supporting greater autonomy and control over web automation via step-through debugging and fine-grained demonstration refinement, and (3) automatically detecting potential corner cases that are handled improperly by the generated script. We conducted a within-subjects user study with 24 participants and compared MIWA with Rousillon, a state-of-the-art web automation tool. Results showed that, compared to Rousillon, MIWA reduced the task completion time by half while helping participants gain more confidence in the generated script.

著者
Weihao Chen
Purdue University, West Lafayette, Indiana, United States
Xiaoyu Liu
University of Michigan, Ann Arbor, Michigan, United States
Jiacheng Zhang
University of Michigan, Ann Arbor, Ann Arbor, Michigan, United States
Ian Iong Lam
University of Michigan, Ann Arbor, Michigan, United States
Zhicheng Huang
University of Michigan, Ann Arbor, Michigan, United States
Rui Dong
University of Michigan, Ann Arbor, Michigan, United States
Xinyu Wang
University of Michigan, Ann Arbor, Michigan, United States
Tianyi Zhang
Purdue University, West Lafayette, Indiana, United States
論文URL

https://doi.org/10.1145/3586183.3606720

動画
Riffle: Reactive Relational State for Local-First Applications
要旨

The reactive paradigm for developing user interfaces promises both simplicity and scalability, but existing frameworks usually compromise one for the other. We present Riffle, a reactive state management system that achieves both simplicity and scalability by managing the entire state of a web application in a client-side persistent relational database. Data transformations over the application state are defined in a graph of reactive relational queries, providing developers with a simple spreadsheet-like reactivity model. Domain state and UI state are unified within the same system, and efficient incremental query maintenance ensures the UI remains responsive. We present a formative case study of using Riffle to build a music management application with complex data and stringent performance requirements.

著者
Geoffrey Litt
Massachusetts Institute of Technology, Cambridge, Massachusetts, United States
Nicholas Schiefer
Anthropic, San Francisco, California, United States
Johannes Schickling
N/A, Berlin, Germany
Daniel Jackson
MIT, Cambridge, Massachusetts, United States
論文URL

https://doi.org/10.1145/3586183.3606801

動画
Odyssey: An Interactive Workbench for Expert-Driven Floating-Point Expression Rewriting
要旨

In recent years, researchers have proposed a number of automated tools to identify and improve floating-point rounding error in math- ematical expressions. However, users struggle to effectively apply these tools. In this paper, we work with novices, experts, and tool developers to investigate user needs during the expression rewriting process. We find that users follow an iterative design process. They want to compare expressions on multiple input ranges, integrate and guide various rewriting tools, and understand where errors come from. We organize this investigation’s results into a three- stage workflow and implement that workflow in a new, extensible workbench dubbed Odyssey. Odyssey enables users to: (1) diagnose problems in an expression, (2) generate solutions automatically or by hand, and (3) tune their results. Odyssey tracks a working set of expressions and turns a state-of-the-art automated tool “inside out,” giving the user access to internal heuristics, algorithms, and functionality. In a user study, Odyssey enabled five expert numerical analysts to solve challenging rewriting problems where state-of- the-art automated tools fail. In particular, the experts unanimously praised Odyssey’s novel support for interactive range modification and local error visualization.

著者
Edward Misback
University of Washington, Seattle, Washington, United States
Caleb C.. Chan
University of Washington, Seattle, Washington, United States
Brett Saiki
University of Washington, Seattle, Washington, United States
Eunice Jun
University of Washington, Seattle, Washington, United States
Zachary Tatlock
University of Washington, Seattle, Washington, United States
Pavel Panchekha
University of Utah, Salt Lake City, Utah, United States
論文URL

https://doi.org/10.1145/3586183.3606819

動画