07 Mar 2015 Explorable Explanations.

A recent Tweet sent me to The Rise of Explorable Explanations by Maarten Lembrechts. This documents how Bret Victor's influence is spreading. Victor is unimpressed by how we currently use computing power and proposes ways that we can better interact with them. So in Explorable Explanations he reminds us that so many "explanations" on the web are dead documents with which we cannot do much. Far better if they were alive, explorable. So Victor introduced a very simple Javascript methodology (Tangle.js) so that instead of saying "The formula for the circumference of a circle is c=πr2" you can say "The formula for the circumference of a circle is c=πr2 so for a radius of 5 cm the circumference is 31.4cm" where the 5 is a live number you can drag with the mouse and the circumference value changes. For obscure technical reasons I cannot easily show this live on this blog page, but the effect is both powerful and natural - all sites should be using this idea! There are many more powerful examples on Maarten Lamrechts' sites. For example, instead of just an explanation of what an Eigenvector is, there is an explorable explanation where you play with the inputs to see what the outputs are, along with all the intermediate steps.

These super-smart people have great ideas. They also have awesome web programming skills. I'm not that smart and don't have their programming skills. But in my own way I like to think that I had already worked out at least some part of the vision behind the Explorable Explanations movement. The slogan behind AbbottApps is "No science without a formula, no formula without an app". In other words, when I try to explain some science I must (nearly) always give the relevant formulae. But to most of us a formula doesn't convey a lot. So I have to bring that formula to life with some inputs and outputs so that the user can see what happens when things change. I personally find my own apps hugely informative - in a double sense. First, I get to understand the theory much better when I have to explain it and write the code. Second, when I play with the app I discover properties of the system that were not at all obvious to me in the first part of the process.

Whether AbbottApps are or are not part of the Explorable Explanations movement is less important than what I should do about them in the future. They are fine on PCs, Macs and tablets. On phones they work OK but are very small. This is because I haven't used "responsive design" so they automatically adjust to phone sizes. Updating them all would be a huge task, but as the phone or phablet will be the default choice for many people, perhaps it's a job worth doing.

But at a deeper level my app pages are very "old school". They are a bunch of text followed by an app area with graphs and sliders followed by more text. So I will start to use Victor's Tangle.js so that some of the less formal parts of some of the apps can integrated into the text, as per the circumference example above. Even more imaginative would be to allow the user to explore the algorithm (as Victor does), rather than just play with the inputs to a fixed algorithm. I'm not sure what this all means. But it certainly means lots more work for me, but also lots more intellectual adventure.

There's one more thing. Although AbbottApps have many faults and limitations, and although they don't meet the highest standards of Explorable Explanations, at least they are part way there. Why aren't all papers in academic journals written in Explorable Explanations style? Why aren't all university lecture notes in Explorable Explanations style? Why aren't all technical eBooks in Explorable Explanations style (my forthcoming Adhesion Science book is part way there)? Why is it that in the industrial/academic world that I inhabit, AbbottApps are more or less unique? It has been obvious to me for some years that this is how we should do things. It has been ovious to visionaries like Victor that this is how we should do things. Why isn't it obvious to everyone else?