To most people, an application is something you see and interact with. Even when you do deal with things like the filesystem, it's mediated by a graphic interface - a metaphor. It's a good enough metaphor that people aren't really aware that it is a metaphor, let alone what it's a metaphor for. To someone whose idea of programs is Word and Excel, the idea of 'piping' the output from one program into another just doesn't make any sense.
If you're not a programmer but want to get an insight into what an insanely complicated process writing a computer program is, check out the rest of the article.
But it gets worse.
The article links to another piece that talks about the Picture Hanging Problem.
It's like you're asking [a junior staff member] to hang a picture for you, but they've never done it before. You understand what you need done - the trick is getting them to do it. In fact, it's so obvious to you that there are constraints and expectations that you don't even think to explain. So you've got some junior guy working for you, and you say, "Go hang this picture over there. Let me know when you're done." It's obvious, right? How could he screw that up? Truth is, there are a whole lot of things he doesn't know that he'll need to learn before he can hang that picture. There are also a surprising number of things that you can overlook.
So now, not only do you have to deal with a idiot savant computer that is "fundamentally dumb as a bucket of mud", if you're running a team you also have to take into account the fact that your team members may 1) not have a clue how to do what you're asking 2) want to do it in a completely different way to what you wanted/expected 3) not give a damn about how they do it just as long it gets you off their back 4) any combination of the above.
I.T. also suffers from being a very young industry, especially when compared to disciplines such as engineering or manufacturing that have an established base of ways to do things. We're still trying to figure out how to do things, let alone disseminate and teach it all to the new kids coming up through college. We all hate it when an application fails or Windows crashes but to be honest, I'm often amazed that things work as well as they do, let alone at all! 🙄
Any time someone says that they think programming is a dull and dry mechanical process, I just smile quietly to myself... 🙂