Over the past few months, Mike Floyd has immersed himself in object-oriented programming in its various guises, becoming our in-house expert on the subject in the process. Because this month's theme is object-oriented programming, it seems natural that Mike shares some of what he sees as the promise and the pitfalls of OOP. -- J.E.
Earlier this year, just prior to the release of Turbo Pascal 5.5, we asked Anders Hejlsberg, chief architect of Turbo Pascal, if Borland was going to follow the path of C++ and distinguish Object Pascal from structured Pascal: Was Borland adding to the product line with TOP (Turbo Object Pascal)? Anders' reply made perfect sense. "Adding objects to Turbo Pascal is simply the next step in the evolution of the language," he said. "From this moment on, Turbo Pascal is an object-oriented language."
So, is this what we can expect to see in terms of programming and programming languages over the coming decade? If not, what does the future of programming -- object-oriented or otherwise -- hold? (Trying to answer questions such as these is much like driving down the highway with your eyes fixed on the rearview mirror -- you spend more time worrying about where you've been without having a clue as to where you're going.)
Other questions come to mind too. Will C merge with C++ and become D? Although this seems a natural next step for C, there are many pressures that may keep it from happening, particularly the challenge of getting a standard through ANSI.
One big question is,"Where will the next set of development tools come from?" Programmers who have grown used to having sophisticated tools aren't willing to return to the dark ages that existed before development environments, debugging facilities, and library support. But for a number of reasons, OOP tools have been relatively slow forthcoming. Until these tools begin to emerge, many programmers will be reluctant to make the move to OOP. Traditionally, third-party vendors have filled the gap, but the lack of a standard or dominant environment and the past experience of putting out tools too early has made third-party developers gun shy. Indeed, market pressure from users and competing vendors may force some of the big guys to continually pack their class libraries with more bang for the buck, thereby limiting market opportunities for smaller tool developers even more.
Some of the burden falls on the shoulders of the individual programmer. After all, an object-oriented system is extensible. In Smalltalk, you don't write source code, you add components to the system. Likewise, languages such as C++ and Object Pascal encourage the programmer to weld homegrown components with canned objects to create new tools for the workbench. For the optimistic programmer, this is a time of Renaissance; for others, a time of chaos.
For those of us at DDJ, this month's issue is not just the last one of the year, but the last of the decade. It may be appropriate, then, that object-oriented programming is the theme that takes the next decade into the next century.
But, lest you think DDJ is adding to the object-oriented hype (OOH?), think again. One size fits all? We're not so sure. You may want to pay particular attention to Scott Guthery as he tries on the "Emperor's New Clothes." And OOP may not be the only bully on the block either, at least according to Ronald Fischer, who believes that Functional Programming may influence the way we program over the next decade. Ah, well. If nothing else, it'll be interesting to see what unravels in the rearview mirror over the next ten years.
Copyright © 1989, Dr. Dobb's Journal