One of the things I want to get into in this blog is the quality/usefullness of UML for (certain) modelling purposes.
One of the things that we all seem to discover when working with UML is that it has so little semantics that you end up defining a lot of it for each project you do. One could argue this is a powerfull feature, I think it is a weakness. It makes an argument for DSL. This could lead us straight to a discussion of Generative Programming vs MDA, it is way too early for that, first I need to get some other stuff of my chest.
One of the things that strikes me is the similarity between Java and UML. It probably isn't a coincidence that they grew up together in the mid nineties. The fact that a lot of tools that offer UML combined with coding facilities offer at least Java as a coding/generated language makes for a bias of course. The fact that both have interfaces and classes, and the same basic types (more about that in a later blog entry) might be an indication. OK UML supports multiple inheritence and C++ also has these basic types. So maybe it's more accurate to state that C++ and Java together fathered the UML syntax. Not surprising because in the mid eighties the race wasn't run. It could have been won by C++ just as easily (at least that was the general opinion then, which noone will now admit to ever having of course...). However the point I'm trying to make is not so much where UML came from but that it seems to be lagging behind on even Java and C++ today, never mind other developments (Ruby, AOP, metaprogramming, ... interestingly these have been around longer or about as long as Java and UML).
Is it wise to specify in a language that seems to have missed a great deal of the important inovations that happen around us today in the wold of software devolpment?