ECOOP 2026
Mon 29 June - Fri 3 July 2026 Brussels, Belgium

This program is tentative and subject to change.

Wed 1 Jul 2026 11:00 - 12:30 at I.2.02 - ECOOP Academy Lecture 1

Programming language research has given us type systems, formal semantics, and powerful abstractions, but it has a fundamental blind spot. Programmers do not just write code; they construct programs in rich, stateful, interactive programming systems. This matters even more now that AI agents use the very same programming systems autonomously. To make programming more effective, safer and enjoyable, we need to change our perspective, stop worrying about programming languages and start working on a theory and practice of programming systems.

This tutorial follows two directions. First, we survey programming systems old and new, from pioneering environments such as Smalltalk, Pygmalion, Boxer, and HyperCard, to widely-used systems best understood through this lens, such as Jupyter notebooks and the UNIX shell, and recent research prototypes that push the boundaries of what programming systems can be. Second, we review the research methodologies needed to understand programming systems: how to apply programming language theory to model and reason about systems, how to use frameworks from human-computer interaction to design novel systems (the “modernist” research strand), as well as to improve the widely-used systems (the “postmodern” research strand).

Tomas is an Assistant Professor at Charles University in Prague. He is interested in understanding the nature of programming and finding new and better ways of doing it. He uses various methods ranging from theoretical programming langauge research, applied work resulting in open-source software, as well as interdisciplinary approaches that look at programming through the perspectives of history and philosophy. He believes that the most interesting developments in programming happen when a new way of thinking makes difficult problems disappear.

His current work is focused on programming systems. Programs are created not by just writing code, but by interacting with rich stateful programming systems or environments. Programming systems still include code, but they also encompass live or structure editors, runtime environment and other developer tools. He believes that we need to (i) find new fundamental ways of studying programming systems, (ii) revisit past programming systems that offered interesting ways of interaction, and (iii) apply those ideas to domains such as data science tooling or low-code and no-code programming.

In recent years, he also worked on functional programming and contributed to the development of the F# language and type providers at Microsoft Research. His PhD from University of Cambridge was on coeffects, a theory of context-aware programming languages. At University of Kent and The Alan Turing Institute, he spent most of his time working on programming tools for data science.

This program is tentative and subject to change.

Wed 1 Jul

Displayed time zone: Brussels, Copenhagen, Madrid, Paris change

11:00 - 12:30
ECOOP Academy Lecture 1ECOOP Academy at I.2.02
11:00
90m
Talk
Programming Systems, or What Programming Language Research Cannot See
ECOOP Academy
Tomas Petricek Charles University