Croquetify: Transforming Single-User Functional Reactive Programs into Multi-User Applications
Building robust real-time collaborative applications — ``multi-user apps'' — is hard. State transitions that are trivial in the single-user case become surprisingly complex once concurrent participants are involved, often requiring custom interaction protocols and bespoke speculative execution and reconciliation mechanisms. Errors are harder to reproduce, and the application must still respond within milliseconds. AI coding agents do not yet handle these demands reliably.
In this paper, we present a novel way to develop multi-user apps. We employ a combination of a Functional Reactive Programming language called Renkon, which itself is a powerful language for building applications, and a network application framework called Croquet. We devised a program transformation that allows the same Renkon program to run as a single-user app or to utilize Croquet to run as a multi-user app without writing application-specific server-side code. This is done without losing the live programming capability of Renkon.
To demonstrate how well this approach works for a practical application, we applied it to a real-time interactive programming environment called Renkon-pad. We show that not only can we transform a single-user programming environment into a multi-user one, but also that the multi-user environment can be used to develop a multi-user app in a live programming manner. This experiment supports the idea that the transformation is applicable to general and complex programs, with the programmers’ intent in the original program preserved.
Tue 6 OctDisplayed time zone: Pacific Time (US & Canada) change
15:30 - 17:00 | |||
15:30 30mTalk | Relational Agenda Programming: A Uniform Execution Model for Embedded Reasoning Systems Onward! Papers Andrew Shi-hwa Chen Minnesota State University Moorhead | ||
16:00 30mTalk | Croquetify: Transforming Single-User Functional Reactive Programs into Multi-User Applications Onward! Papers Yoshiki Ohshima Independent Contractor, Shizuoka University, Aran Lunzer Independent Software Engineer, David A Smith Independent Software Engineer | ||
16:30 30mTalk | The Developer as Curator: A Canvas for Coding Agent Context Onward! Papers Lukas Böhme Hasso Plattner Institute, University of Potsdam, Potsdam, Germany, Tom Beckmann Kyoto University of Advanced Science, Michael Perscheid SAP Innovation Center Potsdam, Robert Hirschfeld Hasso Plattner Institute; University of Potsdam | ||