Phil Haack has a nice exploration of what it means to “program”. As long as I’ve been doing this — since the early 90’s — there has always been the promise that “programming” will go away. This usually takes the form of visual tools that offer the ability to drag-and-drop the logical chunks of your programs together.
This is to say, we are continually promised the holy grail of declarative programming. A world of pure what, with little regard for the how.
And yet after 20+ years of evolving to higher-level languages (bigger chunks), we still need programmers. The employment statistics are haven’t trended downward. Why?
I posit this: a “programmer” is not someone who knows a particular syntax; s/he is a logician and a linguist. The ability to describe, unambiguously, how a system should behave is a trait that few people have. So even if you have big colorful icons representing logical steps, they are of little value unless you know what you want.
So perhaps simple code jockeying will become less valuable in the marketplace (remember what HTML programmers demanded in 1995?). And given the above definition, poor communicators will have trouble surviving in the industry.
But I don’t think we’ll see fewer programmers anytime soon; I just think they will start to look more like professional communicators.