How will we go about programming systems composed of vast numbers of spatially distributed parts, each of which is interacting with the environment in real-time?
One possibility is to program the conventional way - assign each node a unique ID, keep track of where each node is, derive an overall plan and then issue explicit commands to each node. This approach has the potential to work, but somehow seems unnatural and unsatisfying.
Biological systems routinely coordinate large numbers of interacting elements, yet do so using strategies of self-organization and local interaction. Perhaps there is a better way to organize complex MEMS systems that can be developed through analogy to biology. Here are some ideas.