The title slogan popped into my brain this morning; now I have to figure out what it means. I have a pretty solid idea of what computation is and I hope you do too, so this will mostly explore the meaning of "occupy".
Really it's what I've been trying to achieve for most of my career -- making computational worlds visible, controllable, buildable, and habitable by the people who need to interact with them. Often this manifests as some form of end-user programming language, but there are other ways to do it. Spreadsheets, for example, succeeded because they created a tactile, habitable way of interacting with data.
Occupying a computational (or virtual) space is different than occupying physical space, of course. Easier in that there are no logistics to overcome, none of the scarcity and commitment that defines our physical world. On the other hand we have highly evolved tools for dealing with physical reality; our methods for dealing with computational worlds are primitive and difficult to use in comparision.
Virtual Reality always seemed to me like a crude, overly-literal way to have people live in computation. So I've not spent much effort on 3D graphics and goggles, instead I'm more interested in coupling more modest user interfaces technology with complex worlds like bioinformatics, animal behavior, programming in general. So I've built visual programming systems, tactile interfaces, spreadsheet-like systems, and the like, all in an effort to lower the barrier between mind and the structures in the computer.
Part of occupying computation is erasing the class barriers between developer and user. in this world, users are the 99%, developers like me are in the 1%. Other people have noted that the word "users" is in itself somewhat demeaning*; "the only two industries that call its customers users is the computer industry and
drug dealers." The word encodes a kind of passivity which needs to be challenged. Users need to become programmers. There have been many attempts to extend programmability to the non-expert; I've worked on quite a few such projects. I don't think any of them were wildly successful, partly because either they come from programmers who think everyone should think like them, or they come from non-programmers, in which case they are messy and inelegant.
I ran across the phrase "habitable systems" awhile back, although I can't remember where (ah, OK, it's from Richard Gabriel's book
Patterns of Software (
big PDF)). Gabriel is, non-coincidentally, a Lisper. Habitability, in his writing, is linked to the idea of piecemeal evolutionary growth -- designing software systems so that the inhabitants can modify them based on their day-to-day changes in experience and needs:
I think this should be the goal for computer science practice. Most programming languages are excellent for building the program that is a monument to design ingenuity—pleasingly efficient, precise, and clear—but people don’t build programs like that. Programs live and grow, and their inhabitants—the programmers—need to work with that program the way the farmer works with the homestead.
Habitability is great -- but the point of an Occupy Software movement is to demand habitability, to find ways to force systems to be habitable. It's a more active form of the concept.
Lisp environments are (for me, and many others) the quintessence of a computational habitable systems. Lisp combines several properties -- interpretability with a read-eval-print loop, a basic data structure that is simple to serialize and deserialize, a unity between programs and data -- to make an environment where you can touch what's going on. This quality is so important, and so missing from standard languages (although this is changing). The very first thing I did when encountering Java was to write a
small Lisp, not to actually program in but for the REPL loop, to give me a way to inhabit the computational world.
One of the keys to the web's explosive success (taken for granted these days, but in no way inevitable) is that its standers were open, and its
contents were open -- for any web page you see that does something interesting, you can click on View Source and see how it did it. So many non-technicals learned web building in this way. But that only gets you so far.
The Free Software Movement started out as a political effort to resist what was effectively an enclosure of the commons -- what was open research software, habitable by anybody with sufficient technical skills, was being converted to proprietary code that locked most people out. This has been amazingly successful in creating occupy-able systems, but only for hackers. Ordinary people don't have access. So the software is only sort-of habitable.
A hacker is someone who knows how to inhabit a system, who wants to inhabit it so much that they will do anything to force their way in, (in some meanings of the term) will go so far as to use illegal techniques to overcome barriers set in his way.
The Maker movement is another cultural push in the direction of habitability. All these motions are efforts to make everybody an insider -- whether this is practical or not, it's enormously appealing; the inclusivity of it very much in the American mold.
As an example of a
non-habitable system, take iTunes and its genius feature (which generaates music playlists based on a starting example). This works rather well, and I use it a lot, but lately I've been irritated at its repetitiveness -- the same songs from my collection keep coming up again and again until I'm sick of them. Presumably there is some parameter hidden in there, but I can't change it because the geniuses at Apple didn't see fit to create a UI affordance for it.
If it was open source, then in theory I could go study the code, find where this parameter is, and alter it. In practice I'd be unlikely to do so (for one thing, it's probably written in a language I don't program in every day, and thus the overhead to figure it out would be pretty large).
So an imagined inhabitable music player would not only be open source, but have its rules encoded in some accessible way, so that you don't have to be an expert to modify it.
So, this is what occupy means to me -- a declaration, both individual and collective, that I/we have a right to inhabit this world, this space, this society. To live in it, make it habitable, to share it, to humanize it.
And that these rights are not handed out by some authority, but must be taken. Spaces under the control of systems that are not life-enhancing must be occupied and transformed. That's the impetus behind the main movement of OWS -- the shared recognition that the financial system is a life-sucking vampire squid and needs to be replaced -- with what, nobody knows, but that is, for now, beside the point.
As I went walking I saw a sign there
And on the sign it said "No Trespassing."
But on the other side it didn't say nothing,
That side was made for you and me.
-- Woody Guthrie, This Land is Our Land
Now the occupy meme is starting to spread. There are many things I'd like to occupy, areas that seem closed where they should be open. Occupy music, occupy language,
occupy religion, occupy your own mind... This blog itself is an act of occupation, my little insistence that my voice is out there and part of the public discourse. There are people with orders of magnitude more impact than I have -- doesn't matter, much. It is the act of occupying that is important.
One last note: The future is going to be a network of smart, networked objects and algorithmic policy engines. Our lives will be only become more inextricably bound up with software. It is critically important that these systems not be closed off, that ordinary people retain a measure of control. We will be living in these systems whether we like it or not, but there is a difference between mere living and occupying.