Mindstorms and Learning on Safe

Following on from: Paul Chiusano: The future of software, the end of apps, and why UX designers should care about type theory linked by @intrz over in the ‘Apps to capitalise on the ease of publishing via Safe’ thread a couple of days ago, I went on a link from there to this which I couldn’t possibly recommend higher for anyone who feels they’re starting to get their head around what programming ‘is’: Learnable Programming

I followed a recommendation from that second long article and set off reading Library Genesis Mindstorms by Seymour Papert. I realise that I’m 50 years late to the party here, but I am blown away, what a vision of computers, and mathematics, and learning, it’s incredible! I have been tempted to write down quotes which seemed shockingly relevant to Safe on many occasions while reading, but was too eager to stop, I’ll power through it to the end tonight or tomorrow then go over it again taking notes, and maybe throw a few quotes into this thread to show what I mean to people who haven’t read it.

Has anyone else had the amazing experience of reading this book? Are there any secret plans out there to create Mathland on Safe?

In a nutshell for people who haven’t read it - Papert was arguing that our society’s relationship with knowledge could be fundamentally altered by computers in a massively positive sense, if only we could setup environments in which kids could program computers in a ‘constructionist’ fashion. He was one of the guys behing the Logo programming language, turtle geometry, tested these ideas for years in MIT.

This is all massively exciting for me and I wish I didn’t have to spend my time earning money and could instead work on this :smiley: I’m going to do a bad job trying to put it into words but nonetheless: if the barriers between people, the powerful functions closed off by apps, and private and public data fades away, and we have educational tools like extended versions of turtle geometry and other variants easily shareable, and 10 pound SBCs hooked up to cheap monitors and keyboards and a USB stick with Safe on it, we’re getting into some wonderfully new territory for human learning and cooperation all around the world.

Anyway, the point is, educational ‘apps’. I have no problem personally with the network being used for ‘bad things’, but the more wonderfully positive things we have going on the harder to attack we’ll be. Safe could revolutionise learning. What kind of apps, or the better question might be what kind of languages and what kind of access to those languages, should we be trying to design? How does linked data play a role here? If anyone has done any concrete or non-concrete thinking about this, share away.


There’s many educational resources now that’s inspired by Bret Victor’s stuff, but I think what’s missing still is something that scales beyond just being an educational app and into being actually usable.

These educational resources now are closed apps where you can learn about a limited number of things with nice animations etc. That’s great, but if this stuff was instead made in an open reusable computation platform like what Paul Chiusano talks about then that’s when things could turn interesting.

Maybe something like Unison and then to be able to always visualize the state and see what’s happening could be a type of time traveling debugger. There are time traveling debuggers already, but they seem quite limited. So instead imagine for example something like a spreadsheet. Each column would be one of the variables you are interested in and each row a step of the execution. When running the program the debugger would fill out the data columns. The variables might contain number, string etc, but that might not itself make it easy to see what’s going on, so like in excel you want to be able to visualize and plot data and to make custom visualizations. So if you have some standard ways to visualize graphs, trees, lists you could easily make something like this visualiztion of data structures and algorithms, but you could change the code of your algorithm and see on the fly how it affects the output and use it to create your own algorithms, not just to visualize textbook examples.

With such an environment you could start learning and exploring like Bret Victor describes in Learnable Programming, but it also scales up something a professional could use. Someone who wants to design a new graph algorithm could start with selecting that they want a graph data structure, draw out an example graph and then start writing code while seing an animated visualization of how each step of their code transforms the graph and there could also be a slider for different versions of the code to compare. If something like Unison was used, that’s stored as a syntax tree, the way to write the code could also span from writing text syntax to more visual ways.

One of the areas SAFE would be useful is to have easily available data. Wolfram Language is a good example of a language with lots of data available easily right from the language, which gives a lot of powerful possibilities, but it’s a wholly closed ecosystem.