Hello! It’s been a busy couple of months since I wrote and introduced the Dynamic Notebooks project. If you don’t identify as a “coder”, that essay may have struck you as peculiar — how can a programming system possibly make it easier for humans to share and teach and learn together? I’m going to make the case today for why you should think of code as a creative bottleneck that we’ll have to squeeze our society’s scientific crown jewels through to break them out of the lab.
First, a few announcements.
I’ve finished porting SICMUtils into browser-executable form. This project is a sort of Mathematica-lite, an interactive scientific computing system that’s capable of describing and animating every subject on my “study before I die” physics list.
I’m speaking at the re:clojure conference (free, dec 4th) on some work on definite integrals, a sub-piece of SICMUtils that we’ll cover here in a few more posts.
I’ll present on "Dynamic Notebooks and Literate Programming” at the London Clojurians on Jan 26th. Hopefully by then I’ll have a proper demo of the full Dynamic Notebook experience running.
Please tell your friends and come give these a watch!
I’m working on a series of posts sharing some of what I’ve learned and built so far. Much of what I’m going to share is written down as code. I want to try and convince you here that code is not just a necessary evil to get an idea animating. It is a beautiful communication medium for its own sake, all the more because it can bring our technology to life. Even if — especially if — you don’t have experience with code, I want to bring you along. Let me explain why.
Scientific writing is double-tough. Wonderful writing works when it twangs our shared cultural strings; you can pick up a tough work of introspective fiction like Ulysses and make progress because you have a brain like Bloom’s and have had to live with its chatter for quite some time.
An author like Penrose has to help you build a very special telescope inside your brain before he can adjust it for you — point it at a conformal model of hyperbolic geometry, say, after you’ve built and added those little concept-cities to your brain’s landscape — and say, finally, “isn’t that wonderful?”
To say more — to approach the task of elevating scientific writing to literature — requires the author’s trust that we’ve actually built the Mindscape-telescope according to spec, and that it swivels and focuses.
I smiled, reading this line in the preface to Road to Reality:
Yet I am an optimist in matters of conveying understanding. Perhaps I am an incurable optimist. (xvi)
He truly believes that we’ll get our telescope built, and is happy to wait. When we’re ready, his observations are waiting.
Penrose also suggests in the preface that even if you build none of the kit successfully, his observations might be “enjoyable” or “illuminating”. I’m less of an optimist here. This might be true of a society that spends less time traumatizing its students… but here in the US, many of us are very scared of the broken-glass telescope kits gathering dust in the closet.
Once the machinery is built, we do seem to be built to find very abstract ideas, these new cities in the Mindscape, to be profoundly resonant. Here’s Cornelius Lanczos’s opening paragraph to chapter 8 of “The Variational Principles of Mechanics”:
We have done considerable mountain climbing. Now we are in the rarefied atmosphere of theories of excessive beauty and we are nearing a high plateau on which geometry, optics, mechanics, and wave mechanics meet on common ground. Only concentrated thinking, and a considerable amount of re–creation, will reveal the beauty of our subject in which the last word has not been spoken. (p. 226)
Even if words like “wave mechanics” make you shiver, don’t you want to hear more?
It’s not the math and physics, the blueprints themselves, that are inspiring about writing like this. It’s the viewpoint and perspective and thrill that Lanczos is obviously feeling and striving to share. Shared culture amplifies the resonance these words can excite in us. But mathematical culture is very hard to acquire, full of “prerequisites”, and is mostly delivered by shamans murmuring gently about mindscape-visions locked inside their own heads.
“Jacques Hadamard, the famous French mathematician, in the late stages of his life, decided to poll his 99 buddies, who made up together the 100 great mathematicians and physicists on the earth, and he asked them, "How do you do your thing?" They were all personal friends of his, so they wrote back depositions. Only a few, out of the hundred, claimed to use mathematical symbology at all. Quite a surprise. All of them said they did it mostly in imagery or figurative terms. An amazing 30% or so, including Einstein, were down here in the mudpies [doing]. Einstein's deposition said, "I have sensations of a kinesthetic or muscular type." Einstein could feel the abstract spaces he was dealing with, in the muscles of his arms and his fingers...”
I want in! I want to feel that way. And I want to make it easier to share that feeling and bring others into my community without the usual 16-years-of-time entrance fee.
The fact that we can serialize mathematical ideas between brains with any fidelity is astonishing. How do we do it?
The tools Penrose and Lanczos deploy are words, language, and mathematical notation. Also hand-drawn images, in Penrose’s case. We weave words into spells and send them across the void as currents of air or marks on a page, potentially across years with no feedback, in the case of a textbook. And somehow, sometimes, it works, and someone else’s brain is colonized!
Writing this, I was reminded of a long drive last year through western Colorado, on a dazzlingly bright winter afternoon. Jenna was sleeping and I was deep into my podcast feed when the voice of Chris Anderson, the curator of the TED conference and my former boss, filled the car.
The number one mission as a speaker is to take something that matters deeply, and to rebuild it in the minds of your listeners. The only way you can do it, is to use the elements that already exist in your listeners' minds. How do you do that? By the power of language. And the thing is that it's not your language. It's THEIR language. This is where so many talks go wrong. Speakers use their own jargon, their own assumptions, and lose the audience.
To build an idea, you have to build it piece by piece, from concepts that the
Of course the words you say aren’t the ideas themselves! They’re instructions, or blueprints, powerful ingredients but still dead on their own.
When we write to each other, we have to force our ideas through a narrow language-channel. If we’re physically together, the channel is wider. I can say a word to you and watch you react, watch your body language and face for signs of confusions, and modify what I’m sending.
When David Whyte reads his poetry aloud, he’ll often repeat a line two or three times, gauging how the words are affecting his reader. On Sam Harris’s podcast, he describes the usual style (plowing through from beginning to end) as a psychologically violent act. You say a thing, and it hits home, but before the listener can process what’s happened to hit them again and wrench them along.
Compare this to a doctor delivering the news to a parent that their child has died. Imagine the live wire between the two, each word devastating, the doctor doing her best to pause, wait, help, be there.
It’s hard to communicate with this amount of subtlety and love when we share a culture. I think we should aspire to do it with our scientific and mathematical ideas too. It is really hard to move laterally into a mathematical area without rebuilding the entire foundation below it, when all we have are words. If words are violent and blunt, well, maybe we need better vessels.
Communicating with Code
It is damned lonely, not being able to talk about the Mindscape with the people you love, or show them what’s going on in your head. How do we fix this?
I want to make the case that code, symbols written in a programming language, is the answer for a fairly large subset of the Mindscape-structures we’ve discovered.
Superficially, code feels like mathematical notation, and before 1940 it would have been nothing more. But since 1940 we’ve been sliding into the Twilight Zone, and advanced alien technology has weaseled its way into every nook and cranny of life. Each of these devices is a pulsing well of potential energy. If I can encode a set of Mindscape-blueprints into code, I can feed it to you — or we can both feed it to one of the machines, and the machine will wake up and become the thing we’ve described.
I’ve discussed this idea already in “Mindstorms and Microworlds”. The different angle I want to stress here is that the “code” format is only important because it can wake up the machines.
If you build some idea in your own mind, great. That’s how we’ve been doing it for so long. If you build it in code, it acquires a life support system; the idea can explain itself to anyone who finds it.
So much of the code out there is designed to make something happen, and not to explain itself. Models like Knuth’s Literate Programming weave code with language, but don’t let the code generate sounds, or images, or little worlds to explore. The code stays dead.
Much of the work I’ve done on the Dynamic Notebooks project this past month lives in literate programming style; but I wrote it with an interactive environment in mind, where my word-blueprints can recede and the model I’m talking about, or “implementing”, can just explain itself.
I’m going to try to share it in its current form, keeping all of these limitations in mind. Code also requires a shared culture, yes. But maybe I can share enough of that culture with you, given the promise that this particular string of symbols can wake up the machinery.
Building your own Telescope
Animating alien artifacts does more than increase our channel capacity for understanding tools. Software, and dynamic models, make it possible to just use a tool like an animation or physics library, or a 3D rendering engine like Blender. Once you’re hooked, you can go wide, and continue to build and explore; or you can ask the tool itself how it works. A good tool will explain itself and guide you through the process of rebuilding it.
There is some visceral pleasure in understanding a thing, but only if you found it confusing or startling in the first place. That feeling behind, “how did you do that?” is what brings us together. And you’ll never feel that feeling if you don’t get to do the thing.
Sam Harris often talks about how he and many of his peers got into meditation and thinking about consciousness after an initial, transformative psychedelic experience. The thought of sitting and focusing on his breath for hours or days, with no clear “goal” in mind, was too bizarre to consider.
Here’s a quote from Sam’s Drugs and the Meaning of Life:
However, there was a period in my early twenties when I found psilocybin and LSD to be indispensable tools, and some of the most important hours of my life were spent under their influence. Without them, I might never have discovered that there was an inner landscape of mind worth exploring.
It is a lot to ask of someone to swallow 16 years of education without even describing the sorts of simulations our most talented scientists are able to run in their brains. Imagine instead that you start the journey in the world’s most capable workshop, where everything works, and little kids can pull calculus or group theory off the shelf to make games. My guess is that more than a few of us might decide to become tinkerers with no pressure at all.
Code and Microworlds
Thus ends my ranting pitch on why a code-based project might lead to a more human way for humans to interact.
A goal of mine in the Dynamic Notebooks project is to make it easier to perform this act of re-creation outside of our heads. I have to stress that I want to do it in a way that widens everyone’s potential channel capacity, and gives us each the ability to create and share dynamic worlds in a form that others can build on and share again.
To do that, I needed a microworld-engine. SICMUtils is the engine, and, I think, is capable of describing and animating most subjects on my “study before I die” physics list.
The next big project is to create the networked notebook where these microworlds can live and multiply.
While I work on that, I’m going to take you on a tour of what I had to build to get that SICMUtils shipped. The project ended up unearthing a lot of interesting personal history and historical science that I’m excited to share with you all.
A lot of what’s coming is going to weave language and code, since I don’t have the animating notebook yet. Please treat this as an intermediate step! I am going to do by best to draw and describe along the way the pictures that the code is supposed to be animating. These are alien machines, partially awake, still not able to visualize themselves, but getting closer.
And then we’re going to wake it all up, together, and the next batch of folks can dig in to this, or ignore it.
In the next letter I’m going to introduce the programming language “Lisp”, why it matters, and why it’s the language we’re going to use for the next phase. If you want to go really deep into this shamanistic subculture, I’ll include materials that will let you do that. But of course you should feel free to sample what’s coming at whatever depth you like.
Reading List, References
Tools for Thought, by Howard Rheingold. A history of the pioneers of the 20th century, who’ve viewed computers as more than missile-aiming devices.
Personal Dynamic Media, by Alan Kay and Adele Goldberg. An incredible essay by two of the gods of this sort of work. These ideas have been around for a long time.
Drugs and the Meaning of Life, by Sam Harris. All of this made much more sense to me after my own first psychedelic experience. If you bucket “psychedelics” with alcohol, cocaine, etc, now you have some empathy with folks that shudder and see math and science as torture-tools.
Programming for the Expression of Ideas, by Gerald Sussman. Sussman makes some of the same points I make above, but launches way into the deep end, showing off differential geometry, Ricci tensors, all sorts of stuff that the audience has NO chance of understanding. A strange way to make his point :)
Doing with Images makes Symbols, by Alan Kay. Bret Victor played the clip I quoted in his “Inventing on Principle”. That talk is wonderful too, and got me thinking about what I stand for with my work.