TY - JOUR
T1 - Schema Evolution in Interactive Programming Systems
AU - Edwards, Jonathan
AU - Petricek, Tomas
AU - van der Storm, Tijs
AU - Litt, Geoffrey
N1 - Publisher Copyright:
© Jonathan Edwards, Tomas Petricek, Tijs van der Storm, and Geoffrey Litt.
PY - 2024
Y1 - 2024
N2 - Many improvements to programming have come from shortening feedback loops, for example with Integrated Development Environments, Unit Testing, Live Programming, and Distributed Version Control. A barrier to feedback that deserves greater attention is Schema Evolution. When requirements on the shape of data change then existing data must be migrated into the new shape, and existing code must be modified to suit. Currently these adaptations are often performed manually, or with ad hoc scripts. Manual schema evolution not only delays feedback but since it occurs outside the purview of version control tools it also interrupts collaboration. Schema evolution has long been studied in databases. We observe that the problem also occurs in non-database contexts that have been less studied. We present a suite of challenge problems exemplifying this range of contexts, including traditional database programming as well as live front-end programming, model-driven development, and collaboration in computational documents. We systematize these various contexts by defining a set of layers and dimensions of schema evolution. We offer these challenge problems to ground future research on the general problem of schema evolution in interactive programming systems and to serve as a basis for evaluating the results of that research. We hope that better support for schema evolution will make programming more live and collaboration more fluid.
AB - Many improvements to programming have come from shortening feedback loops, for example with Integrated Development Environments, Unit Testing, Live Programming, and Distributed Version Control. A barrier to feedback that deserves greater attention is Schema Evolution. When requirements on the shape of data change then existing data must be migrated into the new shape, and existing code must be modified to suit. Currently these adaptations are often performed manually, or with ad hoc scripts. Manual schema evolution not only delays feedback but since it occurs outside the purview of version control tools it also interrupts collaboration. Schema evolution has long been studied in databases. We observe that the problem also occurs in non-database contexts that have been less studied. We present a suite of challenge problems exemplifying this range of contexts, including traditional database programming as well as live front-end programming, model-driven development, and collaboration in computational documents. We systematize these various contexts by defining a set of layers and dimensions of schema evolution. We offer these challenge problems to ground future research on the general problem of schema evolution in interactive programming systems and to serve as a basis for evaluating the results of that research. We hope that better support for schema evolution will make programming more live and collaboration more fluid.
KW - Hot Reloading
KW - Image-based Programming
KW - Live Programming
KW - Local-first Software
KW - Schema Evolution
KW - Type Evolution
KW - Version Control
UR - http://www.scopus.com/inward/record.url?scp=85212498950&partnerID=8YFLogxK
U2 - 10.22152/programming-journal.org/2025/9/2
DO - 10.22152/programming-journal.org/2025/9/2
M3 - Article
AN - SCOPUS:85212498950
SN - 2473-7321
VL - 9
JO - Art, Science, and Engineering of Programming
JF - Art, Science, and Engineering of Programming
IS - 1
M1 - 2
ER -