Group mind, social computing and the structure of software
Wandering bravely into the territory of markitecture BS, one might say that 'enterprise 2.0' is not *yet* about applications as mashups... instead it is about providing a 'social' or 'ecological' model for applications. Each application has an identity, it has a friends list, it chats, it sends and receives emails, it has a blog and subscribes to other blogs, it shares information via a wiki, it discovers information using some sort of ad hoc search and is not tightly bound to one directory model, ...
A few decades back using earlier, more corporate social metaphors -- inboxes, receptionists, etc. Agha, et al, made a similar move in trying to communicate the actor model of computation. Frankly, until the discussion strays closer to the ecological/biological side, i don't think people will find metaphors to internalize compositionality. i still haven't internalized it, and i have been working with it for decades. Mathematicians i know have been working with it for much longer than i still haven't internalized it.
There's a profound blindspot when it comes to our innerworkings. From the perspective of computational capability, it now seems quite clear that there is nothing, in principle, that distinguishes a cell from a human. Likewise, there is nothing, in principle, that distinquishes a string (or m-brane) from a cell or a human. But, this view of the world is *very* radical. It goes against millenia of atomist thinking -- smaller is simpler. This view is patently false -- as any parent will tell you ;-). But, the basic sterility of this view also one of the messages sitting inside recursive grammars (found daily in XML schemas) or recursive programs (found daily in applications of global use, like XML parsers) -- especially once you recognize there doesn't have to be a base case -- as in the specification of streams or non-well-founded sets.
That said, i'm beginning to see glimmers of social metaphors via group intelligence measures that might help with a better understanding of compositionality. The old saws about guessing the number of jelly beans in a jar -- professor puts a jar of jelly beans on the desk and asks the class to say how many jb's are in the jar. The average guess is always the most accurate. A similar phenomenon was observed centuries ago in a country fair game of guessing the weight of a cow. These are contrived circumstances that make it possible to wield a simple mathematical tool -- weighted sum -- to help see the group, qua group, and what it might be thinking. Voting schemes, democratic processes, are also relatively simple tools to help see the group -- and more importantly to try to faciliate the dialogue between the group and the individual. i have been thinking a bit about more sophisticated mathematical tools, like weighted sums of theories, as a more sophisticated way of seeing the mind of the group.
What's at stake in attributing 'mind' to group (or component for that matter) is seeing the entity in question, like a person, or an application, as essentially the same as the aggregate or the component. More to the point, in the context of this discussion, is that until one internalizes a basic isomorphism between the group and the individual participating in the group -- a kind of ultimate corporation-as-person proposition, or going in the opposite direction, recognizing that a person is a corpus -- or at least finds a vehicle for engaging in that internalization process, it's tough slogging, trying to understand the structure of software (or hardware for that matter) and how to manage it's complexity.