Yahoo! recently announced a new service called pipes that hopes to bring the ability to “mash-up” to the common folk.
As always, Tim O’Reilly has a very good description:
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?
You raise a really important point about the fragility of the new mashup culture. But I’m not totally clear on what you’re suggesting as a solution. A code of ethics or actual enforceable laws?
I would say it would have a to be a code of ethics with real consequences.
The open-source community has developed a strong bond and has strict expectations of those who will gain from the system… public shaming for those who don’t follow the rules can be brutal.
For this to work there would have to systems in the agreement that opens everyone equally to possible consequences. For example, interoperability with competitors or ability to retrieve all the information from server might be required.
Also, nothing is mandatory. As is with open-source, those who agree and follow the rules get special treatment and those who do not are slowly being outcast… this is why even most large companies, who don’t need open source developers, like to get cozy with current open source projects.
To tell you the truth, I don’t know what the best approach is. But I expect this issue will come up more often in the future, especially with applications like pipes, allow us to being *even more* crucial applications networks.