Code as Writing, Version 2.0

It’s impossible to understand humanity without understanding how we store and transmit information. The technology of writing has heavily shaped the human experience. When writing was invented, it enabled new kinds of human cooperation, such as governments and commerce.  Most people don’t think of writing as a technology, and most people don’t think of governmental systems as having hard dependencies on technologies. These ways of thinking sound odd, unless you think people are computers, in which case they sound obviously true.

Writing: Early Data Processing Technology

What makes the written word different from the spoken word? What makes writing useful as a technology? Two things stand out immediately: Immutability, and consensus.

Immutability

When words are written down, it’s difficult to change them afterwards.   Before writing, words could only be stored in human memory. Spoken words could be changed afterwards, retroactively. All a person had to do was insist than an incorrect memory was, in fact, correct.  Who could possibly challenge the recollection of the king? Who would dare to contradict the priestly memories? An edict carved in stone is much harder to rhetorically alter.

Consensus

When words are written down, it’s easier to get everyone to agree on exactly which words are written down. “Get everyone on the same page” is a reference to the consensus properties of written text.  The spoken word has a problem where different people tend to hear different things. Having words written down ensures that when people agree, they agree about what exactly they’ve agreed on.

If we compare spoken word technology with written word technology, we get a dichotomy, like this:

Power

Words are powerful.  Many ancient peoples venerated writing. A number of religions have holy texts, for this reason. “Religions as having computational properties” seems way out there – unless you think people are computers, in which case it sounds obviously true.

The autobiography of Frederic Douglass has one major turning point, which is where he learned to read.  The world used to be full of stories of people who earned their freedom after learning how to read.  

Without the ability to read, a person was entirely dependent on the words of those around them for gaining knowledge. Reading allows a person to receive information from a much broader group of human beings. The written signals that have persisted over time have generally been those that resonated most deeply with the human computational architecture. The books which made Frederic Douglass yearn for his freedom, and which enabled him to pursue it, were given to him by the people who enslaved him. They gave him a message of freedom, because they failed to understand the power of the book they were reading.

Code: Writing 2.0

If there’s a modern metaphor for the power of learning to read and write, it’s the power that comes from learning to code.  Many people who’ve taken this step in the middle of their adult lives will tell you it’s profoundly freeing. Moving from an, unstable, low paying job, to working as a programmer feels like a brand new life to the people I know who’ve done this. Of course, it’s not the same magnitude, but the qualia vector points in roughly the same direction, for similar reasons.

Stronger Consensus

Understanding the written word allows humans to partake in a consensus narrative, which includes such important tenets as “every human being has an inherent dignity and worth.”

Computer code’s main advantage over the written word is that it has much stronger consensus properties. A written text is subject to all kinds of disagreement over what its contents mean.  The entire premise of modern digital computers is that running the same code on the same hardware produces the same results. In other words, the premise of modern computing is that there is consensus around what the result should be when we run a certain piece of code on certain inputs.

It’s as if when we write computer code, we’re asking questions of long dead engineers who designed the original microprocessors. Those engineers all agree on the answer, which they transmit to us via machines. Modern microprocessors were created with the ability to act precisely as their decades old ancestors did.  Those now-deceased electrical engineers and early programmers built machines that reflected their minds. Computers are so powerful because those long dead engineers are all in agreement with currently living engineers, about what should happen when a piece of code is executed on a piece of hardware. It’s that widespread consensus which makes computing so powerful.

When I read Marcus Aurelius, it’s as if the deceased roman emperor speaks to me. When I write code, it’s as if the now-departed mathematician Ada Lovelace works for me.  The work she does is carried out on her behalf, by machines following patterns descended from the patterns she designed. In the same way, when I raise my children, I’m following the goals and hopes that my ancestors had for me, without knowing my name or what I’d be like.

Humans love to bicker and argue and fight. We’re primates – tribal pack hunters who have instincts to capture the rewards from success in conflict. Yet I have no doubt that both Marcus Aurelius and Ada Lovelace would agree, it’s better for me to be present with my children, to raise them with love and a good example. There’s a lot of consensus across the human race about a number of important things; where we disagree tends to be in the details. Computer code is powerful because it allows humans to come to agreement over tiny, tiny details such as the number of bits in a byte, or the ways to encode text as bytes, or the ways to transmit information to each other via electric currents and blips of light.

Stronger Immutability

Consensus with a long historical record grants its own form of immutability. Yes, individual disks and code media do break down.  But computers have given us error correcting codes, and hash functions, and allowing large bodies of text to be quickly compared for character-level accuracy.  If we think it’s worth doing, we can have new forms of immutability that a single record carved in stone could never reach.

Obligatory Blockchain Reference

Blockchain systems like Bitcoin and other cryptocurrencies add an additional layer of both immutability and consensus,  but these are so heavily talked about that I’ll skip that there. It is sufficient to merely say that I’m very excited about the future of this technology.

Stronger Power

I mentioned in a previous post that interacting with the economy means interacting with millions of other humans. These kinds of large scale interactions would not be possible without computers, because computer languages enable the kind of large-scale consensus needed to have millions of humans working together to produce a single, consistent outcome.

Rather than seeing computer code as “a tool humans use to manipulate computers,” it makes more sense to see the code itself as the technology, and the machines as just ways of implementing that technology.  Computers, without computer code, are nowhere near as useful. Perhaps we should think of computers as being elaborate pens, or modern reworkings of ancient clay tablets.  People venerated writing, not pens.  The code its whats’ powerful, and the computers are just machines that enable to code to work its magic.

A book like Sapiens argues that humans depend on shared mythology to cooperate on a massive scale. I think this view is entirely accurate, as long as our definition of ‘mythology’ is broad enough to include things like ‘the x86 instruction set.’ 

Viewed on our ‘consensus / performance’ dichotomy, computer code is like the written word, except better. Code is writing, 2.0.

So if computer code is writing 2.0, with better consensus and immutability properties – what does writing 3.0 look like?  I’ve had this idea for a while, but it took a lot of building blocks before I could share it effectively. I had originally wanted to write about that next, but I’d prefer to keep up a cadence of topics that interest me most at the moment, rather than work on multi-post arcs that feel stale after a while. If you really want to read about writing 3.0, leave a note in the comments. Otherwise, I’ll move in the direction that my emotional drives have been shouting at me for a while now.

One thought on “Code as Writing, Version 2.0

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.