Technology Review has a great article about Charles Simonyi that can be found here. While it is a long read, it is well worth it. The article itself is a good history lesson on where we are as programmers and what work we have left to do.
Currently Simonyi is working on a project that deals with his idea of Intentional Software. It is a great idea, something that appears to be attainable. From the explanation in the article it is a way to generate DSL's that can communicate with each other and that can be created from a shared specification. So in many ways it is a DSL Factory.
Many months ago I was interested in Software Factories and DSLs and had done some research into them, listened to podcasts and what have you. One of the things that is surprisingly apparent is that we are not fully there yet with this form of automated software creation. The fact that we do not have software that can be specified and generated quickly without the need for a programmer to sit down and write some of the code still surprises me. We have code generators, and Microsoft has DSL tools, but both are not as complete as what Simonyi has plans for.
Whenever I was in highschool things seemed to be moving along nicely with software development. I felt that developers had made some major strides in making the development process easier. I was working with basic whenever I was in junior high, and then in highschool was doing C++ and then Visual Basic. With this progression I felt like things were getting easier and that by the time I graduated college we would probably have complete drag-n-drop programming or at least complete code generation. Side note: in highschool I created a code-generator for C++ that would allow the user to draw a picture in DOS with a mouse and basic geometric shapes then when they would save their image it would create the C++ code that could reproduce the image. While this drag-n-drop approach does not still appeal to me as the way to go, I am a bit surprised that more tools have not been created that automate more parts of software development. Which brings up a point that was made in the article about the Law of Leaky Abstractions. The fear of this law is what keeps many developers from adopting software factory type approaches.
Aside from this article there is a book out which I plan to pickup in the near future called Dreaming In Code. This book is supposed to explore some of the reasons why software is hard to create.
There is no doubt a lot of work to be done to make software creation easier, faster, and more stable. Perhaps with a little creativity and by standing on the shoulders of people like Simonyi we will soon get there.