Purr is still under active development. An experimental implementation is planned for late 2019. And an initial, practical release is expected to happen by the end of 2020.

Next: A Tool to Teach Programming
Apr 2019
  • The Purr computational model
Dec 2019


A Tool to Teach Programming

Expected start: Apr 2019
Expected release: Dec 2019

The first iteration of Purr aims to support better ways of teaching programming concepts, in the spirit of Bret Victor’s Learnable Programming

  • The Purr computational model
  • A serialisation format for Purr's image
  • An experimental interpreter for Purr
  • Visualising programs with Lenses & Observers
  • Controlling execution with time-travelling debuggers

Live, Literate Programming

Expected start: Jan 2020
Expected release: Dec 2020

The second iteration of Purr aims to support general purpose programming, with an emphasis on live (immediate) feedback, and rich literate programming. This extends the previous capabilities with ways of editing programs and navigating massive codebases.

  • Formalise the concept of Projects
  • Projectional editor on Abstract Syntax Graphs
  • Full support for executable specifications
  • Code navigation and search
  • Literate documents embedding explorable explanations

A Fast Purr

Expected start: Jan 2021
Expected release: Dec 2021

The third iteration of Purr aims to give users a smoother editing experience, and ways to package their application for production.

  • A JIT compiler for the IDE
  • An AOT compiler for distribution
  • Formalise application packaging & deployment

Collaborative Programming

Expected start: ?
Expected release: ?

The fourth iteration of Purr tackles the trickier aspects of collaborative programming, such as package management and version control. This includes discoverability in big ecossystems, trust with decentralised authorities and suspicious parties, and uncoordinated concurrent development.

  • Package & Trust management
  • A rich, extensible version control system
  • Collaborative (live) editing support

Computers as Active Agents

Expected start: ?
Expected release: ?

The fifth iteration of Purr incorporates more of the recent research on program synthesis and analysis in order to make computers more helpful to programmers.

  • Program synthesis from examples/sketches
  • Optimisation coach & cost analysis
  • Model checking from contracts

Distributed Purr

Expected start: ?
Expected release: ?

The sixth iteration of Purr extends the earlier features for distributed programming, which makes the support for heterogeneous distributed systems (those comprised of multiple technologies) better.

  • Multi-language actors/services
  • A new capability-secure communication protocol
  • Actor mobility