Can we come up with something better than UML?
Today I stumbled upon this article, taking a side on the problems that UML has and how a better modelling language should look like. I agree with the author of the article on some of the points expressed, but, besides the requirements that the MDD community has on the language itself, I think UML does a pretty good job for the rest of the (let’s say, more common) cases where the modelling concepts are used.
UML provides a set of notation guidelines that form the base for any kind of architectural or design discussion. Sure, the specs of UML is quite large, and trying to read everything from cover to cover is a daunting task. But all this information is required only for the cases that are covering the entire field of models that need to be created. However, in many cases only a subset of the diagrams is required, and even for those diagrams, only a part of the notations is used.

UML diagrams from Wikipedia
Moreover, I think UML should be considered as a set of notation proposals, something to give a common base of notations and conventions for you and your team. Whenever a requirement is encountered for expressing something in a model, I think the UML specs should not stand in the way of expressivity and creativity. If a circle next to that class notation is the most appropriate way for you and your team to express something, go for it. If a blue background is the most suitable way for expressing that component or that subset, then go for it.
Therefore, can we invent something better than UML? Well, of course. We can always improve something. For the MDD requirements, I think, this improvement is fairly easy to do because you have features that you can think of and strong requirements to fulfill (and the article that I mentioned at the beginning of this post presents the situation quite well) but for the rest of the people who are using UML such an improvement is not something easy to do. Because you might end in just changing the notations from the UML spec to something new (from rectangles as notations for classes, you might come up with circles for classes, from straight arrow for inheritance you might propose dash S-curved line – but this is no improvement).
What really needs to be improved in the land of UML, I think, is the tools support and the integration with the IDE. For example, one good free UML tool is Astah UML Community Edition, but it has no support for integration in your IDE of choice. I personally like to have everything inside the IDE, so that I don’t have to switch from one program to another in order to get a different view of the system that I am developing (although if you consider working with 2 monitors, this is actually an advantage
but that is a different topic). What I want is a good support provided by the IDE for the 3-4 most used diagram types, including reverse engineering and flexibility in designing my diagrams.