eberard@ajpo.sei.cmu.edu (Edward Berard) (10/08/89)
Now that OOPSLA '89 is over, I think that it would be interesting to get some impressions of the conference from the attendees. Obviously, this will be of interest to those who could not attend, but there are other benefits as well. For example, even those who attended could not go to all the tutorials or all the sessions. Examples of what I am looking for include: - impressions of the tutorials (I think that there were 15 in all) - impressions of the sessions and panels - impressions of the "birds of a feather" sessions - opinions on the products and services offered by the exhibitors - over all impressions of the conference -- Ed Berard (301) 353-9652
foote@p.cs.uiuc.edu (10/12/89)
* OOPSLA '89 Impressions The intellectual Brigadoon that is OOPSLA has appeared and vanished once again. I feel like a python, engorged with ideas, and I will have to crawl under a bush and estivate for some time to digest them all. (To be honest, the food in New Orleans probably has something to do with this sense of engorgment too.) As always, the real marketplace of ideas was in the halls and lobbies. Comp.object could do far worse than server as a kind of electronic lobby where these sorts of discussions can continue. So in that spirit, here (in no particular order) is a discussion of some of the events and themes at OOPSLA '89 that made an impression on me. This list is, of course, partial, and highly subjective... * Dave Ungar and Ralph Johnson's Battle of New Orleans A spirited debate between Dave Ungar and Ralph Johnson over how to compile object-oriented programs to make them fast ran through a number of workshops, BOF sessions and panels. Johnson and Ungar offer very different, and perhaps ultimately complementary, approaches to the problem of how to narrow the relative performance gap between languages like Smalltalk or SELF and optimized C. Ungar's approach employs a technique called customization to retain source level typelessness while generating efficient code. Johnson's group uses explicit type declarations along with a type inference system to achieve the same end. This work raises the tantalizing prospect that we really can have our cake and eat it too. That is, that we can use pure object-oriented languages like SELF or Smalltalk without paying a draconian performance penalty. In keeping with OOPSLA tradition, perhaps the principals will have a Treaty of Ottawa prepared for consideration by the time OOPSLA/ECOOP '90 rolls around. They ran so fast that the hounds couldn't catch 'em... * The Emergence of CLOS Though CLOS (the Common Lisp Object System) has been in the works for several years, one got the sense that it took its place as a full member of the object-oriented pantheon this year. Since Common Lisp with CLOS is a hybrid object-oriented language, it retains the low level efficiency of compiled Common Lisp. Since CLOS is now part of Common Lisp, Common Lisp has now become the only DoD approved object-oriented programming language. CLOS may succeed in luring people who have avoided Common Lisp for whatever reasons into using it. I know it has had that effect in my case. Judging from the presentations at OOPSLA, the controversy over whether to pronounce CLOS as Klaus or C-LOSS seems to be being resolved in favor of C- LOSS (as in what the Spanish Armada suffered, or what one goes to Wrigley Field to do.) * Vox Populi The theme that there is a pressing need for realtime garbage collection and persistent object bases ran through an number of talks and sessions. * The Official ECOOP Joke The old joke about where a 500 pound gorilla goes when he's hungry ends with the punchline: Anywhere he wants. At ECOOP '89, Peter Deutch related, the joke was that C++ is the object-oriented world's 500 pound gorilla. C++'s dominance among object-oriented programmers in industry seems to be taken for granted now... * The Tortoise and the Hare There seems to be a pervasive fear that mediocre standards may entrench themselves before good ones have time to evolve. For example, one can make the case that arresting the evolution of network standards and settling on TCP/IP is a good thing since it gets us most of what we need now, at the expense of having to live with a complex, top-heavy design. What's more, networking is usually buried in the system in such a way so that we needn't be overly concerned with how it is internally structured. However the competion among libraries and frameworks that are highly visible to the programmer and intended as platforms for reuse may be another story. Deutsch raised the possibility that the battle for the role of defacto standard among utility class libraries, windowing systems, and high level frameworks would make disputes over what language is best pale by comparision. My hope is that object-oriented consumers won't commit themselves to mediocre standards prematurely. My fear is that they will have no choice. * Workshops Here, in keeping for Ed Berard's solicitation of reports on the various tutorials, panels and workshops, is a very quick set of impressions of the ones I was involved in... * Dave Ungar's Objects without Classes Workshop This workshop concluded that object-oriented langauges should get rid of classes and replace them with objects (prototype and trait) that are a lot like classes, only better. It's hard to argue that Ungar and Smith's SELF isn't the state-of-the-art in elegance and simplicity as far as object-oriented architecures go. Some of us tried anyway... * John Mason's Reusable Component Marketplace Workshop This workshop was structured as a discussion rather than a series of presentations, and managed to arrive at a concensus before it was over. It distinguished between reusable components and frameworks, and examined the problems involved in trying to peddle white or black box versions of either. We agreed that consultants working in restricted domains should have no trouble applying frameworks to the kinds of problems they face. We agreed as well that it would seem that the market for reusable components should be a large one, but that no one has demonstrated its viability as yet. There seemed to be a sense that the big $ lies outside the realm of programming tools and utilities. However, programming support niches should provide a comfortable living for a more than a few firms. There was agreement as well that documentation is of paramount importance, particularly when white box components or frameworks are sold. Hypertext and literate programming tools would seem to hold a lot of promise in addressing this need. Two participants pointed out that the lifecycle of object-oriented entities seems to be different from that of conventional ones, and that efforts to design for posterity up front seemed to be folly Initial designs should be thought of only as prototypes. It is only after a successful component has been reused several times that the internal structure of the emerging solution can be discerned. This is when the class hierarchy should be consoldated, and when truly reusable abstract classes emerge. * The Reflection and Metalevel Architecures BOF I haven't finished digesting this one yet. * The Single Most Impressive Thing at OOPSLA '89 I've developed a habit of asking people on the last day of the conference what the single most impressive thing they've seen (by any set of criteria they care to choose) is. This year I must have asked about 30 people this question. The answer I got about 70% of the time (I wish now I'd kept count): Ungar and Chamber's SELF stuff. This work was skillfully presented, and impressively demonstrated. A few of the other answers I got: Trygve Reenskaug's literate programming tools Smalltalk V/PM Peter Wegner's keynote address Ungar's workshop (Objects w/o Classes) Mason's workshop (Reusable component marketplace) The Can We Have Our Cake and Eat It Too Panel (Ungar/Johnson/Stemple/Moss) Beck and Cunningham's Paper My own picks: Single Most Impressive Thing I Saw at OOPSLA '89: 1) Bjorn Freeman-Benson's 20 story, four or five loop paper airplane flight through the Hyatt atrium into one of the elevator shafts. Runners up: 2) The SELF Stuff 3) Georg Heeg's X Server in Smalltalk-80 Favorite papers: 1) Ferber: Reflection in Class-based O**2 languages 2) Tomlinson/Singh: Enable Sets 3) Maloney/Freeman-Benson/Borning: Thinglab revisited Brian Foote Dept. of Computer Science University of Illinois at Urbana-Champaign foote@cs.uiuc.edu