Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!know!zaphod.mps.ohio-state.edu!usc!apple!apple.com!susser From: susser@apple.com (Joshua Susser) Newsgroups: comp.object Subject: Re: the need for classes as objects Message-ID: <9959@goofy.Apple.COM> Date: 28 Aug 90 20:14:59 GMT References: <2259@esquire.UUCP> Sender: usenet@Apple.COM Organization: Apple Computer, Inc. (ATG) Lines: 31 When I was at Caltech in '84, Tzu-Mu Lin (one of Carver Mead's grad students) created a VLSI analysis tool (I think it used predicted signal delay times) in Smalltalk-80 as part of his thesis work. As I recall, he had a nice graphical tool for describing circuits. Once the circuits were specified, those descriptions were translated into Smalltalk code in the form of classes and methods. Since a VLSI circuit often has common circuit elements duplicated many times, using classes as the representation of behavior gave a lot of leverage. Since Smalltalk-80 supports creating classes dynamically, the user never had to leave and restart the system to include new changes. Another better known example is Alan Borning's ThingLab, also written in Smalltalk-80. ThingLab is a constraint-based graphics environment. It looks a bit like a MacDraw-type editor, but you can connect the various shapes through constraints. A typical example would be constraining a point to be the midpoint of a line segment P stretch the line, and the point moves as well. The types of objects were represented as Smalltalk classes, with methods for the various constraints, all added dynamically and incrementally. In both of these cases, using classes really paid off. Both of these systems allowed sharing of behavior, and classes provided a perfect mechanism for that. If Smalltalk-80 hadn't had the ability to create and use classes at runtime, both these systems would have had to implement a similar, special-purpose mechanism for managing that sharing. In such a case, the code would end up much more obtuse, be harder to understand and maintain, and would probably run slower. Joshua Susser, Object Percussionist Apple Computer, Advanced Technology Group inet: susser@apple.com | link: susser.j | phone: 408/974-6997