Boxer was created by Andrew diSessa.
Boxer is a highly interactive programming language specifically tailored to be easy for noncomputer specialists to learn. Boxer uses a box to represent a unit of information in the system. In Boxer, one box can contain other boxes, or data such as text or graphics. For example, a program is a box that contains some boxes that provide input and output variables, and other boxes that specify the bethavior. The system supports alternate views of some boxes: A box which specifies a graphics routine can also show that graphic display.
Since Boxer is a programming language, it treats cross-reference links in a special way. Rather than using mousable icons as links, Boxer uses a specialized box, called a "port," which gives a direct view into the destination. For example, a port from box A to box B appears within A as a box which shows B. But a port is more than just a view of the destination box, because the destination box can be changed through any of the ports which lead to it, and the changes will be reflected in all of these ports.
Hierarchy is more naturally expressed in Boxer than in many of the other hypertext systems. Boxes are nested within each other two-dimensionally, and are filtered to reduce the level of clutter on the screen. This sytem of representation has the advantage of showing a natural hierarchy of nodes: The windows of lower-level nodes are nested directly within their parents. In most hypertext systems, no attempt is made to display the parent-child relationship once the nodes are opened as windows. (Conklin, 1987)