There has been a lot of fascinating discussion going on today about Google's latest 'beta' product release: the Google Web Accelerator.
If you haven't heard about the issue yet there is a great post on Signal vs Noise about it.
So who's in the wrong here? Google or the web application developers? The REST camp is blaming the app. developers and the app. developers are blaming Google. Both groups can't be right, someone has to be to blame! ... right?
Well actually no, this time both groups are at fault.
Application developers should really not be making state changes via GET requests. It's in the RFC, and if you stop to think about, it just makes sense.
Unfortunately it's also a relatively common practice. Blogger does it, my bank does it, heck even Google sets some of it's preferences that way.
Now we have the Google Web Accelerator (GWA) that doesn't seem to care that many common web applications use the (improper) technique. So they go and release a tool into public beta that can and actually has deleted their customers data.
Now you try and explain to an angry client why the web accelerator they just downloaded deleted hours of their work. Do you really think the explanation that 'well it's the web application's fault because it doesn't follow the spec' will really ride?
I don't think so.
Both groups are at fault here and both groups need to take some steps to correct the problem.
Google needs to be a responsible web citizen and think long and hard about the potential side effects of a new product (wether or not they claim it is 'beta' software). Mistakes like the one made with the GWA are simply not acceptable.
By the same token application developers need to be much more careful about how they design their applications. Especially when designing the interfaces that that modify and delete customer data.