Published on The O'Reilly Network (http://www.oreillynet.com/)
All Software Should Be Network Aware
by Tim O'Reilly
Jul. 2, 2003
Great thought from Edd Dumbill on an internal O'Reilly mailing list:
"For the desktop, my personal vision is to see existing software
instrumented to become increasingly web aware. It seems that Apple are
doing a good job with this. (What does web aware mean for me? Being
able to grok URIs, speaking WebDAV, and using open standard data
I would venture that this is THE frontier for the desktop, to see itself seamlessly integrated into the online world. And it's not just "web aware" but cell-phone aware, p2p aware, and generally "network aware."
I've been noodling for some time on the idea that we need some kind of equivalent to the old Apple Human Interface Guidelines, only for the new world of networked applications. The original UI Guidelines laid out a set of consistent approaches for GUI applications; while Windows ended up with a different set than the Mac, the idea was simple and profound: create a consistent set of user expectations and live up to them. I believe that we now need something similar for web aware applications.
Edd's list is a start. Here are some other things that I'd like to see universally supported:
Obviously, this is just off the top of my head, and a few minutes thought will turn up many more examples. I'd love to hear your thoughts about what kind of "web aware" functionality you'd like to see routinely incorporated into new applications.
Rendezvous-like functionality for automatic discovery of and potential synchronization with other instances of the application on other computers. Apple is showing the power of this idea with iChat and iTunes, but it really could be applied in so many other places. For example, if every PIM supported this functionality, we could have the equivalent of "phonester" where you could automatically ask peers for contact information. Of course, that leads to guideline 2.
If you assume ad-hoc networking, you have to automatically define levels of access. I've always thought that the old Unix ugo (user, group, other) three-level permission system was simple and elegant, and if you replace the somewhat arbitrary "group" with "on my buddy list", you get something quite powerful. Which leads me to...
Buddy lists ought to be supported as a standard feature of many apps, and in a consistent way. What's more, our address books really ought to make it easy to indicate who is in a "buddy list" and support numerous overlapping lists for different purposes.
Every application ought to expose some version of its data as an XML feed via some well-defined and standard access mechanism. It strikes me that one of the really big wins that fueled the early web was a simple naming scheme: you could go to a site called www.foo.com, and you'd find a web server there. While it wasn't required, it made web addresses eminently guessable. We missed the opportunity for xml.foo.com to mean "this is where you get the data feed" but it's probably still possible to come up with a simple, consistent naming scheme. And of course, if we can do it for web sites, we also need to think about how to do it for local applications, since...
We ought to be able to have the expectation that all applications, whether local or remote (web) will be set up for two-way interactions. That is, they can be either a source or sink of online data. So, for example, the natural complement to amazon's web services data feeds is data input (for example, the ability to comment on a book on your local blog, and syndicate the review via RSS to amazon's detail page for the book.) And that leads to:
We really need to understand who owns what, and come up with mechanisms that protect the legitimate rights of individuals and businesses to their own data, while creating the "liquidity" and free movement of data that will fuel the next great revolution in computer functionality. (I'm doing a panel on this subject at next week's Open Source Convention, entitled "We Need a Bill of Rights for Web Services.")
We need easy gateways between different application domains. I was recently in Finland at a Nokia retreat, and we used camera-enabled cell phones to create a mobile photoblog. That was great. But even more exciting was the ease with which I could send a photo from the phone not just to another phone but also to an email address. This is the functionality that enabled the blog gateway, but it also made it trivial to send photos home to my family and friends. Similarly, I often blog things that I hear on mailing lists, and read many web sites via screen-scraping enabled email lists. It would be nice to have cross-application gateways be a routine part of software, rather than something that has to be hacked on after the fact.
is the founder and CEO of O’Reilly Media Inc. Considered by many to be the best computer book publisher in the world, O'Reilly Media also hosts conferences on technology topics, including the O'Reilly Open Source Convention, Strata: The Business of Data, the Velocity Conference on Web Performance and Operations, and many others. Tim's blog, the O'Reilly Radar "watches the alpha geeks" to determine emerging technology trends, and serves as a platform for advocacy about issues of importance to the technical community. Tim is also a partner at O'Reilly AlphaTech Ventures, O'Reilly's early stage venture firm, and is on the board of Safari Books Online, PeerJ, Code for America, and Maker Media, which was recently spun out from O'Reilly Media. Maker Media's Maker Faire has been compared to the West Coast Computer Faire, which launched the personal computer revolution.
oreillynet.com Copyright © 2006 O'Reilly Media, Inc.