Local-first software is a new term for interactive
end-user applications, which provide data ownership and privacy while
still enabling data to be shared, and which allow working offline
while ensuring data consistency. Developing such applications is often
perceived as hard, because of the use of unsuited general purpose
programming models. REScala is a mature research project that
addresses these issues and provides a specialized programming model
designed to be understandable by developers while still providing the
flexibility for efficient implementations that automatically ensure
all desired properties.
In this talk, we will show how a combination of functional reactive
programming (the mostly classical variant) and conflict-free
replicated data types (specifically join semilattices) provide
abstract reasoning about all points in space and time for local-first
applications. Specifically why reasoning in the abstract is actually
much easier for developers than reasoning about all the hundreds and
thousands of possible special cases their implementation admits.
We hope that this talk helps to spread such better suited programming
models, thus leading to most software being local-first by
default. Then, we may see a future where individuals own their data
and not have it stolen by advertisers, and companies keep their
sovereignty without being at the mercy of the biggest players.