components: reified computing

The component model I’m working on tries to make everything you deal with visibly concrete so that it can be directly and uniformly manipulated — even behaviors. It was inspired by my wife’s fascination with a game on her PDA.

It feels like you’re just sliding things around.
Part of it is the pen.
Part is the graphics looking like a 3D thing, and the coordination with sound.
Part is the fact that the graphics respond directly to what you have them do, moving in lock-step with the pointer and retaining their shape while they do it. They “feel” like solid objects.

But part of it is the lack of intermediaries or representatives between the user and the things your really want to deal with. It does not feel like things are symbolic abstractions getting in the way. Things like file names, windows, panes, and menus just don’t have anything to do with the task at hand.

Of course, it’s an illusion. It isn’t 3D, but a flat projection on your screen. The bits displaying the object on the screen aren’t any different from those next to them, and they aren’t really tied in any way to the “object”, whose bits are just like any other in memory. And the “objects” on the screen are really no more tangible than the variables or array indices used by the programmer to manipulate them. Nonetheless, it sure feels more direct.

My model goes beyond the PDA in that more than just game pieces are reified as concrete components to be seen and “touched.” Every component has behaviors, but behaviors are just components that can be seen and “touched” in the same way. My behaviors are each represented as a sort of button that you can tear off and put wherever you want, even other objects. Of course, that means that behaviors have behaviors, which have behaviors, … Now, many professional programmers say that other professional programmers have trouble understanding recursion and metacircular architectures. (The claim is always for their coworker down the hall, never for themselves!) I think this is wrong. Consider the classic child’s amusement: “Pete and Repeat are having a race. Pete fell down. Who won?” “Repeat.” “Pete and Repeat are having a race…” My children have learned this around the same time as they learn that a thing can have two names. In fact, I think classic programming language recursion is not merely related to symbolic abstraction: I think the two are exactly the same thing.

Further, I claim that direct metacircularity on its own, without symbolic referencing, is even more basic. Children and adults using my “tactile” components will explore them directly. They will be amused when they discover the self-similar structure, but not confused. No more then when they first explore a leaf or a pair of mirrors. It is only when they try to describe the structure in abstract words that they get into trouble.

About Stearns

Howard Stearns works at High Fidelity, Inc., creating the metaverse. Mr. Stearns has a quarter century experience in systems engineering, applications consulting, and management of advanced software technologies. He was the technical lead of University of Wisconsin's Croquet project, an ambitious project convened by computing pioneer Alan Kay to transform collaboration through 3D graphics and real-time, persistent shared spaces. The CAD integration products Mr. Stearns created for expert system pioneer ICAD set the market standard through IPO and acquisition by Oracle. The embedded systems he wrote helped transform the industrial diamond market. In the early 2000s, Mr. Stearns was named Technology Strategist for Curl, the only startup founded by WWW pioneer Tim Berners-Lee. An expert on programming languages and operating systems, Mr. Stearns created the Eclipse commercial Common Lisp programming implementation. Mr. Stearns has two degrees from M.I.T., and has directed family businesses in early childhood education and publishing.


  1. As mentioned in an earlier wetmachine entry, last week I had an hour long phone conversation with Douglas Hofstadter. About 1/2 of that conversation was on the general subject of analogies.

    I think I’m going to have to make a post on this subject soon.

  2. Emergentist/constructivist point of view: There is no information out there that we need to reference or use metaphor intellectually. (Potential for) interaction is enough, and we (human beings) create the object that we perceive in our minds, if it re-acts, somewhat consistently = learning.

    So just make it rich, (inter)active, and the "user" will understand it by using it. That’s all. No explanations needed.

Comments are closed