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.
[Interop ITX 2017] State Of DevOps ReportThe DevOps movement brings application development and infrastructure operations together to increase efficiency and deploy applications more quickly. But embracing DevOps means making significant cultural, organizational, and technological changes. This research report will examine how and why IT organizations are adopting DevOps methodologies, the effects on their staff and processes, and the tools they are utilizing for the best results.
Digital Transformation Myths & TruthsTransformation is on every IT organization's to-do list, but effectively transforming IT means a major shift in technology as well as business models and culture. In this IT Trend Report, we examine some of the misconceptions of digital transformation and look at steps you can take to succeed technically and culturally.