Daily Archives: March 24, 2004

Graphically Yours

Many people look toward graphic arts, line drawings, boxes, circles and arrows to find the future of software.
But I can’t really see it.
Software has been language based since the beginning. Proposing that in the future, software will be written using UML and MDA is, to me, like saying books will be written entirely with pictures.
Ok, so some books are entirely pictoral, and icons are important if not critical to human life as we know it. But I can’t really see how it’s possible to impart real knowledge without using language. Or create precise enough computer instructions.
I can’t see that the drawing approach will really work. I don’t know of any graphical software development tool that has yet to address the entire lifecycle; or that generates code of sufficient quality.
I think it’s just a problem that isn’t meant to be solved.
Software is how humans tell computers what to do. During the past forty years or so one measure of the advancement in software is the level of abstraction at which humans are able to tell computers what to do. Assembler is higher level than machine language; COBOL is higher level than assembler, and so on.
The industry got kind of stuck on the “fourth generation” language problem during the late 80s, and I don’t think you could say anything really succeeded (unless you count Visual Basic, which I don’t, since it has so many purely language based extensions to the original form-based 4GL idea).
Now what we have is XML, which is certainly operating at a higher level of abstraction since it has to be parsed and interpreted, and executed by some other (arbitrary) language. Thus XML (and Web services, of course 😉 is truly language independent, and a major step forward.
In my view of the world, XML (and Web services) has a much better chance of solving the next level abstraction problem than UML or MDA.
(And no, I don’t think either UML or MDA is very well suited to using for Web services, either. Class diagrams are just not the right metaphor, since Web services are not object-oriented, and the interaction diagrams aren’t rich enough. Never mind the fact it doesn’t make sense to use diagrams to create software in the first place 😉