It’s just data

Agile Web 2.0 Development

There is an interesting discussion going on between Tim (Bray) and Tim (O’Reilly) over the use of the term Web 2.0.  I’m with Tim (O’Reilly) in that the term Web 2.0 is as relevant today as the term P2P was in 2001.  And I’m with Tim (Bray) in that the term Web 2.0 will likely be as relevant in 2009 as the term P2P is today.

But I will say that I like the term Web 2.0 much more than I like Tim (O’Reilly’s) previous attempt, namely the Internet Operating System, for reasons I’ll go into at near the end of this mini-essay. 

Note: Casual or non-technical readers may wish to skip ahead entirely to the conclusion.

Case study

The Atom Format Specification was recently declared ready to implement, so it clearly was time to update the feed validator.  With RSS, the tests were organized into three buckets, may, must, and should, based on what the inferred requirements were.  This ultimately turned out to be less than helpful.

With Atom 1.0, a fresh start was possible.  The first thing I did was to scan the spec for explicit RFC 2119 keywords like MUST and SHOULD, and identifying each as a place where a test case was needed.  As I wanted others to participate, I placed this list on a wiki.

After a few rounds of feedback, I needed a checklist so that I could keep track of which tests I had implemented so far.  After a few moments thought, I decided to put a link from each identified test to the test case that implemented that test.  Here is a snapshot from early in that process.

Ultimately, that list has become mostly filled out, and it was worthwhile to add a table of contents.

Eventually, the lists of tests grew.  Atom’s date and email formats are more strict than in prior feed formats.  Atom’s reference to the InfoSet makes explicit a number of assumptions that have built up over time with RSS.  There are proposals which make the handing of whitespace explicit.  Even so, the current number of Atom 1.0 tests is less than half of the ones that were written up for Atom 0.3.  This gap will not only be closed, but surpassed.

This lead to replacing the Apache generated directory listing with a checked in Table of Contents, and with the creation of a header file that links each directory (example) with the associated section in the specification (example), and transforms the icon associated with each line into a hypertext link that launches the Feed Validator application itself.  Additionally, the output of the Feed Validator (example) links to on-line documentation (example).

The header file was the only place where I used any fancy Web 2.0 programming techniques.  Inspired by Mark Pilgrim’s BetterDir and Chris Heilmann’s Unobtrusive Javascript, I wrote a small script which accompanies the Apache generated output which causes the client to dynamically rewrite the page, inserting the links.

Arguably, this approach is a bit fragile.  If JavaScript is turned off, nothing will break, but the links won’t be added.  If I were to switch to a different web server, or even a different version of this web server, again nothing would break, but the links likely won’t be added.  If the formatting of the RFC were to change, my links into the document will likely revert to simply referencing the beginning of the document instead.

In the latter two cases the trade-off between writing an entire application now vs the literally few minutes it would take to modify the script later is one that I am willing to take.

CASE tools

When I worked on federal government contracts in the 1980s, the traceability between specifications, implementation, test-cases, and documentation that I was able to effortlessly achieve here was something that we could only dream about.

A number of vendors produce a number of so-called Computer Aided Software Engineering (CASE) tools that help with this.  In many ways, such tools do so much more than what I have done.  But in many meaningful ways, they also can be said to do so much less.

Let’s enumerate the list of tools I used in this development.  Can you spot the CASE tools?

Internet Operating System

I mentioned above that I did not particularly care for the term Internet Operation System.  Look at the composite application described above.  Where is the Central Processing Unit?  Job scheduler?  Swap partition?

My composite application can be simultaneously executed by a large number of users.  If you clicked on any of the links earlier in this essay, you too may have participated.  And, if you cared to, you could easily bookmark where you left off, enabling you to resume at any time.  All without a job scheduler or swap partition as such.

Instead, this composite application is a distributed state machineSmall Pieces Loosely Joined, and all that.

The underlying fabric of all this is something I explored in Neurotransmitters.  Instead of progressing from small cells (a desktop operating system) to bigger cells (an Internet operating system), you see a progression to multi-cellular networks, where cells exchange data (either viruses or hormones).

Note: to be fair, Tim (O’Reilly) was referring to differing aspects when he coined the term Internet Operating System.  Aspects like identity – something that we are still struggling with today.

Web 2.0

I do agree with Tim (O’Reilly) that we are in the midst of a qualitative shift in our understanding of the Internet, but I see it as the third major iteration.  To help align this, I’ll use the programmer-standard convention of indexing starting with zero, as opposed to the marketing-standard convention of counting starting with one.

Web[0] is exemplified by static home pages, published in broadcast mode.  Many weblogs today continue to operate in this fashion.

Web[1] is exemplified by e-commerce shopping carts, enabling two way interaction between business and consumers.  Comments and Trackbacks are in this category.

Web[2] is characterized by action-at-a-distance interactions and ad hoc integration.  By my putting a link here, your page rank is changed there.  A book I purchase today affects Amazon’s recommendations tomorrow.

I consider AJAX to be “merely” an optimization of an implementation detail of Web 1.0.  On the other hand, I consider the integration of Google and craigslist to be very Web 2.0.  As is GreaseMonkey, Technorati, and even eBay and Wikipedia.

Clearly, some people got this whole “hypermedia as the engine of application state” thing long before everyone else did.


Never mind the buzzwordy title: Sam Ruby is right on — the Web is much more significant than many people like to think.......

Excerpt from Stefan Tilkov's Random Stuff at

chmod 777 web redeux

Tim Bray and Tim O’Reilly are discussing the term “Web 2.0”. Sam Ruby has also thrown his $0.25 in (Sam’s opinions are generally worth more than the typical $0.02). As an individual composed of a great deal more Geek Stuff than Marketing Stuff, I...

Excerpt from James Snell's weblog at

What’s in a name? Web2.0

Sam Ruby detailed the discussion Tim Bray and Tim O’Reilly are having regarding the use of the term Web2.0.  Sam indicates, "I’m with Tim O’Reilly in that the term Web 2.0 is as relevant today as the term P2P was in...

Excerpt from Texas Venture Capital Blog at

Sam Ruby: Agile Web 2.0 Development

[link]...

Excerpt from del.icio.us/tag/atom at

Untitled

I swear there used to be more posts in the “blogosphere” like Sam Ruby’s Agile Web 2.0 Development. You know......

Excerpt from LaughingMeme at

What do you see in Web 2.0?

There is an ongoing discussion on the validity of the “Web 2.0” moniker, started by Tim Bray, rejoined by Tim O’Reilly, and refined by Sam Ruby and many others. The whole discussion is fascinating not only for technical points, but for the...

Excerpt from BitWorking at

Agile Web 2.0 DevelopmentI like what Sam Ruby has to say about Web 2.0, but why does he spell eBay as e-bay?...

Excerpt from Adam Trachtenberg at

Web 2.0, agility, path convergence

Sam Ruby: Agile Web 2.0 Development . On the subject of agility, I’d suggest that an agile data modelling language (with query support) is needed for Web 2.0. RDF stores make marvellous agile databases (with SPARQL). Joe Gregorio neatly suggests...

Excerpt from Planet RDF at

Adam’s comments are closed, but I’ve fixed the spelling of eBay.  Thanks Adam!

Posted by Sam Ruby at

My link blog is new this week. I’m still trying to figure out the best way to organize it. Can’t decide if comments there are good or bad. Thanks for the quick fix.

Posted by Adam Trachtenberg at

Sam Ruby: Agile Web 2.0 Development

Tim Bray doesn’t like the buzzwordy-ness of the Web 2.0 label, but Tim O’Reilly does. Sam Ruby does a great (if somewhat technical) review of the validity of the term: Web[0] is exemplified by static home pages, published in broadcast mode....

Excerpt from What's Web 2.0? - at

How this web2.0-style integration going to be facilitated?
How brittle and ad-hoc is it going to be? How will traditional issues of software development such as interfaces, contracts, versioning will be handled?
How can we go beyond the url-based integration, and should we?

Some thoughts on structuring references to services, and estabilishing interface declaration and versions: [link]

Posted by Julien Couvreur at

Links for 2005-08-09 [del.icio.us]

影响中国软件开发的20人 Browsershots...

Excerpt from 嘟嘟老窝 at

Web 2.0 or Not?

After I published that little Not 2.0 squib and Tim O’Reilly wrote six long paragraphs of rejoinder, I said “this would be a good time for others to join the conversation”. Well, lots did, and clearly one more go-around is called for....

Excerpt from ongoing at

Sam Ruby: Agile Web 2.0 Development

deusx : Sam Ruby: Agile Web 2.0 Development - “...this composite application is a distributed state machine. Small Pieces Loosely Joined, and all that.” Tags : ajav api atom javascript rest web web20 webdev www xml...

Excerpt from HotLinks - Level 1 at

Continuing the Conversation with Tim Bray

Tim Bray wrote an extensive reply to my Not Web 2.0? piece. It’s well worth a read (as is Sam Ruby’s piece on the same subject). Since Tim Bray doesn’t allow comments on his blog, I added a substantial reply......

Excerpt from O'Reilly Radar at

Continuing the Conversation with Tim Bray

By tim Tim Bray wrote an extensive reply to my Not Web 2.0? piece. It’s well worth a read (as is Sam Ruby’s piece on the same subject). Since Tim Bray doesn’t allow comments on his blog, I added a substantial reply (maybe longer than my original...

Excerpt from O'Reilly Radar at

Web is Atomic

h3. What makes web different? What puts Internet apart from other computing? It may sound dumb, but Internet is different because it is online. What does that mean? We can request as much information as we want at the moment, no need to buy...

Excerpt from maluke.com - semantic web in reality at

What is Web 2.0

Web 2.0 is about the people, when it comes down to it. So it has to be inclusive. The definitions of technologists, social scientists, web designers, philosophers, educators, business people - they all count....

Excerpt from Web 2.0 Explorer at

Sam Ruby: Agile Web 2.0 Development

Tim Bray doesn’t like the buzzwordy-ness of the Web 2.0 label, but Tim O’Reilly does. Sam Ruby does a great (if somewhat technical) review of the validity of the term: Web[0] is exemplified by static home pages, published in broadcast mode....

Excerpt from What's Web 2.0? - at

Koodiklinkikalla ketterä Web 2.0 -kehitys ja julkiset beetat

Viikon 17 koodiklinikalla tarkastellaan ketterien menetelmien soveltamista Web 2.0 -ympäristössä ja verkkopalveluiden kehityksessä muutenkin. Erityisesti avoimen lähdekoodin ohjelmistokehittäjien arvostusta nauttiva Sam Ruby käy artikkelissaan Agile...

Excerpt from Hm-ohj2006 : blogi at

What is Web 2.0?

A buzzword in its prime, Web 2.0 is a loose label for a variety of tools, techniques and services that are coming together to humanise the web in new and exciting ways ... but is it really new?... [more]

Trackback from Headshift

at

Sam Ruby: Agile Web 2.0 Development

web 2.0 basic posting 05/09...

Excerpt from del.icio.us/microlearningorg/micro at

What is Web 2.0?

You’ve probably heard the phrase “Web 2.0″. You may’ve even read some of the various definitions of it. And Web 2.0 does appear to mean different things to different people, so you would be forgiven for still feeling confused about the...

Excerpt from Mystitech's Weblog at

Add your comment