Earlier quoted context omitted.
Programming is more akin to engineering than factory working. Languages are getting simpler and more powerful but programs are getting more complex. 15 years ago a typical developper didn't need to worry about multithreading, connectivity or security. It's fundamentally an intellectual job and will remain.
The future probably won't be 15 highly educated, highly paid developers working on a simple web app like today. It will be 1 highly educated, highly paid developers guiding 15 lower paid 'blue collar' developers in developing a web app.
When I started working, it took a team of testers, a team of dba, and a team of sysops in addition of the developers to build anything. Nowadays, no only the development team is smaller, but the sysops, dba and testing are the responsibility of those developers too through automated tools. On the client side, there used to be BA and Testers, but nowadays, BA and Testers are often the same persons.
The tshirt from several years ago "I will replace you by a tiny script" has proven quite true. Old job that required qualified people before have been replaced by scripts, not "blue collar" worker. A huge amount a developer entering the market could lower the salaries, but any simplification to the developer role is going to be handled by automated tools, not human.