Code is Collective Knowledge

I was recently listening to an episode of The Changelog.

I heard this quote.

Sofware is becoming mainstream … It used to be that … software engineering was kind of an afterthought … but these days its becoming more of a core competency, more and more of the core logic of the business is actually captured in the logic of code.

In episode 217, around 11:30 into the episode, the founder of Sourcegraph, Beyang Liu dropped that bit of wisdom. I’m still thinking about the implication.

This reminded me of a discussion I sometimes have: What makes software a fundamentally new thing? Why is it important? Doesn’t it still jobs? How is it different from really elaborate windup toys? (Queue angry letters from windup toy enthusiasts proving that any sufficiently complex windup toy is Turing Complete.)

Anyway, the point I like to make goes something like this: Software is the only technology that lets me write down knowledge in executable form. Someone worked out how to do square roots on a computer. Now my computer can do square roots. I don’t need to know how they work. (Of course, the abstraction may leak, in this case with floating point precision loss, but that’s beside the point.)

This executable repository of knowledge is a new thing in human history, and it adds an important, fundamental change: The knowledge and policy in a computer can be more complex than what any given human can carry between the ears at any given time. Take Google, for example. You couldn’t build a fast enough procedure outside software for retrieving all that information. Even if someone gathered enough subject matter experts, you’d be all day looking for the right expert.

And I think that’s why software is eating the world. It’s eating the world because organizations can collect their knowledge and policies in a durable, executable, maintainable form, and collect policies that are, in many ways, orders of magnitude more nuanced and faster to implement than humans ever could before.

 

What I learned from the podcast is an elevator pitch for software: Software is executable human knowledge. What an exciting thing to work on!

Till next time, happy learning!

-Will

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s