Web Thinking (with bonus Feynman quotes)
By Ryan Tomayko under Then they laugh at you... on 25. July 2005If you haven’t listened to Adam Bosworth’s Database Requirements in the Age of Scalable Services, you need to right away. The 45 minute run length seems to be limiting the amount of listenership, which is a real shame because he makes some really great points in the talk.
It’s not really about databases the way you’re thinking it is, it’s about applying the principles that make the web work to the very generic task of exposing, modifying, and querying data. Bosworth is thinking waaaay out of the box here, claiming that RSS and Atom have the potential to do for machine readable data what HTML has done for human readable content. It seems to be an elaboration and progress report on the thinking he demonstrated in his ISCOC04 Talk, which was cited heavily throughout the blogosphere.
But even if you don’t care about databases or Atom/RSS (let’s say you build loan approval or payroll processing applications) you can still get a lot from this talk by simply observing the style of thinking Adam demonstrates. This is exactly what I’m trying to encourage with Motherhood and Apple Pie and I’d like to use Adam’s talk to illustrate the different ways you can think about the web because Bosworth’s talk is a perfect example of The Right Way.
The first way of thinking about the web is to take the design you already have, in this case relational databases, and just put it on internet pipes (i.e. use web protocol as a conduit for what you’re already doing). If Bosworth would have taken this approach he would have been talking about creating an XML representation for SQL queries and tabular data, how to hack in transaction management and isolation levels, and other stuff like that.
As it were, this is not even close to what he talks about and the reason is because that style of thinking does not work.
I’m reminded of Richard Feynman’s excellent Cargo Cult Science:
In the South Seas there is a cargo cult of people. During the war they saw airplanes with lots of good materials, and they want the same thing to happen now. So they’ve arranged to make things like runways, to put fires along the sides of the runways, to make a wooden hut for a man to sit in, with two wooden pieces on his head to headphones and bars of bamboo sticking out like antennas–he’s the controller–and they wait for the airplanes to land. They’re doing everything right. The form is perfect. It looks exactly the way it looked before. But it doesn’t work. No airplanes land. So I call these things cargo cult science, because they follow all the apparent precepts and forms of scientific investigation, but they’re missing something essential, because the planes don’t land.
Business IT (as well as major media) are the South Seas islanders of the web. They see the types of things the web is capable of and they try to replicate them using their existing materials, but the planes don’t land. You can observe this happening right now in a vast number of cases including “Web” Services (WS-* specifically), statically typed languages, Active X Controls, Java Applets, XForms, and this website (look closely).
I believe the problem to be two-fold:
The great majority of experience with systems was not had with the constraints of the web in place. This makes conclusions drawn from observation of existing working systems, as well as recommendations based on them, extremely unreliable.
Very few people are aware of problem number 1 (Adam Bosworth is one them).
It’s interesting that many of the individuals I can think of that understand this situation seemed to have had to learn it the hard way (no offense meant to anyone in this list). Sam Ruby participated heavily in SOAP activity at Apache. Mark Baker’s username is always distobj (Distributed Object) because he was a big CORBA head. Tim Bray had a hand in XML Namespaces and watched, if not participated in, W3C XML Schema. Peter Yared was CTO of Sun Microsystems’ Application Server Division. I worked on XForms (among other things).
Adam Bosworth actually describes this process of being slammed in the face with the realities of the web in his talk:
In 1995 I woke up from a sort-of Microsoft induced narcoleptic coma and realized there was this thing called “The Web,” and got really excited about it.
How did the web happen? People take it for granted. You just assume that there’s always been the web. You know, in the beginning there was the web and the web was good and so on but that actually isn’t true. When Tim Berners-Lee came out with HTTP and HTML it turned out that he kind of hit a perfect storm of efficiency. He made something really simple and because it was really simple, virtually any P-programmer, by which I mean Perl, Python, and PHP, could generate web content. That was a heck of a lot easier than building on those, for example, really cool looking Mono apps that we just saw. Building a really simple form that says “here’s a list of the tasks that you have due today” was something that virtually anyone who could think could put up on the screen.
What I like to suggest to people coming from a more traditional background in IT is that there are systems that evolved under the constraints of the web and their design reflects that. Once you’ve accepted that the previous statement is factual, you are forced to draw one of two possible conclusions:
Systems that were designed through observation of the web and/or in adherence to the core principles of the web must be more suitable to the web than those that were not.
Systems that were designed through observation of the web and/or in adherence to the core principles of the web must have been designed by monkeys with little understanding of building systems in the first place.
It is these second types that bother me.
UPDATE: I forget to mention that Rams took notes on the talk.
Jordan T. Cox:
Good audio clip. I love itconversations.
comment at 26. July 2005
Paul M. Jones:
Wow. Exceptionally good. I especially like the illustration during the Q&A at the end describing RSS1 vs RSS2 and his skepticism of top-down ontologies. Thanks for the pointer, and for the Lesscode site.
comment at 26. July 2005
iterating toward openness » Blog Archive » Adam Bosworth on the Future:
[…] Lots going around late today about Adam Bosworth’s closing keyonte (links to audio) at the MySQL conference. I enjoyed Ryan Tomayko’s writeup most, especially this deceiving simple line: Systems that were designed through observation of the web and/or in adherence to the core principles of the web must be more suitable to the web than those that were not. This recognition will either make or break the entire open education movement, including eduCommons and the OpenCourseWares. […]
pingback at 27. July 2005
Ludo|Blog » Lesscode:
[…] L’ho consigliato su Qix qualche tempo fa ma non fa male ripeterlo qui: se vi interessa l’evoluzione prossima futura del Web e volete controbilanciare un po’ i troppi post di PR o dei soliti egomaniaci, fatevi un giro su lesscode.org. Particolarmente consigliati: Web Thinking, Web Architecture Roundup, Motherhood and Apple Pie. […]
pingback at 28. July 2005
Don’t take your memes to town [@lesscode.org]:
[…] What’s interesting in all this, is that while the toolsets and technologies are surely getting better, core Web architecture isn’t changing that much. What’s really happening is that people’s ability to innovate is improving - that seems to come about by accepting Web thinking. In short - instead of trying to make the Web a good place for your business or technology to function, adapt your business or technology to function well on the Web. […]
pingback at 07. August 2005
meaningful chunks » Blog Archive » it conversations: adam bosworth - mysql users conference:
[…] via web thinking (with bonus feynman quotes) [@lesscode.org] […]
pingback at 08. September 2005
Mike Watkins:
To be fair, there are still some older folks kicking about the industry who remember simplicity… if you go back 20 years, there were less-code type solutions back then - simple message passing, files, straightforward data structures, because in some cases that’s all we had.
The web made simple ubiquitous and potentially homogenous, and then, unsurprisingly, vendors (all the people Bosworth worked for) have been working hard to make it more complicated than it needs to be.
I can see why some shops will resist change, in part it will be as a result of some of the real pain and horror storys out there. I’ve seen some pretty big projects go off the rails thanks to Microsoftitecture, or, perhaps more fairly put, theme-of-the-day architecture. On one very large product development I’m aware of, Microserfs pushed an agenda and the older, experienced, sane folks hesitated in pushing back. Hundreds of person-years of development later, they scrapped the “pass everything between every object known to man as xml” architecture (performance well and truly sucked) and went largely back to what they’d been doing, successfully, before.
comment at 06. November 2005