There’s a lot of interest in voting technology for the expected record numbers of voters in the US presidential election, and voting widgets have become an expected accessory in social Web sites. But the simplest voting technology is no explicit technology. Is there a place for that in virtual worlds?
This month I learned of a group of our users who maintain a sort of virtual war room. The participants meet to develop a consensus view of an emerging scenario. The diverse group of participants vote on what to do.
We don’t have any dedicated voting tools in our version of Croquet. However, like all virtual worlds, people are explicitly represented by avatars that the users control directly, and the shared experience of all participants is that they get to see what everyone else is doing. So this particular group of people casts their votes by simply having their avatars stand in one area or another.
In this case, privacy is not an issue between voters, as the purpose is to build consensus. (All our worlds are locked down so that only the invited group may participate.) There is no attempt to eliminate the influence of senior participants, although each participant is represented by an abstract generic-looking avatar, labeled by name. Users are expected to talk to each other as they vote (by voice, public text, and private text). People can, should, and do infer a lot from how quickly others move from neutral to voting locations, or from just where they the others do stand. The voting zone can be annotated with arguments and supporting documentation.
This is obviously not the right thing for deciding a presidential contest. Special society needs requires specialized equipment, and there will always be a place for these. But sometimes less explicit stuff is better. Web technology is designed only for presenting and linking information, not for interacting. To allow voting on a Web page, someone has to write code that explicitly supports it. But in virtual worlds, by having core technology that includes people, people get to do things with the technology that the application was not explicitly designed to support.
We see this all the time, but it’s so basic that it is difficult to appreciate what is right in front of us. In the real world, people vote by show of hands. It’s a good thing we have hands, and it is not necessary for human beings to have special voting devices implanted in our bodies.
In computer technology, we see that self-describing languages like Lisp and Smalltalk are hugely more productive than sealed-and-dead languages. There are degrees to this, and it takes a critical-mass of capability before new value-chains can emerge. For example, the pretty-good Python programming language has a lot of built-in-capabilities that are similar to stuff in Lisp and Smalltalk, but it suffers from not having quite the same self-extension capability all the way down to the most basic levels. Smalltalk can be used to write itself, but only by generating “third party” code that is separately processed, and then restarting the Smalltalk system to use the newly processed code. Lisp systems can generally extend themselves at any level while they system is still running, without interruption. The productivity benefit is huge – it’s been measured at more than 30 to one compared with sealed-and-dead languages. However, these benefits are only valuable to programmers, who no one cares about. What really matters is benefits to users, which is the case with the emergent value examples of virtual worlds. (Brie was an attempt to explicitly make the emergent value of reflective programming languages available to ordinary users, by combining it with the emergent value of users-in-the-application.)