What Software Is Made Of

teddyh1 pts0 comments

Yes, software. Broadly construed. Computer programs.Some of you are thinking "ones and zeros!" and some are thinking "electrostatic charges!", which are in this case the same thing, and they're not wrong. But that's the kind of answer whic"/>

siderea | [tech, psych, Patreon] What Software is Made Of

Account name:

Password:

(Forgot it?)

(OpenID?)

Remember me

You're viewing siderea 's journal

Create a Dreamwidth Account Learn More

Interest<br>Region<br>Site and Account<br>FAQ<br>Email

Reload page in style: site light

Sibylla Bostoniensis<br>If you wanna know the future, simply look into the past

Recent Entries

Archive

Reading

Network

Tags

Memories

Profile

[tech, psych, Patreon] What Software is Made Of<br>Oct. 31st, 2015 03:34 am

siderea Do you know what software is made of?

Yes, software. Broadly construed. Computer programs.

Some of you are thinking "ones and zeros!" and some are thinking "electrostatic charges!", which are in this case the same thing, and they're not wrong. But that's the kind of answer which is remarkably unhelpful in all but the most limited circumstances. It is most especially useless for furthering the understanding of people who do not program and who have never programmed.

And since the whole of human life around the globe is reorienting to being intermediated and organized around programmed (and sometimes programmable) artifacts, it would seem understanding programming (if not necessarily understanding how to program) would be a very important thing for all people, if only to understand the world they now live in.

But to return to the question, some of you are thinking, "instructions!" And some of you thinking that mean it in the sense of what assembly language is expressed in and some of you are thinking that in terms of the old analogy long used to explain programming to non-programmers, of it being like a shopping list – and those may or may not be different things.

But let's talk about the shopping list analogy for a moment. If you haven't heard it, it goes something like this. Imagine you were sending a robot to the store to go grocery shopping for you. So you want to give the robot a list of things to buy. Let's say that you need a loaf of bread, a gallon of milk, and a dozen eggs. You could make a list that says "a loaf of bread, a gallon of milk, and a dozen eggs". But the robot is really stupid. It's just a robot. So you need to be more specific than that. You need to tell the robot which sort of bread you want, or whether the robot should just pick the first loaf it comes to. You need to tell the robot whether to get whole or skim or low-fat milk. You need to tell the robot whether the eggs should be the cheap ones, the free-range ones, the extra omega-3 fatty acids ones, or what.

You are probably also going to want to tell the robot - because if you don't tell it, it won't know – that it should not place the milk on top of either the bread or the eggs.

You may also want to tell your robot to inspect the bread for mold, the milk for the expiration date, and the eggs for breakage, before accepting any specific item. And because the robot is so dumb, you have to specify that if the first package of Dan's Bakery Six Grain with Extra Gluten is moldy, it should replace that package on the shelf and pick a different package of Dan's Bakery Six Grain with Extra Gluten and check it – and then repeat that process until it either finds an acceptable (non-moldy) package of Dan's Bakery Six Grain with Extra Gluten or runs out of Dan's Bakery Six Grain with Extra Gluten to check, in which case it needs to.... what?

What do you want your robot to do if none of the available bread of the type you want isn't moldy?

Do you want it to pick a different type of bread? Do you have a prioritized list of bread preferences you could have the robot work down?

Do you want it not to buy bread at all?

Do you want it to buy based on some other criteria, like, "just pick the cheapest wheat bread"?

It's up to you. It's your robot. It's your shopping list. You decide.

And that's what software is made of: software is made of decisions .

I'm not just saying that one makes decisions when making software. That's true of the making of all made things, from knitting tiny sweaters for dolls to erecting valley-drowning hydroelectric dams. But dolls' tiny knit sweaters are made out of yarn or other fiber, and valley drowning hydroelectric dams are made of masonry and metal. They are also made of decisions, too, but if you subtracted out the decisions, there would still be the constituent matter: a skein of floss, a pile of concrete. If you subtracted out the decisions from a computer program, there wouldn't be anything at all.

Decisions are all there is to software. That's what it's built out of. A computer program is an instantiation of a set of decisions. There is nothing else in a computer program but decisions. To make software what one is doing is making decisions – carefully crafting...

robot software made bread want decisions

Related Articles