I'm a UX / visual design guy very interested in learning to program, have been for several years. But it's just not approachable beyond stuff like CodeAcademy, as it quickly becomes a labyrinth of documentation, cryptic instructions, and unclear ways to approach building a worthwhile program.
I digress, as that's not my point. Point is, many visual editors, even Quartz Composer, fail on the same area; they aren't approachable beyond tinkering with the switches and buttons. UX isn't even a passing thought on these tools. I would love to participate in building one of these tools and learning X language in the process. Until a visual designer is involved, these tools will continue being relegated to tiny niches unless a visionary developer comes along (-and actually completes the thing, as was mentioned above about the LightTable Chris guy).
I'm not saying design is _the_ answer, but all the best tools have been co-created with a visual/ mechanical/ industrial/ designer of some kind.
Design is absolutely critical when it comes to helping people understand complex systems. Well-designed tools work with the human brain to mitigate cognitive load, allowing the user to focus on making stuff happen rather than on juggling handfuls of information. Few programming tools, experimental or mainstream, fit this description; even fewer have anything like it in mind.
Successful efforts to make programming less opaque and more accessible will necessarily involve massive leaps forward in design. I'm glad to see design beginning to make some inroads into programming culture, but we've got a long way to go yet considering how frequently the Unix CLI is still held up as the state of the art.
That said, I'm still of the opinion that programmer culture at large is too quick to disregard design. I'd really like to see more programming tools for general use developed with an eye to design, and for more industry and hobbyist programmers to realize that the current baseline state of existence is not an absolute maximum but a local one. We've pushed plain text pretty far, but it seems obvious to me that there's much bigger wins to be had if we throw out some of the assumptions our culture tends to make.
Actually, we need a visual designer who is also versed in programmer experience (rather than end-user experience) design, and I haven't found anybody like that yet. A UX designer is not some magical person who can magically do design in any domain; even HCI researchers are not a panacea [2]. Also, designs, even by seasoned designers well versed in the domain they are working in, are never perfect, there are always trade offs to be made.
Nothing is ever finished, we only get closer to our goals that are infinitely away.
[1] http://research.microsoft.com/en-us/projects/liveprogramming...
[2] http://faculty.washington.edu/ajko/talks/CHI2006Barista.pdf
With expert systems you work blind half the time, because of the size, that you can't get all into scope. So you simplify and make abstractions, but it's complicated to map multidimensional decision space onto 2d. Therefore a good visual programming environment would have to be a complicated system, that, well, you'd have to learn to navigate and memorize.
Don't know what you mean, how to _incrementally_ add or reset a button, like Undo/Redo?