The future of software development lies in algorithms that pull together objects, expert says
Though there haven't been any big leaps ahead in object-oriented languages for years, advances in software development will come from teamwork and collaboration, says Grady Booch, who's known as the father of object-oriented programming. "The developer's work is changing from working with an individual tool to developing as a team experience," he says, and resulting advances will lead to developers producing "algorithmic snippets of code" that manipulate existing objects and create new ones.
Booch first identified the underlying patterns of object-oriented coding and captured them as a set of notations and syntax. Rational Software, where he worked for 20 years, put his design approach into its modeling tools and built a methodology around them. IBM bought the company nearly two years ago and named Booch chief scientist of its Rational Software unit. His modeling approach has since been incorporated into Unified Modeling Language, a standard used in modeling tools from Borland, IBM, Sun Microsystems, and Telelogic.
"He's always played the software design iconoclast, trying to push people along," said John Rymer, an analyst at IT research firm Forrester Research.
Java, C++, and Microsoft's C# are the primary object-oriented languages. But with no major language breakthroughs in recent years, advances will come from new team development and collaborative capabilities of tools, such as a shared central-code repository, where co-developers can work on code together and programmers can freely comment on each other's work.
In addition to producing those algorithmic code snippets, there may be big gains in "building new languages for connecting systems to systems," Booch says. Aspect-oriented development is a harbinger of the potential of system-to-system communications, since it concentrates on designing an aspect of several programs--security, for example--in such a way that it can be built once and used by multiple running applications. System-to-system connectivity is a new level of abstraction, Rymer says. "That's something that Booch specializes in."
For now, Booch says he's "sidestepping modeling" issues and concentrating on a possible pattern-based approach to development. Even different systems sometimes share underlying patterns, and establishing the pattern through an automated system would speed development.
One of the few practical expressions of patterns is Java Blueprints, available at Sun's Java site. They show how a Java application can be built using best practices to interact with surrounding pieces of software. Patterns may be the next big thing, but it will take new insights, methodologies, and tools to capitalize on them.
We welcome your comments on this topic on our social media channels, or [contact us directly] with questions about the site.