Channel programs News

CRN Interview: Grady Booch, IBM Fellow, IBM Rational Software

Elizabeth Montalbano
Grady Booch, a co-founder of Rational Software, IBM fellow and widely respected authority on software development, met with CRN Senior Editor Elizabeth Montalbano after his keynote last week at EclipseCon in Anaheim, Calif. Their conversation covered a wide variety of topics, including his liaison activities between IBM Research and Rational, his efforts with the Computer History Museum to save source code of important software, and Eclipse's long-term influence in the software development industry. Below is an excerpt of that interview.

CRN: In your keynote, you stressed the complexity of software development and how that has to change. How does IBM Rational fit into this, especially since the breadth of software at IBM seems infinitely complex?

Booch: Rational owns the mission of being the development organization of IBM. Outward-facing, we own the tools problem. That's why Lee [Nackman, Rational's CTO] and 400 of his closest friends joined us [from the IBM WebSphere development group]. So that it really unifies the mission of taking Rational's life-cycle tools and processes and now bolting it together with the development environment. We had a long history prior to the acquisition of working with IBM on their tools strategy, and Microsoft for that matter. We still are a Platinum partner with Microsoft; we care very much about tooling. The nice thing about being inside IBM and owning this mission is that we can get a lot closer to the WebSphere platform. So we do things in our tools to make it easier to leverage the WebSphere platform [while] at the same time not neglecting the .Net space, because that's still an important space for IBM.

The cool thing is, if you look at the trends that I talked about here, Rational is well-poised to bring all the pieces together. We're investing in the whole patterns space; we're investing in the aspect-oriented development space. Not to say that it's going to impact developers tomorrow, but we think these are things that will impact developers over time and we'll continue to invest there.

One of the roles I play is I manage our liaison with IBM Research. I feel like a kid in a candy store because prior to Rational's acquisition, IBM had no place to sort of drop their tools research, and now they do. Frankly, it's a secret weapon for us because now we can invest in longer-term things, and that's all very cool.

CRN: Can you talk about some of those technologies and how they may fit into IBM's software and tools products?

Booch: In terms of the trends that we see in the technology, I'll mention three of them--collaboration, aspect-oriented programming and patterns. [In terms of] collaborative development environments, we're funding a research effort to look at issues of presence and virtualizations of teams [called Jazz] as a plug-in to Eclipse. It addresses the human side of software development. Where SourceForge has gone is very cool because it represents providing tooling to help unify team members who are geographically and temporally dispersed. So the Jazz project is one place. It was an effort within IBM Research prior to [IBM's purchase of Rational], but we see a path to bolt this together with deliverables. Where the path is right now is it has become an Eclipse plug-in. That's collaboration.

The second phase is in the area of aspects. Gregor Kiczales is the father behind aspect-oriented programming, the inventor of AspectJ, [an aspect-oriented extension of Java]. The AspectJ team, having blown apart from Xerox, now lives within [IBM] Hursley Laboratories in the U.K.

Building distributed, concurrent and secure systems is not a core competency of the average developer, the reason being is that I can establish global policies for security, for example, that have local manifestations. So I've got to write lines of code in an individual method that carry out that policy. The problem therein is that I can make simple changes locally that have vast changes to global policy and I as a developer who may not have the insight to those policies, can really mess it up. The idea of aspects says, let's take those concerns--those set of things we worry about from one stakeholder's perspective, like a security officer if you will--and put those together as one thing, and now apply tools that really thread that through my system. The wicked problem associated with it is it's a cross-cutting concern because those policies spread themselves out through many different parts of the system, and yet I treat it as a whole. The idea of aspects says, 'Let's figure out how to write the semantics of these global things and figure out a way to apply tools that spread those through the system.'

There were three major players in that space--Gregor at Xerox, IBM at the Hursley Labs and a guy named Charles Simonyi. The first two have really kind of joined forces. Gregor is not really at IBM, but the AspectJ team is with us. Charles Simonyi the guy who wrote [Microsoft] Word--he was employee No. 14 at Microsoft. The remains of the AspectJ team have been picked up by the crew out of the IBM Hursley Labs. So AspectJ continues to live within IBM, even though it split off from Xerox.

If you want to read more about patterns, go visit; it's the Hillside Group, of which I'm a founding member. It's a group of us geeks that have banded together to promote the notion of patterns. The classic book in this space is by the so-called Gang of Four called "Design Patterns"-- Erich Gamma, John Vlissides, also of IBM, Richard Helm and Ralph Johnson. In my opinion, it's the most important development and software theory in the last decade because it gives us a language for describing sets of classes that work together. It is a way to name the common designs we see over and over again. It's solving common problems in common ways, but what's cool about it is it's at a level above the programming language. What's happening is, we've got a platform today--J2, .Net, you name it, and they're very complex. Everyone agrees--even the platform vendors would say so. But the platforms are here and what we have to deliver is here and there's a big gap between them, not just a code gap but a semantic gap. The way you bridge that gap is not by building directly against middleware but building patterns on top of them, so in a sense it becomes a domain-specific language against which I built.

CRN: How would you say Eclipse lends itself to the evolutionary change to more collaborative development environments that you spoke of [in your keynote]?

Booch: Eclipse represents the 'commoditization' of tools just like we see Linux representing the 'commoditization' of operating systems. In a number of ways, these advances are inevitable because of the economics of the marketplace. That's why Linux exists.

What Eclipse represents is the 'commoditization' of the tools marketplace [because] we're at a point in time where we sort of know the basic tools that we need. Especially starting with Java, there's an opportunity for us to build a set of tools that everyone can use, in effect making the market bigger. What I'm very jazzed to see is Eclipse not just becoming a Java development environment but the opportunities for [Eclipse] becoming an environment for a variety of tools. The fact that it is so extensible creates the base for the next set of things. There's so much in Eclipse that is exposed to allow a whole other generation of folks to start building plug-ins that meet the needs of specific stakeholders. What's driving this generation of IDEs is that it's no longer just code warriors [using them], we have all these other folks, too. And it doesn't make sense to keep reinventing the basic stuff. Because these stakeholders have to communicate with one another, having a basis against which they can have a common developer experience, share artifacts, share tools against it, means it's now possible to do that kind of specialization. And we couldn't have done that before. We just weren't in a place to do that.

CRN: How do you see something like Eclipse affecting the business of application development and software tools?

Booch: In the past few years, tools have not been a profit item for IBM, they've been something that drags along the platform. Rational has proven that there is a viable tools business. The nice thing with Eclipse is we can start on something we don't have to create ourselves. So we're benefiting from the experience of that world. If you think about the problem that Rational tries to solve in our marketplace, it's not the needs of the individual developer, but the needs of teams of folks that work together and so in that sense, we're well-poised to build upon what IBM offers.

CRN: What about other companies purely in the tools business, like a Borland? What's it going to mean to a company like that?

Booch: After the acquisition of Rational by IBM, Borland became sort of the last life-cycle tools company, and I wish them well, because I think there's still very much a viable market there. I don't think it's an issue of market, but I think it's an issue of execution. Not to say that they haven't executed, but I think that's the challenge for them. If you look in specific places like deep computing or the game market and things like that, there is tremendous opportunity for innovation because those are all fragmented marketplaces. The enterprise space for tools is a little different because it's a much more mature market. In the other kinds of tools marketplace, the barriers for entry are actually much lower because people can go off and build upon Eclipse. I'm excited to see the Dreamweaver folks--the Macromedia folks--here [at EclipseCon]. I can't speak for them, but the fact that they're playing with Eclipse indicates to me they're looking in the right place. They're seeing which way the winds are blowing.

CRN: Do you think there will be some consolidation in the tools market because of Eclipse?

Booch: Absolutely. Such is the way of capitalism. But at the same time, it creates a place for specific tools vendors to plug in. [Say] you buy the performance tool, the bug-tracking tool for a specific market that does some really cool things in a certain way. Now I can cast my work upon the star of Eclipse because it provides a larger base than I could've individually. I've been encouraging the game community in particular to pick up on Eclipse because that's an area that's very, very fragmented. So opportunities for innovation, building upon Eclipse--I think it reduces the barriers to entering for those folks.

CRN: How has IBM's investment in Eclipse benefited IBM now and in the future?

Booch: This is Rational's mission. The Eclipse organization is independent and I'm excited that it is truly an independent organization because the influence of WebSphere on it will be increasingly less over time, which it should be. But at the same moment, Rational's mission is now to drive the IBM software development platform, which means we take Eclipse and we bolt it closer to WebSphere, which we should do. But we benefit because we can build upon a base that we don't have to invent ourselves.

CRN: You posed this question to Red Hat CTO Michael Tiemann during his keynote, but I don't think we ever got an answer: Where do you see Eclipse one, three, five years from now?

Booch: In the next year, I would say we see Eclipse becoming a language for heterogeneous development. The first really good tools to support C and C++ will be there. That's going to be a state change. Next three years, the direction that Jazz is headed in terms of dealing with collaborative stuff, so Eclipse becoming more of a basis for the team as opposed to the code warrior. In five years, hard to see how the market is going to go, but one direction Eclipse could head where I see people talking about it is more of a base for application delivery as opposed to just development. Whether or not that happens would depend upon a number of butterfly effects and would be impossible to predict. But the one-year and three-year [predictions] I'm reasonably confident that I see those are the areas that Eclipse will absorb.

CRN: IBM has a huge investment in Java, but you made a comment in your keynote that Java isn't the last development language, though it might be [Sun Chairman and CEO] Scott McNealy's last development language. Was there anything behind that against Sun in light of the whole NetBeans vs. Eclipse controversy?

Booch: I don't think it should be an either/or kind of thing. The point I was making in kind of a throwaway line. I used to be a language bigot. I thought God intended for us to all use Ada. Then I realized she was wrong; she really meant Smalltalk. Then I realized, oh it's not Smalltalk, it's C++. And now it's Java. So if anything over the years I have realized that languages are important, but they're no longer the most important thing. We used to have this period of incredible language wars, and what I find still amusing is when people sort of weigh one language against the other.

The problems of software development are manifest in the languages but the problems don't live at the language level. So languages will come and go. Java is not the last language. And what we're seeing is a cacophony of domain-specific languages. Your average Web developer has to worry about HTML, XML, Java, WSDL--a whole host of languages you have to know, and I'll even add UML to that equation. To be an effective developer, one must be multilingual and Java is not the last language.

CRN: What's the average day in the life of Grady Booch?

Booch: I'm a designated free radical. I'll tell you an average day in the life. It's hard to generalize a day, but if I look at a whole week, I spend maybe a day and a half where I'm on phone calls with a variety of other groups. I have a weekly research call, where I work with the research labs within IBM. I have a weekly call with our model-driven development folks. I have a semi-weekly call dealing with an IBM press activity going on. I have a weekly call with Lee on the CTO side- I continue to play with the whole strategy side. Those are the daily hygienic things that I do, the daily flossing. There are three projects that I'm doing that catch the rhythms of the rest of what I do. The first of these on the pattern sides, working with a gentleman by the name of Jonathan Adams at IBM, who worked on a thing called IBM's patterns on e-business to develop a business model for patterns.

The second is a little bit of a retrospective project spending time with the Computer History Museum [in Mountain View, Calif.] on the preservation of classic software. This is a cool story unto itself. The idea here is we're here at a time where our industry has created such cool stuff and yet it's going to be lost to time if we don't preserve it now. So we're actually on an effort to preserve the source code to a variety of classic systems, like Word or Smalltalk, so 50 years from now people will have the source code.

And then the project that is consuming most of my time is developing a handbook of software architecture. This is a five-year project for me. If you look at civil engineering or mechanical engineering, the way that people learn in those industries is they look at existing systems; they study architectures. In software, we don't have such a study. No one has codified those things. So I've selected 100 systems, of which Eclipse is one, in which my intent is to document its architecture, so that we can describe it and I can do comparative studies. I'm looking at things like the architecture of Word, the architecture of the New York Stock Exchange trading system, the architecture of the Prism 1000, which is a shotgun sequencing system that did the human DNA decoding. So the idea is to really get a spectrum of software systems and then provide a body of knowledge for how we make these architectures.

And lastly, in the week of the life of a Grady, I probably spend 10 percent of my time as a mentor. So there are people I'll guide along, there are various university folks I work with. I have a cadre of 100 of folks that I work with on a weekly basis around the world that I sort of say, 'Hey, let's nudge you in this direction,' or I'll learn from them. That's what I do with my time. And occasionally I sleep.

Sponsored Post