By weird synchronicity, yesterday I wrote an email to someone where I was talking about ideas that intrigued me, and I was thinking of examples where you'd want a fluent dynamic gestural device like, say, a pen-mouse or a Wii controller for real-time programming.
And, looking for an example, I went into a crazy rant, inspired by Seb Paquet's Algebra of Feeds.
Here's what I wrote :
Or maybe you can create software "in real-time" by, for example, routing and mixing RSS feeds. Eg. you'd have feed-traffic-controllers, pulling together, mashing up and mixing the outputs of different web-services, maybe by dragging and dropping, or sketching pipelines with a pen or Wii-like controller. 10 years ago, Philip Greenspun needed his own server and to be a serious programmer to make the Bill Gates Wealth Clock. 4-5 years ago, smart people were mashing up Google maps with other services with little bits of glue script. Now we have reblogging services that help automate the process of getting a feed from one place and pushing it elsewhere. And Ning which is a sort of platform for creating mash-ups and reusing other people's code.
Jump forward 5 more years. You can imagine feeds of "objects" (data + encapsulated behaviour) being published. And enterprising people noticing that objects from feed 1 have input signatures of this format, and objects of feed 2 have output signatures of that format and it only needs them to be wired together in the right way, for us to have this useful combination. So how to define the wiring? Why not just draw something like a patch diagram in a virtual modular synth? A diagram of Unix-like pipes. How frequently does this need to be done? As data gets more dynamic, you might want to have people updating the wiring diagrams daily. Why make it hard work? Why not just let them draw it with a pen, or Wii controller.
And now, to quote, Tim OReilly :
Yahoo!'s new Pipes service is a milestone in the history of the internet. It's a service that generalizes the idea of the mashup, 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.
These are very interesting times.