March 2005 Archives
The initial "minority" post[1] is what rubbed me the wrong way. It's been refuted several times already, but perhaps I can bring this into a different light. It also goes back to Joel's API War article[2] (irony: on Yahoo, MSN, and Google, a search for "microsoft api" turns this up first. I'm sure it will on other engines also, but I'm not going to bother).
We have the internet. By "internet" I mean "the majority of the traffic that crosses a router on tcp port 80".
We then have the content. Content is typically created by a developer, for the end-user.
We also have the browser. It's what parses and displays the contents of the internet to the end user.
First, developer views.
-The trouble arises from the browser variations. (Note that this only applies to modern browsers, anything that's not a recent mozilla incarnation, IE6, recent Opera version, or recent Safari version, you don't apply here.) Now, developer A creates a site for internal company use, closed environment, etc. et all. Developer A can develop for any browser he wishes to, as it's a closed, controlled environment. Likewise, developer A can pay exactly 0 attention to standards and it literally won't matter to the end user, the one who really matters here.
-Developer B, however, let's say that he is charged with creating a simple interface for a company, which allows clients of this company to come and download related files. Suddenly, he has to factor in a LOT more variables than a closed environment: if he supports IE only, what happens when a big client uses Safari? Thankfully, for something simple like downloading related files, there shouldn't be too much havoc involved with making it work cross-browser (not mentioning cross-platform, yet). Likewise, clients using something other than IE are few in this siutation, so if he has to manually cater to a single client every so often, no big deal.
-Developer C, let's say he helps to maintain a large web portal. The moment a production page hits, if it isn't rendered essentially identically on every browser on every OS, he's going to be having a large many issues, and soon.
Second, end user views.
-All that end users want, is a site that is functional in every aspect. However, we start to have some minor issues when end user A switches from IE to Firefox. They load up their favorite site, and are slapped with a blank page. "Firefox sucks!", they proclaim, and instantly switch back to IE. This user is by far the most common on the internet, and in a sense they are the most correct. Being a majority, if your site doesn't work in their browser, they simply won't visit your site.
-We now have User B, whom I'll say uses Firefox. They're a recent IE convert, in love with the speed and features, plus the better security than IE (I'm generalizing, I know that Firefox has bugs, critical security holes, but just how often they're exploited and to what degree has yet to be seen). They love their non-IE browser to an undeniable degree.
-User C is the most interesting of them all. They use Mozilla Suite or Opera. These people are more often than not browser envangalists, or web developers, though they are a minority.
Third, browsers.
-We have legacy browsers, IE4, Netscape 4, and a few others. These are such a minority that developers don't care for them, and to a point, rightly so.
-We then have IE6. IE is pure windows-only, and that's not changing. It's what end user A uses, and they see no reason at all to switch browsers. Not only does it work, but their favorite site doesn't work in this other browser.
-Finally, we have Opera/Firefox/Mozilla Suite/Safari. Excluding our legacy browsers, they are the minority, but growing. Make a page in one using CSS2 and extensive UI tricks, despite being a wide range of browsers, they will generally render the same way straight across.
Fourth and finally, why IE will never ever fully support any web standard than their own.
As Joel wrote[1], "Microsoft lost the API war." This caused the back
port of Avalon, among other things that were slated for Longhorn.
However, he also said the following about DHTML:
-"There's no way
Microsoft is going to allow DHTML to get any better than it already is:
it's just too dangerous to their core business, the rich client."
Which, I would say is indeed true. There's a reason that Quicken is a
rich-client application, and not a web application. In it's current
state, most browsers are simply not capable of giving them the same
experience. However, with the advent of things such as Google Maps[3]
and Gmail[4], suddenly the web got a LOT faster. Even for the 56k
users. On top of that, a user with a 56k can now search through their
e-mail several hundred times faster than any rich-client based e-mail
application I've ever seen. With Google Maps, you can scroll state by
state, or down to the street level if you so wish. The amazing part
about this, however, is that you can scroll from one end of the US to
the other, at a street level, without using several gigs of local hard
drive space. It works on a 200MHz, and what's more, it works pretty
close to flawlessly. On top of all of that, it'll work under linux, and
essentially any OS that can run a modern browser. Pretty sweet if you
ask me, and free to boot. However, this is where Microsoft and the IE
team start to get worried. Their rich client interface is suddenly
worth only so much, and the web interface is suddenly worth something
as far as the end user rich client app is concerned. Suprise, it's
called innovation.
The IE team has been dead silent for the past several years, and only now do they speak of standards. The reason, once you think about it, is simple.
Let's say that with IE7, we have complete support for everything under the sun, and to the letter that the standard states. If they do this, every developer everywhere goes up in cheer. Well, everyone but the IE6-HTML developers (so to speak), right? Ah, wrong, that's why you've got quirks mode and reverse-compatability. In addition, they are Microsoft. They've got the money to revamp IE7 into the standards god of all gods, but they're not going to. Why? Think of it like this: Microsoft and the IE Team say, "okay, agreed, we need some compatability here, and some general basis, so here, have full PNG support, enjoy." Sounds great, but it's not all that it appears to be on the surface.
As Joel said, it's too risky to their rich client end-model. Suddenly the web would be THE place to develop on. Accessibility under any OS, under any browser, in any circumstances. Add in high-grade SSL, and to top if off, it's (relatively) secure. But, the "wave of the future" IS the web. If Microsoft and the IE Team ignore this, they will be left in the dust as eventually more sites drop support for IE completely, due to lack of developer interest. "Developers developers developers developers!", right? They're not going to miss out on that wave, there is a 0% chance of that happening.
So how are they going to pull this off? How are they going to satisfy developers, generate a good standard across all browsers, and still come out successful? Here's a hint, they're only going to pull two of the three.
This why they will never support CSS the same way that every other browser does. And, as long as they remain in the majority, they don't need to. They're making the most money, right, and as far as our customers are concerned, it's good. They'll always have "someone else" who demands support for X, but they're not making money off of that.
They're going to make a developer platform so great, so easy to use, while being secure, that provides rapid application development never before seen, and yet still have the ability to drop down to a really low level and optimize when it's truly needed. They're going to build something so great, that people will flock by the boatload. The catch? It's windows IE only.
They're giving us support for a lot of things, like PNG and most of CSS, but it's kind of like giving the minorities a mini Hershey's bar, while holding the four pound brick behind their back. They saw where this is going, and now they're going to do something about it. For example, if they break Gmail, people will flock by the thousands upon thousands to Firefox.
The IE Team is 100% CRITICAL to Microsoft's future. What they're doing now, is providing existing developers a way to make killer apps (small piece of chocolate), while holding the real treat for themselves.
"Developers developers developers!"
IE will never have proper CSS support, in effort to help their cause. The moment that IE7 supports it all, flawlessly, is the moment that anyone at all can use any other browser on any other OS, and without paying Microsoft a dime, get the job done. They're just holding off for a bit, until they can release the killer platform that will invariably come.
In a nutshell: standards are the thing that could kill off quite a bit of Microsoft's revenue.
Don't count on them. You can place your money on the dollar, or pray that Firefox suddenly jumps to 40-60% marketshare. Thing is, Microsoft doesn't need to innovate yet. They just need a Firefox killer, which is completely possible.
[1] http://blogs.msdn.com/ie/archive/2005/03/09/391362.aspx#391429
[2] http://www.joelonsoftware.com/articles/APIWar.html
[3] http://maps.google.com/
[4] http://www.gmail.com/
