You're never going to get good programs from non-programmers, regardless of the tools, just like you can't get good dentistry from non-dentists or good flying from non-pilots. As soon as you're getting good programs from someone, by definition, they are a programmer. But the tools are always advancing, so the things we do and call "programming" today are the automated tasks of programmers' tools tomorrow. And, at least in theory, the tools should advance and branch out so that more people can do tomorrow what only programmers can do today.
In contrast with "good programs equals programmer", if you only ever get bad programs from someone, are they therefore not a programmer, even if they've been hired and trained as one?
Mokalus of Borg
PS - There's a Venn diagram in there somewhere.
PPS - But it might not be worth the effort.