Reimagining the User Interfaces for Programming
Programming environments force users to work primarily with text, even though source code and debugging output are often opaque representations for describing and understanding computation. Most software applications (such as for documents or spreadsheets) force users to work primarily with graphical user interfaces (GUIs), even when direct manipulation of concrete values is no longer a desirable way to describe a computation. My research aims to bridge this gap, so that both expert programmers and novices can harness the expressive power of programming together with the cognitive and usability benefits of GUI-based manipulation.
In this talk, I will describe new programming-language techniques (in bidirectional programming and program synthesis) and human-computer interaction techniques (in programming-by-demonstration and GUI code editors) that contribute towards this long-term goal. Next, I will demonstrate Sketch-n-Sketch, an interactive programming environment based on these techniques for creating basic web applications and vector graphics diagrams. I will conclude with a vision for how continued work at the intersection of PL and HCI might influence the next generation of IDEs for professional developers, as well as software applications at large.
Ravi Chugh is an Associate Professor of Computer Science at the University of Chicago. His research and teaching interests revolve around programming language technology — program synthesis, types systems, and other program analysis techniques — particularly as they relate to challenges in software engineering and human-computer interaction. Ravi received an NSF CAREER Award in 2017, and a Neubauer Fellowship from the University of Chicago in 2015 for innovative and effective undergraduate teaching. Ravi obtained his Ph.D. from the University of California, San Diego in 2013.