Uml As Programming Language

28 May 2003

One of three UmlModes

If you can detail the UML enough, and provide semantics for everything you need in software, you can make the UML be your programming language. Tools can take the UML diagrams you draw and compile them into executable code.

The promise of this is that UML is a higher level language and thus more productive than current programming languages.

The question, of course, is whether this promise is true. I don't believe that graphical programming will succeed just because it's graphical. Indeed I've seen (and worked with) several graphical programming environments that failed - primarily because it was slower to use than writing code. (Compare coding an algorithm to drawing a flow chart for it). Furthermore even if UML is more productive than programming languages it's hard for programming languages to become accepted. Most people I know don't program for a living in the language they consider to be the most productive. Languages need a lot of things to come together for them to succeed.

Proponents of UML as a programming language often seem to fall victim to the PlatformIndependentMalapropism. While this doesn't invalidate the idea, it concerns me that they believe it. Using the UML and MDA is a platform, and you are just as much committed to it as any other platform.