Grady Booch, an IBM fellow and chief scientist at IBMs Rational division, also is one of the key inventors of the Unified Modeling Language (UML). Booch spoke with eWEEK senior writer Darryl K. Taft to discuss how Microsofts approach to modeling could impact UML, an industry standard for modeling.
Particularly, Booch sought to address Microsoft chairman and chief software architect Bill Gates comments in eWEEK regarding modeling in a recent interview.
What are your basic thoughts on Microsofts adoption of modeling technology?
Ive been tracking what Bills been saying for some time, with his first announcement about modeling back at a Microsoft financial meeting about a year or so ago.
So, I was actually delighted to see he was coming even more upfront about it—because we, like he, absolutely agree that modeling is becoming more important these days.
And were dealing with systems that are by and large heterogeneous, multiplatform, multilingual, distributed, secure, concurrent and incredibly complex—and our view of the world is that this notion of modeling is directly in the path of that.
What year was it that we did the VSLive thing with Bill? It would have been about two years ago, with the launch of Visual Studio .Net in San Francisco. So, modeling has been on our radar screen for some time. My first reaction to this was … well, somebody said to me, Gosh, this is going to create a schism [because Microsoft is taking a route other than UML].
And my view of the world was, no, Im delighted to see Microsoft recognizing that modeling is an important thing. Because we certainly have done so over the years, and therefore were delighted to see really all the major platform vendors stepping in.
Look at [Sun Microsystems Inc.s James] Gosling and his TopHat project, which is apparently trying to move in the same direction. Gosh, when you have all these players, it certainly indicates theres a sea change.
Now, we have different views of the world; no surprise there. Of course were solidly behind the notion of UML and its open standard. Whereas it appears that Microsoft has somewhat waffled on their position on it, although I think theyre coming these days as sort of clearly doing something other than UML—though youd have to certainly learn that from them.
If you look back on the history of our relationship with Microsoft, they actually were our first partner in the UML consortium. When Jim [Rumbaugh], Ivar [Jacobson] and I [the three fathers of UML] got together to form UML and what became UML, and we had gotten our work reasonably stable, we realized we needed to broaden the audience, so Microsoft was the first group we connected with.
And they actually made material contributions to the UML itself. The whole notion of interface and its semantics and its notations was directly out of the Microsoft work.
Now, for whatever reason—and youd have to ask them as to why they did this or not—but they were with the UML consortium literally until the day we submitted it, or thereabout the day, we submitted it to the OMG [Object Management Group] for standardization. Microsoft chose not to be a participant in it. But for the longest time, they were involved in the UML effort.
What indications do you see regarding Microsofts current view on UML?
Well, Bill said a few things about UML that I thought were a bit inaccurate. The notion of it being a complex metamodel and therefore the UML being complex … Well, goodness, if you open up the plumbing of any operating system or any technology, it looks pretty ugly from the outside.
And frankly, the metamodel of the UML is something thats part of the plumbing of the UML. So it is … I wouldnt call it complex; I would call it semantically rich. But thats important for tool builders, and the people who are actually users of the UML are ones who will never see that.
The value is that we as tool builders can do some excruciatingly interesting things with having such rich metamodels—the notion of being able to do refactoring, which is frankly easier to do in Eclipse than in other IDEs [integrated development environments] because there is a richer metamodel.
It makes it possible to automate the source of the transformations that go on. And if you move up to higher levels of abstraction, there are transformations that take patterns and allow you to inject them into the system.
In fact, even going beyond what I think Bill suggests, theres a shared vision—and I think there is one, although a different execution—is that theres this real confluence of things happening in this space.
Weve seen stability in our languages. So, weve had C# pop up on the horizon, but by and large its not like in the days of Java and Smalltalk or C++ that weve seen a real revolution in languages.
So, theres some stability there. The ground has shifted to where you think less so about building on top of the naked operating system and more so about building on top of the middleware.
Danny Sabbah, who is a chief architect of IBMs Software Group, suggested that the middleware is the operating system of the Internet. So, thats yet another shift.
So, what we see here is with these two things happening—the stability of languages and the shift to middleware—and the fact that people are building more and more complex things.
We see this confluence of modeling, patterns and even a little bit beyond that, the notion of aspects. Thats where we think this whole modeling thing is: the beginning of a long series of things that can help raise the level of abstraction.
So, you dont see a problem in there being, as you said, a shared vision but a different execution?
Well, I am disappointed, and would be disappointed if Microsoft were to choose to not pursue the UML path. It is the case that the broad industry has contributed thousands upon thousands of person hours to nail this standard, and it is indeed a very viable standard …
So, Im disappointed if Microsoft were to not choose to participate in that forum, because the last thing the world needs is yet another programming language, yet a modeling language or not.
Because you know, it even is beyond pure semantics of the language. One has to acknowledge that there is a whole ecosystem around it—the fact that there are multitudes of books and courses, and the UML has woven its way inside universities and even high school courses.
So, there is this ecosystem in supporting the UML as a standard, whereby people can begin to use it and appreciate it and actually know how to apply it.
Whereas if you apply yet another language that is not an open-standard language, well, you have the whole education issues around it that have to be dealt with. So, its disappointing.
So, do you feel that the things Microsoft is doing are its response to Rational and IBM?
Well, Im never going to try to second-guess whats in Microsofts mind, but Rational certainly now is the place inside IBM that owns the tools strategy. And for IBM, that means its not just the IDE, which is very important, its also about all the other lifecycle tools that surround it.
Software development is ultimately a team sport. So, we can focus upon getting faster compilers and all those kinds of things, but ultimately its about getting the stakeholders on the project to work together.
Especially if we look at the increased distribution of the terms in the presence of increased outsourcing, although were not going to dive into that one at the moment because thats a topic unto itself …
That means that, yeah, I need to deal with the individual developer experience, but Ive got to also deal with the team experience. Thats the strategy that Rational has been pursuing for some time.
And in fact, as a partner with Microsoft, thats a lot of what we supplied to their customers. But now that were part of IBM, I only have to believe that leaves a void in Microsofts strategy.
Who else do you see out there thats doing good stuff in the modeling area?
Well, if you look at the folks who are involved in the UML itself, were talking a whole host of small companies—all the large platform vendors have been players in it to some degree.
Borland [Software Corp.] is certainly playing in this space as well. Heavens, there are even some open-source projects for UML—Argo UML was perhaps one of the first ones. And you might think thats terrible for us.
But being a believer in open source as well, which I know annoys some of the folks in Redmond, I view it as actually a good thing because it represents a commoditization of parts of the marketplace and it forces us to keep adding value. And the fact that it is in the open-source community says to me, this stuff is absolutely pervasive.
Well, how deeply has UML actually penetrated?
Whats interesting is if you look at the penetration of the UML in those places, its not an all-or-nothing thing. The cool thing about UML is we really designed it to approach the needs of lots of different stakeholders.
So, although if you read the specification it looks horribly daunting, in practice what is happening—which is actually what we expected would happen and what should be happening—is different stakeholders are taking different pieces of it.
For example, I recently had a call with some people who are using the UML to describe deployment of systems. So, as I look at large enterprise systems, one of the questions you ask yourself is, what the heck are all the pieces I have deployed out there? And what versions are they? There are lots of ways to visualize that.
But the fact that you can visualize it in UML is interesting. Because it means then that I can take that same visualization and the same semantics that might be written by network engineers, who know nothing about programming, but that same language can then be understood by your security folks, who want to reason about those models as well, too.
So, what were seeing is—we see this especially in our model-driven development effort—that there are some specific points of pain that the UML is really adding value to, and deployment, business rules and patterns are three that come to mind.
But each one of those is not the whole UML, just a piece of UML. But the fact that theyre all using UML means you have a single, clear voice as a development experience. And development is noisy enough as it is, so whatever one can do to reduce that friction and have common languages certainly helps.
So, whats the bottom line with Microsoft now pledging support for modeling?
Its good to see this now on their radar screen. We thought its been mainstream for some time, but the fact that Microsoft is now acknowledging it has been very, very cool.