(originally posted Dec 2009)
As programmers it is our privilege to create what cannot be realized in the real world. But right now our language of development (our pattern language) is dominated by metaphors that move from real to virtual. The website has visitors, I click on a link, I put the file in the folder. Is it possible that this metaphor flow will ever reverse?
Could virtual space become the source of metaphors useful for describing the real world?
Arguably this change has happened for some. Many who leave the web after an extended visit notice the lingering effect. Like a cruise passenger who feels their sea legs a week after the voyage ends (real world!), the techno-adept longs for straightforward status indicators above their family member’s heads.
The weakness of a real-to-virtual focus are easy to pick out; files that can only be in one folder at a time are limited by a metaphor, not a technical difficulty. The weakness of a shift to virtual-to-real as the primary metaphor flow are less clear. It doesn’t seem likely the weakness will based on limits.
The primary goal of the tool making practice of programming is extending and expanding our abilities as humans. This is also at the core of the metaphoric shift. As our ability—to create, to visualize, to track, to organize, to remember—extends, so extends our reach. As our reach extends, our world expands and the material we have to draw on for the creation of new metaphors multiplies.
The difference between this tool making craft and all others that have come before it is the extent to which this craft draws both the practitioners (creators) and the beneficiaries (users) into itself. Time spent in the virtual world is larger in many ways than time spent in the real, and this is why the shift will happen.
The benefit to software developers will grow from this trend as the metaphors we use become native to the medium in which we use them. Maybe at that point they will cease to metaphors. Our pattern language will be complete in itself.