The Decline of Software
In writing, there is a rule of three (especially in comedy). While the previous two posts haven’t been laugh riots, there is more to say on why programming has—to be blunt—turned to crap. However, instead of hurling more slings and arrows, or seeking greater generalizations, I will offer some practical reasons as to why we are in this mess.
Before anyone disagrees as to the current state of the art, I’m not saying it’s all garbage. There are some very good, even great, programmers. I can even tell you where they are: writing games. By the eighties, this shift was undeniable, yet the “important” software makers ignored it. Basically (to use the common computer pun) business wanted software on the cheap. Outsourcing was inevitable. Talent went where the money was.
In previous posts, I suggested two things. One, that bad programming habits might result from computer environments the rest of us couldn’t afford. Two, that some software might be written by people too poor to be users like the rest of us. A third major contributor to second-rate software has been first-rate hardware. Once it became affordable, no one bothered to write efficient code. Hardware was fast enough and storage big enough to hide most software shortcomings.
Yet of all the possible reasons for the decline of software, one stands above the rest. Given the explosion in the number of computers and users over the past half-century, the average skill of programmers inevitably declined. Simply put, programming is not easy; not everyone can do it, and few can do it well. The massively increased demand for software should make us wonder if there are enough sufficiently skilled programmers to go around.
The pool of capable programmers is not infinite. It wasn’t always a pool. Once it was a pyramid: great programmers on top and so on down. Now there’s no way to rise; the best anyone can do is tread water at the deep end. More and more people are dumped into the shallow end, and too many sink to the bottom. People without the skills to do acceptable work.
Thus we have a shortage of the talent necessary to design and implement software’s innards and interfaces. It’s also true for all parts of our complex digital technology. Are we locked into the pursuit of too much technology shaped by too little talent? If so, then the future may be filled with shiny objects sure to reach new heights of frustration.