Whilst I agree to the extent that I would dread the monstrosities brought to birth by a huge programming populace, I can't agree with the overall article.
I think the comparison with plumbing is apt, but not in the way he intends.
Let's say I turn on my tap and no water comes out, now I know nothing about plumbing but at least I know that the water comes to the tap through pipes so perhaps one is blocked or leaking?
By the same token if my car engine won't start then I can hazard a guess that it's perhaps a failure in the ignition system or the starter motor. I can also reason that the engine works by combustion of fuel, so it is logical that if the fuel tank is empty I won't get very far.
Contrast this with computers, the average person has literally no conceptual model whatsoever of what is going on beyond the fact that they require electrical power.
Of course people learn the buzzwords from the media to make it sort of sound like they know what they are talking about. I remember years ago people bragging about their "64 bit" console despite not having the slightest clue about what a bit was or why it should matter.
This makes it easier for people to buy media scare stories about "hackers" etc as well as not really understanding what it means to protect themselves online (beyond installing some AV software and praying).
It might also make life a little easier for people who are not technical to specify software requirements.
For example many times I've been given a spec like "if X happens then do Y", of course X is never one thing, it is a combination of a large number of sub conditions that are dependent on various external variables etc.
When you try and get somebody to explain in detail all of these subconditions to you so that you can make the software correct people will often take you for being overly pedantic because they understand intuitively what they mean by X and can't quite get the fact that the computer doesn't.
I think the comparison with plumbing is apt, but not in the way he intends. Let's say I turn on my tap and no water comes out, now I know nothing about plumbing but at least I know that the water comes to the tap through pipes so perhaps one is blocked or leaking?
By the same token if my car engine won't start then I can hazard a guess that it's perhaps a failure in the ignition system or the starter motor. I can also reason that the engine works by combustion of fuel, so it is logical that if the fuel tank is empty I won't get very far.
Contrast this with computers, the average person has literally no conceptual model whatsoever of what is going on beyond the fact that they require electrical power.
Of course people learn the buzzwords from the media to make it sort of sound like they know what they are talking about. I remember years ago people bragging about their "64 bit" console despite not having the slightest clue about what a bit was or why it should matter.
This makes it easier for people to buy media scare stories about "hackers" etc as well as not really understanding what it means to protect themselves online (beyond installing some AV software and praying).
It might also make life a little easier for people who are not technical to specify software requirements. For example many times I've been given a spec like "if X happens then do Y", of course X is never one thing, it is a combination of a large number of sub conditions that are dependent on various external variables etc.
When you try and get somebody to explain in detail all of these subconditions to you so that you can make the software correct people will often take you for being overly pedantic because they understand intuitively what they mean by X and can't quite get the fact that the computer doesn't.