Yahoo!’s new Pipes service is a milestone in the history of the internet. It’s a service that generalizes the idea of the mash-up, providing a drag and drop editor that allows you to connect internet data sources, process them, and redirect the output. Yahoo! describes it as “an interactive feed aggregator and manipulator” that allows you to “create feeds that are more powerful, useful and relevant.” While it’s still a bit rough around the edges, it has enormous promise in turning the web into a programmable environment for everyone.
While undeniably exciting, this technology reminds me of a concern I had and wrote about just a few months ago: the ethics of software in the networked world.
The basic problem is that having data spread across large and unreliable networks can lead to a chain reaction of unintended consequences when a service is interrupted. For example, imagine Google Maps changed the way a fundamental part of its mapping tool worked: Since the changes are applied immediately to everyone using the network, serious problems can arise as the necessity for these tools increase.
Also, the responsibility for managing problems can become a lot harder to track down when the network of dependencies becomes complex, and creating a new layer of abstraction, like in Yahoo! pipes, can potentially exacerbate the problem if there is not an clear agreement of expectations between the parties involved.
I think that one of reasons that licenses, like the GPL and the Creative Commons licenses, are popular are because they clearly communicate to the parties involved what their rights are, without ever having to explain the complexities of copyright law. I think it would make sense to come up with similar agreements between nodes in a network on the issues I raised above as we move more of our crucial applications to the web. The problem is, who would ever want to take responsibility for problems that appear far removed? Would there be any interest in creating a network collective of small pieces, closely joined?