*sigh* more Microsoft security updates -- been installing for over an hour now.
On JOS someone (Arethuza) posted a very illuminating article -- basically saying that the only real design artifact in software is the source code.
It's funny but from that perspective (source code is design) it becomes clear that one of the most important features of a language is readability and simplicity.
Perhaps what we need is a hierarchical language, where a high-level version can only specify certain constraints (much like an UML diagram does) and can be converted automatically into a visual syntax (this would automate generation of diagrammed design documents).
Later layers of implementation would allow the iterative design to be tested in greater detail, and the final layer would result in a working program.
You can do this to a certain extent in C++ - i.e. create a UML diagram, forward engineer it into C++ stubs, hand-off the stubs to a team of programmers -- but I would like something that is seamlessly integrated as part of the language.