I'm with you on the 'I'm glad someone is moving in this direction' vein, but to me the "Enemies of software development today" are much broader than you suggest. I am pretty strongly of the view that the fundamental line between 'developer' and 'user' (aka. 'programming' and 'program') needs to be broken down.
This sounds nice in theory but I don’t think it’s an interesting goal. I’ll go further: it’s been the goal all along but doesn’t have traction.
SQL was designed as a “business” language, for end users (what we now call information workers). Didn’t happen. There have been many promises of “visual” languages, just drag and drop components and you have an app.
The issue is not tools, but the fact that programming is a logical business. The best programmers are logicians – they have a robust mental model of a problem to be solved. The coding (and the tools) help, but they ain’t the thing.
Basically, being capable of manipulating Illustrator does not an artist make.
In fact, programming has been moving in the other direction: more people I know use Ruby on a command line than Visual Studio’s design surfaces.
The frontier is in end-user UI. Progress is when we allow users to be more ambiguous, less logical, and still give them what they want.
Thanks for the response. After your first sentence I was looking for something to disagree with. But actually I agree with you on pretty much every point you make here - I am just slightly unsure how this disagrees with what I said previously.
My guess (from your second last para. especially) is that you think I am advocating more 'dumbed down' high-level visual languages/ides/etc. which I really don't mean to - at least not like the ones of the past. To me these tend to really fail at what I want because they tend to: (1) have a very limited scope of functions (2) have pretty fixed interfaces which simplify certain tasks, but also make others much more complex than a simple command line or similar (3) not make it easy for you to transition to other environments [to learn something with different or lower-level functions].
To me, many of the subtleties of implementation (such as the points I just made above) often actually matter a lot more than the big words (like 'visual programming', 'IDE', 'UI' etc.) that are bandied about far more often.
I guess its my fault for trying to be terse. I think it is very difficult to discuss these things in message-board format because different words mean very different things to different people. In the end I think we are probably looking at the same goal from different directions.