When I first learned I’d have the opportunity to speak with the brilliant Grady Booch about the future of application development, I thought it a contradiction. For you kids new to development, Booch is perhaps best known for working with Ivar Jacobson and James Rumbaugh at Rational Software in the mid-1990s to create the Unified Modeling Language for software development, an industry standard. He has also written books on object-oriented programming, and some of the methodologies he created have been built into the Rational Unified Process. Rational was acquired by IBM in 2003.
Much has changed in software development since that seminal work, and not surprisingly, Booch has changed along with them and has a lot of opinions about the state of things today.
(Related: HTML5 takes a hit in the shifting software landscape)
“I’m very proud of the UML. It was the right technology at the right time,” he told me on a recent visit to IBM Watson headquarters in Manhattan (though Booch was phoning in from Hawaii, where he resides). “We were at the cusp of the Internet, when things were changing from algorithmic languages to object-oriented languages, and the industry was building large, software-intensive systems.”
As we have come to learn, many of those systems were islands unto themselves, which led to the development of platforms that could bridge disparate systems. That, Booch said, is where we saw the rise of “domain-specific architectures, levels of abstraction above the operating system. There were fierce debates in that space. Now we see a technological push and an economic pull to grow domain-specific architectures, such as those at Facebook, Amazon and Twitter. And there’s AutoCzar [now Verifaya], a common architecture for in-car electronics. There is an economic interest in a common architecture.”
Booch noted that in the 30-plus years since he became chief scientist at Rational Software, the way software is created has changed dramatically. He discussed new methodologies, the rise of the non-professional programmer, and building cognitive systems that rely on machine learning—the area in which he is now working as an IBM Fellow.
“Rational in its time was a billion-dollar company, and now it’s in a corner of IBM,” Booch said. “Tooling is now just part of the atmosphere, not the primary discussion.”
Today’s developers have much more to consider than those building the big monolithic systems of the past, and Booch identified cloud services and the Internet of Things as areas in which developers face new challenges.
The growth of the Internet of Things is being fueled first and foremost by smartphones. “This poses tremendous challenges for developers. The use and presence…[of phones and the applications on them] exposes security issues we could not have foreseen” years ago, he said. “How do we build these things and preserve privacy and security?”
Much like back in the day, when male high school students went to shop class to learn how to fix a lamp or do some basic automotive work, in today’s digital world, organizations want someone in-house who can fix things. But some companies, like Apple, are building fortresses: It doesn’t want developers to be able to get in and fix a problem; it wants you to buy new devices. Similarly, Booch said, in the past, “gearheads” could play with their cars to improve performance, such as by boring out the pistons. Today, it’s done by tweaking software.
“There’s so much a developer has to know today,” he said. “The half-life of knowledge is mind-bogglingly small.”
Languages, he said, are less important than frameworks. “Today, people want to know if you know node, not C++,” he said. “People need to be experienced in domain-specific architectures.”
How do developers acquire those skills? Booch’s advice: “Contribute to things that are outside of your comfort level. Professional developers have to intentionally do things outside their day job. There’s a whole generation of 19-somethings with intelligence and experiences that are now the competition.”
With the cloud, Booch said, “people can take infrastructure and put it together with others in ways we haven’t seen yet.” The cloud offers “tremendous savings and simplicity” by effectively being another layer of abstraction.
Then there are his thoughts on artificial intelligence, non-professional programmers, and much more, which I’ll share in next month’s Industry Watch.