
Story of XMLHTTP (2007) - okket
http://www.alexhopmann.com/story-of-xmlhttp/
======
xenadu02
I thought this was well-known? Microsoft invented it for OWA but didn't
realize what they had. A few years later other people realized how
transformative it was and evangelized it. Other browsers added compatible
implementations. The rest is history.

It is amusing to see the take in Avalon since we now know how that turned out.
His complaints about HTML/JS/DOM are spot-on but it turns out the solution was
to improve HTML, JS, and the DOM.

~~~
pjmlp
We were doing XMLHTTP like communication at a startup back in the early
2000's, by making use of a Java Applet and the communication
JavaScritp/Applets.

I imagine we weren't the only ones doing that before XMLHTTP was born.

Regarding Avalon, I have been doing quite some consulting projects (WPF and
UWP) in the last three years, and at least on the markets I move on, there are
plenty of greenfield projects. :)

~~~
jontro
Yeah, using hidden iframes worked as well

------
netcommentator
XmlHttpRequest is an awesome innovation from the point of view of the software
development community as a whole.

But from a Microsoft shareholder's point of view it was a disaster.
XmlHttpRequest and ContentEditableDiv (known back then as DesignMode) ushered
in Web 2.0 and Web 2.0 ended Microsoft's dominance of the software industry by
making Windows irrelevant.

~~~
kowdermeister
> by making Windows irrelevant

Yeah, like it's not the most popular OS out there :) What Web2.0 did is that
it removed the need of certain type of desktop software.

BTW if Microsoft didn't invent XmlHttpRequest, somebody else had done it.

~~~
zedred
> What Web2.0 did is that it removed the need of certain type of desktop
> software.

The commonly held belief at the time was that Microsoft's dominance rested in
large part on that desktop software. Think how hard it would be _today_ if you
wanted to start a new mobile OS (let's call it "windows phone") years after
entire software ecosystems have been established for iPhone and Android.

It's safe to say that Microsoft is not the shining star they once were. If we
were to pick a single moment in history that lead to their undoing, I think
this would be it.

> BTW if Microsoft didn't invent XmlHttpRequest, somebody else had done it.

"Somebody else" didn't have the market share IE did. Something that was
incompatible with IE at the time was a non-starter. What's remarkable about
this story is that when Microsoft saw the browser coming in the Netscape
years, their entire strategy was to head that shit off by ensuring that their
own browser become market dominant so that they could keep the web in a place
that wouldn't hurt MS.

After all that effort, the anti-trust suit, etc, etc... and they'd gotten
themselves in the place where they controlled the future of the web, it was
some random developer at Microsoft itself that invented the very thing which
was their undoing.

~~~
cpayne
> If we were to pick a single moment in history that lead to their undoing

I always find these sorts of comments interesting.

Microsoft is a very different business than say other failures who you could
point to a single event (Kodak, Word Perfect, Lotus Software, Myspace)

Remember, Microsoft have over $100 BILLION in cash[0].

You could perhaps cherry pick certain parts of the business. But I remember
the stories of how they made more money from Android than Windows Phone[1].

Microsoft has a long, LONG way to fall before I would say they have failed.

[0] [https://www.bloomberg.com/news/articles/2016-06-13/why-
micro...](https://www.bloomberg.com/news/articles/2016-06-13/why-microsoft-
with-100-billion-is-borrowing-to-buy-linkedin) [1]
[http://gizmodo.com/5806227/did-you-know-microsoft-makes-
five...](http://gizmodo.com/5806227/did-you-know-microsoft-makes-five-times-
more-money-from-android-than-from-windows-phone)

------
frik
The sentense about GMail using XHR before Googe Suggest is wrong. GMail and
Google Maps used iFrames, but not XHR in the first few years, and started to
use XHR only in 2006+.

------
jaza
_This was the good-old-days when critical features were crammed in just days
before a release_

 _We did a quick security review but at the time no one really understood the
seriousness or types of vulnerabilities that anything shipping could cause_

Explains the horrendous level of quality of all Microsoft products at that
time! I find the honesty in these statements very refreshing.

~~~
wvenable
Seems like a bit of a contrast between that and this:

[http://moishelettvin.blogspot.ca/2006/11/windows-shutdown-
cr...](http://moishelettvin.blogspot.ca/2006/11/windows-shutdown-
crapfest.html)

------
pavlov
The first time I used dynamically loaded XML in the browser was in 2000, but
it wasn't XMLHttpRequest -- it was in Flash.

Flash 5 came out that year, and the player was ubiquitous at something like
98% market penetration (it was preloaded by both Microsoft and Apple).

That was the first release that included real ECMAScript-compatible
ActionScript, and it also had APIs for asynchronously fetching XML data. IIRC
implementing it on a server was somehow tricky, but it was my first taste of a
true rich client in the browser.

------
hackits
Thank god for smmry

Reduced to 5 sentence for those who don't want to read the whole post.

` How we actually shipped XMLHTTP It was one thing to have this cool component
we could use to talk to the server, but we still weren't in any position to
use it in the shipping product yet.

Which is the real explanation of where the name XMLHTTP comes from- the thing
is mostly about HTTP and doesn't have any specific tie to XML other than that
was the easiest excuse for shipping it so I needed to cram XML into the name.

The beta shipped and the OWA team was able to start running forward using the
beta IE5, while Shawn fixed a number of bugs through the ship day of IE5.

Actually shipping the thing required help from many more people that I've
mentioned so far.

The lesson to take out of this thing is to appreciate the importance of
shipping and having the patience to let something succeed.

