Language Once Was Key—Now It's Design
Grady Booch, Rational Software's chief scientist and a pioneer in software modeling, tells you when you do—and don't—need to get into serious design, how to deal with the impedance mismatch between SQL and OOP, and more.
by Lee Thé
February 2003 Issue
Grady Booch, one of the fathers of OOP, has an impressive resume in the programming world. He's Rational Software's chief scientist, co-developer of the Unified Modeling Language (UML) and the Rational Rose analysis and development tool, and author of books such as the UML User Guide (with Ivar Jacobson and James Rumbaugh) and Object-Oriented Analysis and Design with Applications. He belongs to the Association for Computing Machinery (ACM), the Institute of Electrical and Electronics Engineers (IEEE), the American Association for the Advancement of Science (AAAS), and Computer Professionals for Social Responsibility (CPSR). Equally versed in .NET, Java, and Open Source, Grady is more than qualified to comment on .NET and enterprise development from a global perspective.
Q: It seems development platforms such as .NET and Java are going to dominate the world of programming for the foreseeable future. How this will influence (impact) the world of programming? Which are in your opinion the key benefits and limitations?
Booch: Let me step back. In the role I play at Rational I worry about the next three to five years. I have my eye on about seven or so technologies relative to the art and science of building software systems. One of the key ones on that list is the rise of platforms—both .NET and J2EE. Those are relevant because they raise the level of abstraction for developers. And indeed you can characterize the whole history of software engineering as that rise in level of abstraction.
As for .NET and Java "dominating" the world of programming … that's an emotionally laden word. Actually those platforms are irrelevant to lots of things in the programming space—mainly those that have no GUI, such as embedded applications and issues of integrating legacy headless applications. But .NET and Java are going to be dominant elsewhere, especially in the Web-centric space, which is the fastest growing and perhaps the most important one. The .NET and Java platforms are going to be dominant there because they address the key pain point of raising the level of abstraction. Companies such as Microsoft are encouraged by the whole marketplace and their business model to keep raising the tide for what its platform covers.
.NET and Java effectively mean you're no longer building on top of a bare operating system. They have codified a lot of the mechanisms you used to have to build, thereby decreasing the distance between the platforms and the actual application I have to deliver against.
Back to top
|