Ascending the Ladder to Self-Sustainability Achieving Open Evolution in an Interactive Graphical System

Joel Jakubovic, Tomas Petricek

In Proceedings of Onward! Essays 2022

Programming is usually based on an inconvenient separation between an implementation level and a user level. Self-sustaining systems expose their implementation at their user level so that they can be modified and improved from within. However, the few examples that exist are tightly linked to textual language-based accounts of compiler bootstrapping. If we want systems to be truly open for modification, we need to step beyond programming languages and support more structured, visual ways of programming as well. How the bootstrapping process can work in such an interactive context is important yet unexplored territory.

This essay is a critical report on our first-hand experience of building one such system named BootstrapLab. We trace and reconstruct the steps for achieving self-sustainability in an interactive, structured, graphical context: choose the platform; design the substrate; implement temporary infrastructure; implement a high-level language; pay off outstanding substrate debt; provide for domain-specific notations.

Throughout, we discuss the challenges involved, identifying design forces that shaped the decisions and capturing heuristics that resolved these forces in our case. Both positive and negative results are featured, including the efficacy of the heuristics. We close by suggesting how to generalise what worked in our particular case to alternative paths and starting points. The enterprise as a whole takes us a further step towards achieving open and malleable programming systems for everyone.

Paper and more information


If you want to cite the paper, you can use the following BibTeX information.

  author    = {Jakubovic, Joel and Petricek, Tomas},
  title     = {Ascending the Ladder to Self-Sustainability:
    Achieving Open Evolution in an Interactive Graphical System},
  booktitle = {Proceedings of Onward! Essays},
  series    = {Onward! 2022},
  location  = {Auckland, New Zealand},
  year      = {2022}

If you have any comments, suggestions or related ideas, I'll be happy to hear from you! Send me an email at or get in touch via Twitter at @tomaspetricek.

Published: Thursday, 8 December 2022, 12:00 AM
Author: Tomas Petricek
Typos: Send me a pull request!