Booch: I am a big fan of it but I don't think it is as revolutionary as it is evolutionary in that the economic, technical,
and business planets are starting to align right now to make grid reasonable. I remember back in my DOD (Department Of Defense)
days we were dealing with large distributed systems, which could be considered a grid, but by no means were we sophisticated
enough to deal with any of the autonomic stuff that is going on now. The basic problem now is this: As I build in the enterprise
space, it is getting hard just getting the business logic and the presentation logic right. So what we see happening in the
grid space is, we have virtualization of the problems that can focus square on with scalability. In the past, I had to worry
about those as an architect from the very beginning. But given where grid is now, it becomes more of an implementation issue
for me as an architect because now I can view the topology upon which I build as something that is scalable in a number of
dimensions without my architectural intervention. It feeds further into my mantra of raising levels of abstraction.
InfoWorld: Grid computing looks to be an important piece of IBM's On Demand initiative, technically speaking. What input are
you having there in terms of shaping and directing the overall effort?
Booch: I have had conversations with people really driving things there. I would not say I am nudging things in a different
direction, because these guys are absolutely on the right path. But from a patterns perspective what we are trying to catch
is, what are the architectural patterns that are emerging for us to be able to exploit on top of grids? Flatly, that community
has a number of one-off experiences of applying grids in certain places, and we are trying to harvest that experience to see
what we can learn about providing automation to it. I am not so much an influencer of what they are doing, as I am a respecter
of their work in trying to build on [it].
InfoWorld: What you mean when you say "solving complexity by raising the level of abstraction"?
Booch: Think of it this way. Imagine today building a Web-centric system but having to do it in Assembly language, which has
an impossible semantic gap. What has happened over the years is languages and tools that raise the level of abstraction from
worrying about individual Assembly language lines that drive the bare machine, up to the next level that says let's instead
deal with algorithmic abstractions. So now I can talk about variables and algorithms and the like. The object-oriented realm
said "Let's bring data and algorithms together into one thing called an object." That is what Java and C # and C++ are all
about. Each one of these things moves me further away from the bare hardware and actually allows me to express things where
once I had to expand them out and through the bare hardware by many orders of magnitude. This allows me as a human to start
addressing the problem further away from the machine and closer to the problem area. That is what moving up levels of abstractions
is all about. The whole history of software has been that. We see that especially in our languages for Assembly, to structured
languages like C, to object-oriented languages and who knows what is next.
InfoWorld: Is this progressing as rapidly as you would like, or more slowly?
Booch: It goes in fits and starts. If you look at the history of programming languages over the last three to four decades,
you have seen what the evolutionists would call "punctuated equilibrium." There would be periods of incredible innovation
and then points of stability. For example, in the early days of procedural languages there were languages like FRED and others
you never heard of, but the marketplace said, "Oh, let's bless things like Cobol, Fortran, and C." We saw the same miracle
happen with object-oriented languages. We counted upward of 100, maybe 200 languages with only a few surviving. Some of the
dominant ones now are Java, C++, and C to a lesser degree. We are currently in a period of reasonable equilibrium, but you
can see the furnace starting to heat up. And it is not the traditional languages doing so but instead XML, WSDL, and variants
of XML. So all of a sudden we can see in the non-traditional programming language space a whole flood of languages popping
up. We will see a period of equilibrium among them in a few years,
InfoWorld: With so much focus on Linux and open source code in general, what has impressed you the most in that space technically?
What do you think the biggest contributions to programming have been?