HOWEVER, I still think most everyone is missing the REAL issue here. As evidenced by the powerful tools cited in this article that address various aspects of the "programming" problem, there have been numerous efforts to move the state-of-the-art in software development forward. And to a great degree those efforts have _proven_ quite a few superior paradigms.
And yet, we haven't seen those new paradigms become truly mainstream for most programmers. Why? I do NOT believe it is because the approaches haven't integrated the right new concepts, because there are so many existing useful tools combining many different new ideas effectively which have failed to become mainstream among programmers.
I think many of those new approaches could and should have become normal operating mode for programmers.
I think the reason they did not is this: the core definition of "programming" (and by extension "software engineering" etc.) is an antagonistic and largely manual process of creating complex textual source code that can be used to describe system behavior. Period.
For example, if I want to call myself a web "developer" I DARE NOT use an interactive GUI tool to generate and maintain the source code for my web site. Web developers will always say, for example, they avoid this because the source code generated that way is less maintainable by hand. In many cases that may be true. In some cases with advanced code generation it is not. Regardless, I don't believe that is the actual reason. Its just a rationalization.
What do we call someone who's entire job entails creating a web page using a graphical user interface? In other words, this is a hypothetical person who has found a hypothetical GUI tool that can accommodate all of his web site design and implementation needs without any manual edits to source code. If he builds a web site or web application this way, and writes zero lines of code, do we refer to him as a very smart and advanced web "developer"? Or do we call him a web designer or simply a WordPress user (for example)?
We do NOT refer to him as a web "developer". He has no right to refer to himself as a "developer" or "programmer" because he has not wrestled through an antagonistic manual process to create complex textual source code. And that's what people are not understanding. The reason we don't call him a programmer is NOT because he didn't create an effective program or website. Its because the way he did it wasn't hard enough and doesn't match our outdated definition of what "programming" is.
To create a POPULAR system (among "real" "programmers") that makes programming more practical or easier using new paradigms, you must either redefine programming to include the possibility of new paradigms and a non-antagonistic process, or perhaps somehow trick programmers into thinking what they are doing is actually harder than it is. Maybe if there are a few places to type a command to generate source code, that will be sufficiently complex to still be considered "programming".
If you are too successful without doing those things then you will just have another tool that only "users" or "beginners" would ever admit to using.