What do we get with PUT/DELETE?

I asked this question in response to proponents of HTTP PUT and DELETE verbs disputing the points made by Russell Beattie in his Hypocrisy: RDF and the Atom API post.

So exactly what do we get in return for doing all this? Using PUT/DELETE is designing for the future? All that does is replace four characters ('POST') at the head of a HTTP request with other characters ('PUT' or 'DELETE') which could have just as well been within the payload or headers.

What tangible rewards do we get for:

1. abandoning support for millions of J2ME cellphones already out there.

2. forcing us to wait until there are enough Atom-capable J2ME phones out there

3. require everyone to support both REST and SOAP?

What do we get in return?

A sensible question, I thought.  I was hoping that my question would help them see the issue more clearly.  No such luck.  Ken MacLeod answered on the atom-syntax mailing list:

Off the top of my head, we get:

* more software that uses standards-level features in ways they are
   supposed to be used

* bug reports against tools and libraries that aren't implementing

* network effect with other tools, libraries, applications and
   standards that already use these features in the same way

* raising people's awareness to the fact that an X/HTML editor
   "saving" its content via PUT, as _many_ do, is just as good as
   PUTting an Atom entry

* protocol compatibility (PUT/DELETE => FTP's STOR/DELE)

* an obvious pattern for application-specific extension

* API extensions with at least one less dimension of lock-in

As I suspected, I am fighting up-hill against gnomes on Mount Nevermind.  In case you are not a fan of Dragonlance, Mount Nevermind is:

A Great, Huge, Tall Mound Made of Several Different Strata of Rock of Which We Have Identified Granite, Obsidian, Quartz With Traces of Other Rock We Are Still Working On, That Has Its Own Internal Heating System Which We Are Studying In Order to Copy Some Day That Heats Up the Rock to Temperatures That Convert It Into Both Liquid and Gaseous States Which Occasionally Come to the Surface and Flow Down the Side of the Great, Huge Tall Mound…

Sorry, Ken.  I know you are a smart guy but I think you are being oblivious to common sense on this issue.

Wise fragger Tim Bray lobbed his wisdom into the fray:

In your list, I do not observe any entries that amount to "this will make it easier to implement" or "this will enable features that would not otherwise be possible." Thus you are missing the two most powerful engineering arguments are are facing an up-hill struggle. In fact, it is observable that insisting on PUT & DELETE in fact adds to the difficulty of implementation in some contexts; which seems fatal to me when the arguments in favor are so philosophical.

To which Sam Ruby replied:

Do the words of somebody who has actually implemented this count for anything?


Ben Trott has implemented both too, would it help if he were to weigh in:


Sam, words of implementors are good but Ben's experience is limited to the server-side.  Their words and words of others such as J2ME client developers should be used as weights on a balance and not as shields to protect wrong decisions with.  Besides, taking Ben's word of the issue is like using a yogi's word to design a bed.

BTW, I have just joined the atom-syntax mailing list.  It looks like a hot bed of activities.  Ken's post sparked off a long thread of discussion which you might want to follow.