Keep ‘em separated. Jonathan Weiss, points out that browsers don’t do REST, and sometimes it’s best to separate different interactions across separate controllers:
Sometimes the responds_to stuff makes sense. If you mostly expose data, then offering JSON and XML besides XHTML makes sense if by doing this you save your clients the transformation or expose the data to more clients that you could not reach before. But it you have a Web Application with a lot of interaction then coupling the Desktop Browser version with the iPhone version, the mobile version, the JSON version, and the XML version does not make any sense to me.
Burning calories. Krishna Kotecha has an interesting take on vendorism, in the context of the Rails 2.0 release:
This all ensures that their 3rd party developers are kept focussed on the vendorâ€™s wares and technology, and not distracted by things such as evaluating other approaches and possibly better techniques. Mastered COM? All change for .Net. Did we say Windows Forms? We meant Avalon WPF (see Joel Spolskyâ€™s take on this in â€˜How Microsoft Lost the API Warâ€™). Java seems a bit too simple? Here you go guys, sink your teeth into this plethora of J2EE specs – at the end of all of that you might decide POJO (Plain Old Java Objects) is the way to go anyway.
Deja vu. Also, Krishna’s take on Sun’s strategy: Engage and Contain.
I remember back in the days there was, what did we call it back then, embrace and extend? Not sure of the details, but I think Microsoft was being accused. Was it Sun doing the accusation? Details are sketchy, but I think something about a new platform for building and delivering applications.
OAuth takes that approach one step further and extracts the best practices from the popular authentication systems I mentioned above and turns it into one elegant, unified authentication protocol that anyone can implement.
Friendly reminder. The language you know is 10x better than the language that’s hip. Derek Sivers on switching back from Rails to PHP.
Picture: net without the neutrality.