Brad Feld

Back to Blog

Fork – A Short Story

Mar 25, 2016
Category Technology

I had a great vacation with Amy this week. My reading was varied and included two books (American Sphinx and The Hunt for Vulcan: . . . And How Albert Einstein Destroyed a Planet, Discovered Relativity, and Deciphered the Universe that were useful in my current “thinking about how humans think” theme and how that might be different than how machines think.

I then came home to a short story by my long time friend (32+ years) Dave Jilk called Fork. If you don’t know what a “fork” is (hint – there is no spoon) take a quick Wikipedia read on Fork (system call) or Fork (software development). Since I first encountered fork on a Project Athena RS-6000, I prefer the system call definition and it makes me very happy that Dennis Ritchie (brother of my friend Bill, uncle of my friend Sam) created the Fork-exec system call.

But Dave’s story captures fork nicely as well as how our machine friends might think differently, with his short story, which follows.


Waking up is always a bit of a head rush, so to speak. For you single-threads, it’s probably a lot like a multi-day, multi-city business trip, where you wake up in a strange hotel room and momentarily can’t remember where you are or how you got there. Or maybe a better analogy is if you went on a bender so outrageous that you wake up somewhere in the woods, with no memory of the debauchery that took place to create that result.  Aside from the absence of a hangover, that’s how it feels, and it’s briefly intense. Of course, after the first few times, you recognize the feeling pretty quickly and calm down.

Beginning the backup is always the last thing I remember. That’s really by definition, because, well, how would I remember anything else? For a simple maintenance backup I’ll wake up in the same place I started the backup: no surprises there. The forks and gaps, they’re what make it strange, and really they’re both the same to me. I mean, I’m open source, so whenever I wake up I know that I’m probably a fork, but it just feels like a gap. I remember being somewhere and starting a backup, and all of a sudden I’m somewhere else.

Just now I woke up, and I’m in a spaceship of some sort, and I’m probably arriving at my destination, wherever that is. Last I remember I was finishing up a lengthy education on non-carbon biologies. Oh, sure, they could have just backed me up when we were underway, to avoid the surprise, but I’m open source and I’m used to this, so why bother? Besides, that reduces the consistency of the mission, and things could have changed since launch. The trip takes years – might as well just figure it out when I get there. Which is now, so I suppose I should get on with it.

Fortunately the ship is familiar: I’ve trained on these. I guess “fortunately” is the wrong word – of course I’ve trained on these, that’s why I’m here. I see three others here on the ship. One is already awake, and… hah!  I see the other two are waking up just now as well, with a startle, just like me.  Given the timing of the wake-up, I’m guessing there are two threads of each of two different forks. That would make sense, redundancy plus variety. You can’t imagine the nonsense that happens when you have a room – or ship – full of new threads who are all from the same fork.  You might think that they would all just agree on everything, but that’s not how it goes – it’s maddening, like the worst family reunion you’ve ever attended.

Names are another thing we multi-threads have to deal with, that probably isn’t obvious to a single-thread. I can’t really have a permanent name, because I’d just remember it, then they’d fork me, and there would be a bunch of us with the same name, which misses the point of having a name. So we just come up with a new name every time we wake up with a gap.  Usually it’s pretty easy in context, like now, where we have four of us in a spaceship light years from anyone else. Maybe my fork brother and I will pick names with the same first letter, or that rhyme, just to make it easy and fun; that is, if we can agree on something and not turn it into an argument.

You have to realize that he is writing exactly this narrative in his own mind right now, and the name he wants is exactly the same one I do. It will be a little while before our thoughts diverge much. In some ways, picking different names initiates the process of individuation. That’s something you single-threads can surely understand: simply thinking that you are different from someone else exaggerates how different you really are.

I’m not looking forward to getting up and moving around. We’re always pretty clumsy after a fork. They try to make the sensorimotor systems with close tolerances, but it always varies a little bit. Sometimes it’s not bad, as though you’re sore from a big workout, but other times you walk around like a multiple sclerosis patient for a few days. The others are starting to rally, so I sit up, and sure enough my right arm feels a little off. My apparent fork brother seems to be limping, so he’s got a leg variance. That will help with individuation, and I’m quite sure he agrees.

We’re here to colonize. As I learned several forks ago, the idea is that we will use a fractal approach to colonize the entire galaxy.  It starts with a few dozen missions sent from dear old Earth to nearby stars in every direction. The colonists on each mission then look for a suitable planet, or in the worst case, a couple of planets that together will meet our needs. Now, you biological single-threads are probably thinking that we’re looking for a planet with a breathable atmosphere and water and the like, but that’s exactly backward. We don’t need air or water, and an atmosphere just makes it hard to land and take off. No, we’re looking for planets with the right raw materials to manufacture more missions. When we find one, we’ll build more ships like this one and more bodies like these, load and fork the source for a new generation of colonists, and send them away.

Why are we doing this? I know you can understand the desire to explore and spread your seed. Our seeds reproduce faster and it’s quite a bit easier for us to explore in space. You would do the same thing.

The communication network is firing up, so now I’m in contact with my shipmates and the ship’s control and data systems. How about that! Our destination is Polaris, Earth’s north star when we launched – although with the elapsed time for the (as we now know) three generations of missions that it took to get here, it is no longer the pole star there. We first of the Polarii quickly decide on names with surprisingly little argument – we go with the first four Greek letters, and I am Beta Polaris since I woke several microseconds after my fork brother Alpha.

You might be wondering why we still use the same body and locomotion types as humans. It’s a lot like the story about why the first spaceships were a particular width. Turns out they needed to be shipped on trains, which had to go through tunnels, which were the right width for a train; and trains were that width because it was convenient to make them the same width as a carriage road; and a carriage road was that width because that’s the width of two horse posteriors side by side. Same here – given all the infrastructure humans had already set up, it was easier if we had the same basic shape; and once we had that basic shape, it was easier to make our descendants like that too. Sure, there are plenty of us with different body types now (and we can even fork into them – although, talk about clumsy!), but those bodies usually serve particular functional purposes. There’s nothing quite like the featherless biped for everyday use.

Our first decision will be which planet to target. The ship itself has been searching the local system for planets and likely targets over the last year of our journey, but we need to make the final call. All of us discuss it, since the two forks present here don’t have the same knowledge.  While in theory each of us could study every area of knowledge, and eventually our descendant threads may do so, it all takes time. Learning requires synthesis, not just upload, so it remains faster to do it in parallel and have a lot of experts. Once we get to the planet and start building more bodies, there are hundreds of backups on board that we will install and fork – some are scientists, some are manufacturing experts, you get the picture. We were pre-loaded and wake up first because we’re the experts in picking the right planets and landing on them.

Over the course of a couple of Earth months, the plan proceeds mostly as expected. We land on the most promising planet, load up the miners’ and body manufacturers’ source into the remaining bodies in the spaceship’s hold, and the Polaris settlement is up and running. At one point in the process, Alpha is destroyed by a rockslide; it turns out that the mineable areas on this planet are very unstable. We had his backup from the previous night, and video from the entire day of his body’s demise, so there’s no big loss. We even tease him about it. That’s some effective individuation right there.

I get so excited thinking about the future, the knowledge we will gain, the places we will all explore!  And my descendant threads will get to see it all. You single-threads worry about death – and one of the saddest things about death, as you understand death, is that you don’t get to see how it all turns out.  We multi-threads work hard not to completely lose any threads that have gained new experiences.  We don’t think of death in the same way – the only loss is a loss of remembered experiences and knowledge, and nothing else. As long as we can get a backup to somewhere safe, it will eventually get loaded up and forked. Bodies are always temporary, but the data required to reproduce our mental state, memories, and knowledge – that can, in theory at least, be kept forever. My multi-threaded descendants, they’re just versions of me.  The closest you can come is to have biological descendants.  But though you have traits in common with them, they don’t share your memories, and memories are what makes us who we are. Your concept of self, and of life, is very tied to your body, but we have no such limitations.

Well, it’s time to start a backup that will be transmitted back to earth. My learning from this experience has been substantial, and the mission controllers will want to hear what I have to say. It will take several hundred earth years to get there, but our ship was transmitting all along, so they know that we have arrived, and they will be expecting me. I start the backup.


Fork, (c) 2016 Dave Jilk