So it turns out that Microsoft has been quietly working on an AJAX toolset. Soon to be not so quietly, it seems, since they’re featuring it at their MIX06 conference in Vegas in March. On the one hand, this is exciting, because it means Microsoft has once again recognized the obvious and embraced a technology they didn’t invent. On the other hand this sucks because Microsoft has once again embraced a technology they didn’t invent.
What I mean is, we’ve seen this before, many times. It’s the exact kind of hurry up and reengineering that brought us IE, VBScript and C#… and Windows for that matter. My concern is that just when things are getting interesting, just when the Wild AJAX West is really starting to open up, Microsoft comes in and “standardizes.” And that just sucks the fun right out of it. Personally I was a lot happier when AJAX was something a bunch of annoying bloggers “invented” simultaneously. Back then you could hack together some cool shit and people would be blown away. When AJAX first came on the scene, it literally did things that were impossible. By definition, when a lot of impossible shit is getting done, that’s a good day. I even invented my own variant at one point: serverless AJAX running from a CD-ROM! (I meant to write an article about that, but never quite got around to it. Sorry!)
Of course the smoke was in the air as soon as Google did AJAX. Because nothing lights a fire under Microsoft like Google doing something. But man, I can’t shake the feeling that the absolute last people you want doing complex, cross-platform browser hacking are the people at Microsoft. I mean look at Hotmail! Ugh.
This is a common misconception, but in fact Microsoft did invent AJAX. Way back in IE 5, Microsoft introduced XmlHttpRequest, which to this day is the underpinning of AJAX development. Originally, Microsoft used this for Outlook Web Access and some other rich internet apps. It was not until Mozilla copied that API *exactly* that developers were able to use the full power cross-browser, and AJAX took off. One of the other key components of AJAX, DHTML, was co-created by MSFT engineers. Finally, MSFT was co-author of XML 1.0 spec. All of the people are still at MSFT, and it is easy enough to verify these facts on Google. Full disclosure; I work at MSFT. For full accuracy, Jesse James Garrett of Adaptive Path coined the term “AJAX” after the style of development became popular outside of MSFT.
Oh, and sorry to spam your blog, but I wanted to point out that the new version of Hotmail (mail.live.com), now in beta, has the rich AJAX style UI (much better than the original OWA, which itself was better than Hotmail). In fact, the ATLAS controls (you can even try them now, at atlas.asp.net) are the same code based used to build the new mail service. 🙂
Actually, I appreciate the comments. Certainly Microsoft introduced XmlHttpRequest and DHTML, and even found ways to exploit these two technologies within their applications. But it didn’t become “AJAX” until someone, a lot of people, pried open the cookie jar and showed normal, lone-gunman web developers like me how to do it and, perhaps more importantly, told us it was okay to do it. As you say, Microsoft had their own plans for these technologies. I guess what really worries me about Atlas is that it comes with all the complexity and overhead of .NET. I use Visual Studio for Windows development, I’m “the Microsoft guy” to most people I work with, and I still find the forced march of integration of server controls, web services, compiled .DLLs, etc. to be a major hassle for web development. And don’t even get me started on SharePoint. Cherry picking and misusing these technologies can be fun and productive–and really that’s where AJAX is coming from–but it’s been a while since Microsoft made the web developer part of my life better on purpose.
OK, that’s good feedback. I agree that “AJAX” was not possible until it was ported to other browsers, and some high-profile sites showed that it was possible to do these things without getting “locking in the Microsoft trunk”. We had been pushing the technologies for some time, of course, but I agree it was not always a focus to show devs how they could get the best experience on competitor browsers.
Interesting point about ASP.NET server controls. The Atlas libraries are actually designed to be able to be run completely independent of ASP.NET or IE. Of course, ASP.NET builds some hooks to make it more convenient for ASP.NET developers, but it’s not a required thing. Also note that the IE team has been cooperating with the other browser vendors more; for example the work on high-assurance certs; changing SSL support to be inline with other browsers, CSS fixes, etc. There will be an announce at MIX highlighting one area of the cooperation that is really relevant to typical AJAX developers. But I agree there is more to be done here; and we still risk a situation where browser vendors have lots of incompatible developer hooks being pushed.
So, Josh, buddy, got a MIX06 pass you can set me up with? Because I can get to Vegas. I promise to say nice things for at least a week after that! I might even still be saying nice things when I get to SXSW Interactive next month. Yeah, well, I had to try.