Convo: What does conversational programming need? An exploration of machine learning interface design
This work addresses the design of conversational programming interfaces for developers, but it is incremental as it builds on existing natural language and speech technologies without introducing a new paradigm.
The study explored the utility of natural language for programming by comparing voice-based, text-based, and hybrid input methods in a conversational programming system with 45 participants, finding that users appreciated different aspects of each system and that novice users were more optimistic about voice-input than advanced users.
Vast improvements in natural language understanding and speech recognition have paved the way for conversational interaction with computers. While conversational agents have often been used for short goal-oriented dialog, we know little about agents for developing computer programs. To explore the utility of natural language for programming, we conducted a study ($n$=45) comparing different input methods to a conversational programming system we developed. Participants completed novice and advanced tasks using voice-based, text-based, and voice-or-text-based systems. We found that users appreciated aspects of each system (e.g., voice-input efficiency, text-input precision) and that novice users were more optimistic about programming using voice-input than advanced users. Our results show that future conversational programming tools should be tailored to users' programming experience and allow users to choose their preferred input mode. To reduce cognitive load, future interfaces can incorporate visualizations and possess custom natural language understanding and speech recognition models for programming.