May 1, 2025
Programming languages have evolved substantially in recent decades, but the programming experience has changed remarkably little since the transition from punch cards to teletypes! Developers still manipulate programs as textual code, even when working with data structures that may have a more direct graphical representation. This code must be complete and free of syntax errors, type errors, and merge conflicts before any of it can be compiled and executed, leading to gaps in feedback, sometimes for hours at a time. Whenever the code or its inputs change, execution must restart. This experience is particularly troublesome for novices and end-user developers (e.g. scientists), who cite the lack of direct manipulation and live feedback—as is standard in other creative tools, e.g. for making art and music—as amongst the frustrations that drive so many away from computing.
My research group, the Future of Programming Lab at Michigan, has reworked the programming language stack from the ground up to eliminate these limitations and thereby make programming more accessible to a broader spectrum of people engaging in a richer variety of tasks—including tasks that today require “walled garden” applications that limit end users from casually harnessing automation, abstraction, and composition. My vision for this work is to enable a live computational commons where diverse groups of people, aided by safely sandboxed AIs, collaborate using both code and GUIs, interleaved compositionally, to tackle critical socio-technical problems
About Cyrus Omar
Cyrus Omar leads the Future of Programming Lab as an Assistant Professor in Computer Science and Engineering at the University of Michigan.