Programming is Uniquely Difficult

Part of the BlogBook: Programming Wisdom

Engineers of other disciplines often take offense at the claim that software is uniquely difficult. They do have a point. As pointed out by Fred Brooks in hyper-classic The Mythical Man Month, one reason software is hard because software is so uniquely easy.

We fundamentally built on top of components that have reliability literally in the 99.999999999% range and beyond; a slow 2GHz CPU that "merely" failed once every trillion operations would still fail on average in eight hours at full load, which would be considered highly unreliable in a server room. Physical engineers would kill for this sort of reliability in their products. Or an equivalent to our ability to re-use libraries. Or how easily we can test most of our functionality with the ability to replicate the tests 100% accurately. Or any number of other very nice things we get in the software domain. Our job is far easier in some ways than any discipline concerned with the physical world, where nothing ever works 100%.

Why Do We Care What's Special About Programming?

Part of the BlogBook: Programming Wisdom

The first step to attaining wisdom is to understand why special "programming wisdom" is needed in the first place.

It's easy to get the idea that software is easy to create, because it is partially true. Computers get more powerful every year, and we trade in on that power to make programming easier. Every year results in more and better libraries. Changing software is very easy, and it's relatively easy to test compared to an equivalently-complex real-world object. J. Random User can write an Excel macro with a reasonable amount of effort that saves him a lot of time, and early programmers can become excited about what amazing things they can do just by assembling existing libraries and frameworks together which makes everything seem so easy.

Expanding on my quote by John Stossel: I know a lot of people accuse the Bush Administration of trying to build up fear and then take advantage of it.

The latter point is partially true, but the more I think about it, the more clear it is that the fear is almost entirely a media construct. The proof is that fear of (direct) terrorism is only one particular example of a pattern of over-blown media-induced fears, including death by plane, gun violence (for most people), and child kidnapping. I said the latter was partially true because if we're afraid of something, even irrationally, it's our President's job to deal with that fear.

Worry About the Right Things

So take our reporting with heavy skepticism. Ignore us when we hyperventilate about mad cow disease and the danger of asbestos hidden behind a wall.

Instead, worry about what's worth worrying about: driving, acting reckless, smoking cigarettes, drinking too much, and eating too much. "What is your blood pressure, what are you eating; are you exercising?" is what patients should think about, says internist Marc Siegel. "But obesity is boring. Heart disease is boring. So we tend to not think of the things that can really get us."

I've been saying it a lot lately, and I'll probably say it some more. Actions speak louder than words.

I won't try to specifically interpret that into this case because that'd probably just trip your finely-honed political BS filters. So I'll just say, over the next few days as Iran cranks the pressure up a notch, watch the actions. Ignore the words.

Well, I will say this: Since the soldiers were kidnapped, not much has happened on the action front, except for some humiliating videos being released which probably don't count for much action. Somebody's going to have a next move, though, because clearly Iran's not very interested in talking. They know to watch actions and ignore words.

Logic is a little tweeting bird chirping in a meadow. Logic is a wreath of pretty flowers which smell bad. Are you sure your circuits are functioning correctly? Your ears are green.

I think in the end this British sailor kidnapping will prove to have been a big mistake by Iran.

In the short term, their goal of embarrassing Britain may have worked, thanks to the eager greediness of our news media for bad news and their anxiousness to toss barbs at Blair (and indirectly at Bush). Mission accomplished.

However, after that, I'm just not seeing a good move for Iran. They can't just hand these guys back. Well, they could and in some sense it's probably still their best move ("We're so confident that we can kidnap with impunity that we don't even need these hostages; we can take whom we choose, when we choose. Your entire armed force is hostage to us now.") But in reality it'd be seen as weakness by their internal factions, probably.

The observation that the internet breeds impoliteness is an old one, and I don't intend to repeat it. I would just like to point out that there is something concrete you can do, which I'm trying to do more often.

Most people don't make death threats, but I feel pretty comfortable saying that most people's contribution to the Internet is a net negative for civility. We tend to post only to point out errors, to "correct" "mistakes", to explain to somebody in detail why they not only believe the wrong thing, but are stupid for believing it. Greivance Law 3 usually kicks in for at least two people, and cascading insults are a normal occurrence on the Internet.