For decades, tool vendors and industry pundits often said they were seeing signs of tools that would make programming unnecessary.
The first to bear such promise was, ironically, FORTRAN.
FORTRAN is an acronym for FORmula TRANslation, and the idea was to allow scientists and engineers to simply enter mathematical formulas.
While FORTRAN was certainly successful in enabling scientists and engineers to program, it is still a fairly low-level language by our modern standards.
FORTRAN did not make programmers unnecessary, and its only contribution to the industry was to advance the software industry.
The software industry introduced tools that reduced or eliminated some of the tedious tasks of programming, such as the details of laying out source statements, the sequence of tasks required to edit, compile, link, and execute them, the work required to detect parenthesis mismatches, the steps required to create a standard message box, etc. The new tools will help improve productivity a bit.
With the new tools, productivity was gradually improving, and critics speculated that this would continue indefinitely, eventually reaching a point where "programming would no longer be necessary."
In reality, however, programming innovations always come with drawbacks.
These drawbacks are gradually being overcome, and the evolution of technology confirmation is finally being demonstrated.
Once the basic tool concept has been put to practical use, future prospects are enhanced by removing problems that were accidentally created in the process of creating the new tool.
Removing these accidental problems did not improve productivity itself.
It simply reduced the "one step back" from the "two steps forward, one step back" approach.
Over the past few decades, programmers have seen an abundance of tools that were supposed to eliminate programming.
First third generation languages, then fourth generation languages, then automated programming, CASE, visual programming.
All of these innovations have contributed to incremental improvements in programming.
They have forced those who learned programming before the innovations to admit that they did so.
But none of them led to the elimination of programming.
The driving force that kept programming from being eliminated was the inherent difficulty of programming, even with adequate tool support.
No matter what tools are available, programmers must contend with the messiness of the real world.
So you have to think thoroughly about procedures, dependencies, exceptions, and politics.
And you also have to deal with indecisive end users.
Programmers are always plagued with ambiguous interfaces to other software and hardware, and are held accountable for complexities that arise in the world outside of computer programming, such as regulations and business rules.
There is always a need to bridge the gap between the real-world problems to be solved and the computers that are expected to solve those problems.
These people are called programmers, whether they manipulate machine registers in assembler or dialog boxes in Visual Basic.
As long as there are computers in this world, there will always be a need for people to communicate instructions to computers, and such activities will still be called programming in later generations.
When you hear a tool vendor advertise, "With this new tool, you won't need a computer programmer," you can either rush out and get it and try it, or, if you know historically that no such thing exists, you can scoff at the vendor's lack of awareness.