Booch: Good question. I can't give you a technical answer or an emotional one -- and believe me there are some that are far more emotional than me on this issue. But I can give you an economic one. The economic argument says that in a number of dimensions, open source was absolutely inevitable because it represents the maturation of our business. There are some things that become commodities because they become so pervasive and there is then no economic incentive to innovate in that space any more. But there is actually value in making the marketplace larger by raising the level of abstraction for us to all agree upon a common platform. That is what is happening in the tooling space and in the platform space. We see a commoditization today of operating systems because we have a large body of knowledge around what an OS is and so it becomes hard to innovate within that space. So the battleground has moved from operating systems to middleware. I expect, however, that middleware will become a commodity over time. That will put lots of pressure on IBM but, at the same time and from a capitalistic viewpoint, this is great stuff because it means that with the eroding of the lower end of the marketplace, it forces those who want to be vibrant in the marketplace to continue to innovate and raise the bar and value.
InfoWorld: What do you see as the future of middleware? Is it an endangered species, not just through commoditization but through the competitive efforts of Sun and Microsoft, who say it has little value to corporate shops?
Booch: From IBM's perspective, middleware represents another virtualization of the machines as well as the pervasive devices upon which we build. In many ways the middleware is more important than the operating system, which is becoming increasingly commoditized. It is the middleware that provides the developer environment, and not so much the operating system. Again, [it] has to do with raising the level of abstraction.
InfoWorld: With so much attention paid to lower and mid-range-environments, is there anything interesting going on in large systems programming right now?
Booch: There is some really interesting stuff to be learned from the deep computing community. These are the really computationally intense massive tera grid things for predicting weather and doing simulations on a massive scale. It is a relatively small community, but in a number of ways it is telegraphing the issues that the global enterprise is starting to address. This is why I am so interested in the whole patterns space because this is a community that I am engaging with to see what I can learn about those patterns that we can apply to large enterprise systems. Things like how do I deal with tens of thousands -- if not hundreds of thousands -- of devices all collaborating with one another? How do I program those things? Service-oriented architectures represent another piece of this punctuated equilibrium, if you will, for how to address that level of complexity. We are in the very early stages. We do not have a lot of best practices for how one builds truly service-oriented architectures.
InfoWorld: How about starting with Web services?
Booch: Precisely. You start with Web services and you start with good solid object-oriented architectures. Why? Because the fundamentals of engineering like good abstractions, good separation of concerns never go out of style. Just because we have yet another set of protocols does not mean those things get thrown away.
InfoWorld: Good blocking and tackling.
Booch. Yes. It all goes back to the fundamentals. Despite what the latest statistics say, good engineering is always in style.