If you asked ten longtime Byte readers to name the magazine's best issue, chances are that nine of them would recall "the Smalltalk issue," the seminal August '81 edition with a magical Robert Tinney cover featuring the word "Smalltalk" emblazoned across a hot-air balloon.
What's historic about that particular issue was that it introduced the Smalltalk language and the notion of object orientedness to a generation of programmers. At that time, the Smalltalk-80 system was (in the words of then Byte editor Chris Morgan) "the culmination of ten years of research by the Xerox Learning Research Group located at the Xerox Palo Alto Research Center (PARC)." With articles by pioneers of the caliber of Adele Goldberg, Larry Tesler, Peter Deutsch, Dan Ingalls, and others, the issue said just about all there was to say about Smalltalk.
Unfortunately, Smalltalk never fully achieved the success and acceptance its designers envisioned. Yet the concept of object-oriented programming is clearly in the mainstream, particularly as embodied in C++ (which itself is over ten years old). But just as clearly, languages such as C++ and Smalltalk don't solve every programming problem and, in the coming years, will therefore be pushed aside by programming languages which better address the challenges of the day.
What will be the nature of the languages which will define the programming tools and techniques you'll be using in the next century? Will they be visual? Object oriented? Will they be integrated into a system as with Smalltalk or Oberon? Will they be bigger than a bread box (like C++), or small enough to fit into a PDA (like Dylan)? Unless your crystal ball has higher resolution and greater bandwidth than most, you're not likely to find out the answers in the near future. At best, you can observe trends and make guesses based on some of the lesser-hyped programming languages on the horizon--like those languages discussed in this special issue of Dr. Dobb's Journal.
What do forward-looking languages such as Dylan, Sather, Oberon, Bob, and Parasol have in common? For one thing, they're almost all object oriented. For another, these alternative programming languages tend to be more specialized than general-purpose languages such as C or C++. Parasol, for instance, is designed for parallel systems; Tcl, as a command or macro language for making applications programmable; Perl, for network system administration; and Sather, for numerical programming. Finally, alternative languages can be hard to find. In most cases, you have to grab them off the Internet or BBSs, although it's becoming increasingly common to find them collected on CD-ROM libraries. Programming languages are, as Bob Jervis (creator of Parasol) says in this issue, a manifesto of what their creators see as good and bad in programming. This was certainly the case when Xerox PARC researchers set out to design Smalltalk. It's no less so today. In each of the languages described here, the designers identified a problem, recognized that conventional approaches didn't address the problem, then came up with solutions that adapted the good and discarded the bad.
Twenty years from now, a new generation of programmers will be using tools and developing applications we can only imagine. But just as today's tools grew from programming languages of a quarter century ago, those tools may have their roots in one or more of the alternative languages described in these pages.
Jonathan Erickson
Editor-in-chief
Copyright © 1994, Dr. Dobb's Journal