Twenty Reasons Why You Should Use Boxer (Instead of LOGO)

An old paper on boxer that I found while reviewing related work for a paper I'm writing, abstract:

Boxer was designed as a successor to Logo, with the same educational goals in mind. Whereas Logo has incrementally added features over the years, Boxer changes the
core computational structures of the language and environment. The aim is to make
learning easier and more rewarding, especially over the long term.

As an early graphical language, it is quite interesting. It is one of the first works I know of that dive into concreteness (they call naive realism):

Here, the idea is that the user of a computer system can pretend that what appears on the screen is the computer system. That is, you don’t need to do a lot of mental work interpreting an abstract presentation that relates only indirectly to the fact of the matter (as, for example, imagining something called a variable that is changed or accessed by commands). Instead, naive realism means that everything in the system must have a visual presentation that allows easy interaction with it, including creating it, changing it, moving it, and deleting it.

As well as one of the first languages to use spatial relationships in programming (the only other I know being...agent sheets):

Boxer uses space and spatial relations systematically to represent aspects of “abstract” computation. In particular, Boxer has a wonderfully transparent hierarchical structure of boxes inside of boxes that represents huge ranges of computational meanings.

But what I really like is this notion of pokability:

Logo has always, unfortunately, distinguished in one way or another the mode of creating procedures from the mode of executing cannot easily—or at all!—see the effects of a procedure at the same time that you look at its form. This makes learning by inspecting difficult; you have to flip back and forth between different areas to see a procedure and its effects. In addition, it rules out a mode of learning by interacting with pieces of code, which is very powerful and characteristic of Boxer. For example, if you look at a line of code in Boxer and wonder what it will do, you can just double-click on that line, and it will be executed. This also turns out to be an extremely powerful debugging technique. If something goes wrong, you can just step through the process by executing one line at a time. That is, the inherent inspectabiliy of Boxer is extended with “pokability.”

And so on....

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


What happened to Boxer? Is it available to try out? The page only lists a Macintosh version. (How hard is it to simulate a Mac on current hardware?)

PL historians and archeologists

There must be a way to run PowerPC apps since support was discontinued only so long ago. The big block here would be Apple (how to license OS 9 for a virtual machine?).

But this brings up a more pressing point: we should really try to make sure that these old programming environments are easy to obtain and use, if just for historical reasons. One of my colleagues just spent a few weeks porting an old Pascal environment to WinRT :) It is kind of weird writing related work about programming environments I've never used and will practically never get a chance to use (e.g. Alice Pascal).

The first step maybe is to make sure they have appropriate open source license and then have the source archived somewhere.

Virtual machines to the

Virtual machines to the rescue! (And pressure to release ;-))

Unfortunately even the Mac

Unfortunately even the Mac download link is broken.

Found a time-limited trial version for Windows, though:

And there's some more PDFs that might be interesting here:


It seems to be commercialised by a company called PyxiSystems. A trial windows version can be found at in the products section. Fully functional, but time limited to 30 days.

some docs

BoxerStructures.pdf gives, i think, nice overview of the language, system, goals. sounds like fun stuff.

good idea

I like the idea that boxes are easier to master than scope delimiters (begin ... end , { .. } etc )

Usually the concepts of graphical programming languages are not very clear ; but here the graphical element (the box) is used as a substitute for syntactic construct; this has the utility that there are fewer occasions for syntax error.

Sounds interesting.

Alternative input formats.

One might adopt some of the ideas in boxer as alternative input formats ; one can transform the graphical format where boxes are scope delimiters into a text based format.

One recent project that experiments with alternative input formats is this one

Here lisp expressions are formatted like Python: the level of indentation would take the meaning of the level of bracket nesting. Very clever approach.

Came across readable today

Came across readable today too, via the more minimal Wisp