Programming for the rest of us
I started programming in the 1970s, when programming languages were small and simple, and programming was easy. These days, programming languages are large and complicated, programming is consequently more difficult, and I ask myself, "Is this progress?" The obvious answer is "No."
Many programmers would protest that it's not a fair comparison. Modern programs do more, and they do it through a graphical user interface, which is inherently more complicated and difficult to program.
I reply that, since then, we've had several decades of experience in programming, and the design of programming languages should have kept pace with programmers' ambitions, enabling us to produce modern programs now as easily as we produced less-ambitious programs then.
Unfortunately, language design has progressed slowly, in particular because the improvements that have been made have filtered only very slowly into general use. Most of the programming languages in common use can trace their parentage back to Algol-60; although they've been augmented with some modern ideas, the effect of bolting new bits on to an existing structure is generally to complicate the language and make it more difficult to learn and use.
Furthermore, programming languages are now designed and marketed for professional programmers who devote their lives to programming and can therefore cope with a higher level of complexity than ordinary mortals can. The needs of amateur, part-time programmers are ignored; indeed, some professional programmers arrogantly proclaim that programming is too difficult for amateurs and should be left to people like themselves.
This is nonsense. Personally, I don't aspire to write operating systems or major applications. I do want to write little programs from time to time to do little jobs on my computer. That shouldn't be difficult.