November 17, 2005
I try to avoid posting entries from the Mindless Link Propagation Department, but Adam Bosworth's article Learning from The Web is excellent and it deserves a careful read:
The Web taught us several unintuitive lessons:
- Simple, relaxed, sloppily extensible text formats and protocols often work better than complex and efficient binary ones
- It is worth making things simple enough that one can harness Moore's law in parallel
- It is acceptable to be stale much of the time
- The wisdom of crowds works amazingly well
- People understand a graph composed of tree-like documents (HTML) related by links (URLs).
- Pay attention to physics
- Be as loosely coupled as possible.
- KISS. Keep it (the design) simple and stupid
In addition to all the architectural stuff Adam outlines, we can't overlook the critical contribution of web browser user interface. The browser popularized the web by making it dead simple to use:
- The entire interface is driven by a single mouse click. Nary a double-click in sight! And none of the interface is obscured behind things like drop-down menus; it's all immediately visible and immediately clickable.
- The back button. Easily the most profound innovation in user interface in the last ten years. Don't like where you are? Go back to where you were. It's totally natural.
- Each webpage focuses on a single task. Since websites are slow to load and can't display much at once, designers were forced to stick to one task per page, along with a palette of relevant tasks for that activity. A refreshing change of pace from your typical monolithic application with its monster twenty-item cascading main menu.
These "webby" UI characteristics are now collectively known as Inductive User Interface, and figure promimently in many newer client applications and operating systems.
Adam also defines some of the shortcomings of XML, and in the process, proposes RSS as an all-out replacement for XML:
Some of us learned these lessons seven or eight years ago and applied them to distributed computing. We had the explicit goal of using XML over HTTP to exchange information between applications via messages to build a loosely coupled, robust, Web-friendly model for distributed computing. In my humble opinion, however, we ignored or forgot lessons 3, 4, and 5.
RSS 2.0 has reached the tipping point where it is universally understood. [..] It may well be that a lot of useful information is going to flow over the Web as either RSS 2.0 or Atom (or both, depending on the type the requester asks for). It addresses many of the serious limitations or outages in XML today.
The last section on databases reads like a logical continuation of the "RSS defeats XML" thought, and more specifically, an argument in favor of Google Base. Did I mention that Adam works for Google?
Posted by Jeff Atwood
"The entire interface is driven by a single mouse click."
...and I don't know how many people I see almost every day, double clicking on links. It drives me freaking crazy.
"proposes RSS as an all-out replacement for XML"
- isn't RSS just an xml schema over http? *gargles*
isn't RSS just an xml schema over http?
But I think that's exactly the point: RSS is an actual *schema* not a generic langauge for defining *any* schema. That's what makes RSS (and for the same matter HTML) so useful - so many sites and systems support it. XML is too generic. Sure, XML parsing is ubiquitous, but unless you know the specific schema, you can't do much with the data once you parse it.
You can't say that RSS XML any more than you can say Ford car, Plato philosopher or pizza food. If many applications support the RSS schema, that doesn't make RSS better than XML, because XML is by definition customizable.
It's nice that many sites and applications use RSS, but you just can't cram _any_ data into RSS. RSS is just a collection of "item" nodes, which contain a "title", a "link", and a "description". A grocery list or a purchase order /might/ be represented in an RSS tree but it'd be kind of awkward.