Inventing the Future: no names, please!

In this information-laden world, who really wants to deal with addresses, ss#’s, a bevy of phone numbers, even more account numbers, part numbers, and on and on? It seems we sometimes need the precision afforded by (usually non-mnemonic!!!) names, but we don’t like it. What if it’s not necessary?

I’ve recently had a kind of religious conversion. My computer science professors taught me that if you know the name of something, you have power over it. As a result, I’ve studied the semantics of names (binding, scope) and its cousins for identity (copy semantics, extent). I still believe names are crucial for programming, but I have now come to think they are a terrible foundation for constructing an interface between people and the computer. All these years! It’s about time I realized that my users shouldn’t need to see things as I do. So now I’m becoming a direct manipulation zealot. I know have a goal that people should be able to use Croquet effectively without ever seeing a filename, address, or URL.

It’s incredible what we put up with now. [Note to programmers: I’m talking mostly about the names of resources here (not things like variables).]

What do file dialogs (for open and save) have to do with whatever task we’re working on? It’s one of these things that we do to try to make the computer happy. Just try explaining files and directories and extensions and open and save to your child or your grandparents. There’s no reason for this! If you know where you left something, just go there. I prefer memos on a Palm or sticky notes on a Mac. No open nor save nor filenames. And if you don’t know where you left something, there’s Google destop.

But one set of names aren’t bad enough. No. We have to replicating things and keep track of the names of their containers! Which version of that report was the one I wanted? The one on my office hard disk, the server, my thumb drive, my home machine, PDA, my wife’s machine, or in Lotus Notes? That’s a lot of choices in the open dialog, or a lot of results in a “search for file named:.” Yuck. You really just want the stuff you need to be “right there” in whatever project you’re working on, and the computer keeps track of keeping everything. If you want to version stuff, then create a version or some other identifier, but don’t try to version by location. We go through a similar hell when we don’t have permission (yet) to edit something we need, and end up propagating more versions and names. None of this is necessary if everything is accessible from anywhere, such that we can always make changes and additions in context. In some contexts that means changing what everybody sees, in others it means just what we see. By the way, contexts don’t need names either. They’re just resources, too. We can just go to where we left them, or search for them when we can’t remember.

Email is sometimes regarded as the most successful killer app of all time. But look at the price we’ve paid. In addition to the usual complaints about information overload and time and privacy and spam and whatnot, look at just the cognitive load we impose on ourselves with regard to names. Not only is there save and open of drafts and attachments, but there’s a great deal of administration of smtp and pop and imap servers and account names and addresses. Switching clients? Switching services? New job? Want to take your whole set of letter trays with you? Do it all again. With Croquet, there shouldn’t even be email. Folks can have one or more in-boxes in their home space. You can give someone permission to put things in your in-box, and they can keep that permission in a drawer in their Croquet environment (or wherever they want). Maybe that permission looks like an in-box tray with your picture on it, or you holding a mailbox. Or something that looks like a key with – horrors – your name on it. That’s up to you and whomever you give the permission to. Anyway, when you want to give something to someone – be it text or a whole Croquet space you’re working on – just put it in their in-box. No addresses, no accounts. No mailman or other middleman (assuming a fully P2P Croquet implementation without servers). No spam.

There’s probably still various needs for names, in “out of band” communications. Stuff outside the direct manipulation Croquet environment. For example, suppose you want to send someone a conventional email and point the recipient to a particular place (and time?) in a Croquet space. Well, that could actually be done as an attachment that knows how to present itself in a reasonable way, without a bunch of computer mumbo jumbo. But then, you still need a text version that doesn’t get scrubbed by some ignorant overzealous virus protection racket thingie. OK, well, there’s still voice communication. You want to have very short pet-names that depend entirely on the context. In my house “Tom” and “Thomas” are both my son. At his grandparent’s, “Tom” is my brother-in-law and my son is only “Thomas.” But I’m comfortable with this use of names. Come to think of it, my 3 year old son is not that comfortable with it. Computers should be for him, too! Why not?

And what of programmers who already understand the world of names? Well, I’m not sure that most developers of applications really do have a full understanding of the semantics of names. I don’t. Look at what we do with handling filenames.
Do directories have trailing delimiters. Is an empty name the root directory? Case preserving but case-insensitive? What about inverting case unless the case is mixed? Have you seen that one? Version numbers as an overlay over the file system? Jeesh. And yet how many of us do what we should and program only in API’s with operating-system independent pathnames? Anyway, I think names for resources will still be involved in programming croquet, but I think they will fade into the background as we are able to achieve more and more “programming” through direct manipulation. We want to distribute the load of content and application creation. This is best done by making it easier for everyone, and by supporting development by folks with a wide range of knowledge and experience.

Is the current computing status quo so bad? I don’t know. It is a pain and creates a pretty high threshold for use. Does it actually prevent use? Maybe not often, if you don’t care about 3 year olds and grandparents. Maybe it’s like the expertise that used to be needed to operate and maintain a horse or a pre ’90’s car. Or like maps. What was wrong with selecting a map and deciphering the code and folding the thing and driving with it on your lap? Well, I do like my in-car navigator better. Does it actually let me do things I wouldn’t otherwise? Maybe. I’m just a little bit more willing to explore. It’s probably safer, too. One difference here is that when dealing with managing and utilizing information, we often feel that we are at a limit. It is common to speak of information overload and of being unable to deal with new technology. So maybe making it that much easier to manage computers and information really does matter.

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. Sometimes it can be very frustrating to not be able to find a hammer or screwdriver or, more a propos, some kind of thing for which I’ve forgotten the name. But I can look in drawers and look in the shed, and I’ll know it when I see it. I don’t need to know its name. So living in the tactile world is less frustrating, by a long shot, than living in computer space.

    I confesss I’m having a hard time imagining fixing this problem in the croquet world. I mean, I can imagine a virtual world where you just get the things you need, but I know a few things, anyway, about the infrastructure in code that needs to make anything happen even in our complicated systems of today, so I don’t know how you’ll make it happen.

    However, I do wish you good luck & will be happy to see what you come up with.

    I expect that if I played more computer/video games I would have an easier time imagining how this might all turn out. Certainly today, the day after Christmas, millions of people all over the world are interacting with new

    virtual worlds that they had not seen before yesterday. They’re manipulating all kinds of virtual objects that have very complex software implementations, and they probably don’t have names for more than a fraction of them.

  2. There are several aspects to making this work. From a user interface perspective, the main thing is to make everything tangible. We try to create a virtual object that has a recognizable visual presence. But this is more than just 3D icons. It is the thing itself. The visual representation doesn’t need to be some small picture of only a few pixels.

    In the real world, we make book covers and spines visually distinctive. Yet their shape identifies them as a book. Croquet books can be the same. We can keep them on a shelf with their spines out, and the ones we are using in the current project can be kept face-up on a desk.

    Smaller works, like poems, can be identified by author and by first line. By the way, this exactly how memos are presented on a Palm, and how “closed” sticky notes are presented on a Macintosh.

    There doesn’t need to be a closed or iconified version and an “open” version of a resource. The thing can be left always “open”. For example, instead of opening and closing a text editor “on” various files, I can have various panels (or virtual tablet PCs) in my project space that simply display the (e.g., scrollable) content that I’m interested in. No need to distinguish between application and content. No need to close it down and later have to remember the “file” and “directory” where I “saved” it. Just leave it on my desk. Or in a drawer or on a shelf. (I don’t have to remember where I was in the text. I can leave it scrolled to where I was working and even leave a area highlighted and it will still be that way when I revisit later.)

    Being a virtual world, there’s no need to collapse things down into a 32 or 64 character name to fit in a directory. I can make as many closets, desks, shelves and cabinets as a like, and they can be as large as I like.

    I’ll write separately about the importance of context. But for now, let’s say that you have a space — say its an office-like room — in which you are working on a project. You can make it as big as you like, and you can dynamically move out walls and such to make it biggger. But suppose you don’t want to do that because you like the current arrangement in which everything is in easy reach. If you need more space, you can simply create another space INSIDE this one. Being virtual, the new space — say it is a closet — can take up very little space in your office. Just make it big enough to be recognizable. Yet the closet can be huge when you actually walk into it. You can even reach in grab things that you left near the door of the closet without actually going in. (By the way, this is working right now even in the public developers’ distribution of Croquet.)

    Now, behind the scenes there’s some technology needed to free us off today’s computing limitations. These include transparent persistence, realtime collaboration, distributed security, a common user interface framework. I’ll be writing more about these later. For now, just think about how a small child would like computers to work. Or equivalently, a science fiction writer.

    Meanwhile, we all need to play more video games. One of our architects created Red Storm Entertainment with Tom Clancy, and Timeline Computer Entertainment with Michael Crichton, but I confess I’m way behind the curve on gaming UIs. Fortunately, my oldest daughter still hasn’t stopped playing the stuff Santa just brought her…

Comments are closed