I've written and talked about this over the last decade or so. I think a huge problem in even thinking about this is that the people who should be thinking about it have gotten very fluent in many ways of "programming" that are almost certainly not just obsolete but make it very difficult to think about what are likely to be the most important issues of today.
If we look at CAD->SIM->FAB in various engineering fields -- mechanical, electrical, biological, etc. -- we see something more like what is needed. From another view, if we look at the great need for designing and assessing, etc. we can see that the representations we need for "requirements", "specs", "legalities", etc have to be debuggable, have to run, and might as well just flow into a new kind of "CAD->SIM->FAB" process for programming. A lot of what has to happen is to replace main-stream "hows" with "whats" (and have many of the hows be automatic, and all of them "from the side).