Many people have tried to achieve this and will continue to try - look at light table and Apple's playgrounds for recent attempts. But these 'revolutionary' 'accessible' programming tools have never delivered on their promises. This is something Fred Brooks predicted in the 80s. Much of what makes programming hard is essential complexity inherent in the problem to be solved. Improving our tools and processes is a good thing, but there are no silver bullets when it comes to improving programming productivity.
This is the concrete example of what the revolution will look like. It doesn't involve interfaces or logic, just a color customization, which has been possible in most user-facing software as long as I can remember.
The only thing that can bridge the gap between as-yet-unknown interfaces (in the most generic sense) and non-programmers is some flavor of artificial intelligence, which is far from a forgone conclusion.
Most people try to solve the issue with AI. I think it's one of the reasons why we haven't solved that problem (making programming more approachable) yet. I'd argue the first step is to make that it's readable in plain english. If we have this, then we can start thinking about AI. Why don't you have a look at Bubble (bubble.is). That's our approach
The point is that there are infinitely many interfaces (again, in the most generic sense) that haven't even been conceived of yet. All of those will require coding.
Today, iphone is not possible to be printed from a 3D printer, nor is photoshop can be generated from a visual programming tool.
Why someone always want to make the giant leap instead of focusing on the logical next step, is a mystery.
At the same time, making it easier for more people to write their own programs (and modify them as they need) also has tremendous value. I don't think visual programming delivers on that well, though.
As an aside, note that when I say "experts" above, I don't necessarily mean to wall it off - anyone who takes the time to learn the skills involved would deserve the label, to this purpose. I just mean an expectation of some measure of study/skill/specialization that won't be present by default.