This weekend I tried to take part in a virtual MDN documentation sprint. I say tried because, while I was present in IRC for some part of it and submitted some updates, I don't think I got a lot done. I changed a couple things that had been bugging me about the Rich-Text Editing in Mozilla page, but it turns out that more accurate information had existed the whole time on a different page, so that didn't really add a lot. Having finished that one little thing and feeling not very helpful, I went in search of something else to do and saw an item on the sprint wishlist about updating the Getting Started with AJAX page. I was like, "Sweet, this is easy stuff, I can do that!"
I cannot, as it turns out, do that. Not without many hours of research. I used to be able to do that, but now I do this:
$.ajax(...); I do it too much. I do it so much, in fact, that I no longer have any idea what current versions of browsers actually require to complete a successful XHR.
For example: when I was trying to update that AJAX document, one of the first things I did was to remove the word "nonstandard" as an adjective describing XMLHttpRequest. That took about half an hour. I was pretty sure it was standard, but I'd never really checked. I still don't really know. The W3C has a document on it, but it's marked "Candidate Recommendation". Does that make it standard? Does the fact that modern browsers have implemented it in a standard way make it standard? Is it not standard until all the browser-specific caveats have been removed from the implementations? Not only was I unfamiliar with the state of those caveats, I didn't really know the disposition of XHR as a standardized concept, and still am not 100% confident in my research on the subject.
And dude, that is sad. I extol the virtues of XHRs at work constantly, in every planning meeting, in every design session. I'm like one of those people on twitter who talks about how awesome Justin Bieber is even though they've never met him. I am a creepy XHR stalker/fan who's based her devotion on an impression that leaves out much of the detail. No one who likes to present herself as a professional front-end developer should be doing that.
ajax() are more universal, because they simply wrap a standard* up in a shorter function call. It's good that people can rely on that stuff being in the libraries they use and that that knowledge is useful across a variety of projects. It's probably pretty dumb to create a new XHR abstraction for each new application one works on.