Hot Draw

Kent Beck and I had created a number of barely adequate editors using the graphic capabilities buit into Smalltalk-80. We wanted more. Eventually we set out to build an extensible editor. We included double-buffering which looked great. We declared it HOT.

Kent made the elementary abstractions in an afternoon. Drawing, Figure, Tool, Handle.

I suggested a refinement, GroupFigure, which broke his integer arithmetic before the day was over. He went home unhappy but we distributed rounds in all the right places and had it working smoothly again the next day.

I was already doing Animation with Captured Gestures using an editor with a sophisticated notion of Groups. I was eager to group interesting figures, not just the reversing rectangles that I used in my animation software.

Kent and I had built the Diagramming Debugger out of parts. The first application we built out of HotDraw as the simpler Diagramming Inspector. Like the debugger, the inspector used physical locations in the diagram to represent object identity.

We wrote about both programs in our CASE 87 paper, Expanding the Role of Tools in a Literate Programming Environment paper