I am so entirely bored by the “IE6 must die” movement. All you people out there who think you’re on some high horse of morality and rightness for the web’s future — this is a complete waste of effort. It’s useless windbaggery and nonsense. To date, I don’t think a single user has ever upgraded their IE6 simply because some douche-bag developer told them to. You live in a bubble if that’s how you think the real world works.
And while we’re at it, you sites out there who intentionally abandon IE6 support, not because it makes sense for your site (and not because you’ve provided a reasonable fallback graceful degradation for the less fortunate), but instead just because you want to flip the finger at Microsoft… well, you suck. And you know who else sucks? The sites who intentionally employ techniques they know will cause IE6 to crash, as sort of a holier-than-thou “screw you” to a user who still surfs any of the web with IE6.
Then there are those who feel that we can create self-fulfilling prophecies and that will make this problem go away. Or the nagging site banners and twitter icon overlays reminding everyone just how much of a jack ass you are about IE6. Yeah right. Amusing, I guess, but not productive.
Get over yourselves, already. There, I said it. Deal with it.
Why won’t you just upgrade already?
Somehow, the conventional wisdom has become, if we screw users who are using IE6 by breaking the web for them, then they will either be forced to finally upgrade (because grandma really doesn’t want to lose that pretty looking icon on her desktop) or they will complain loudly enough to their sysadmins that they will be forced to upgrade everyone.
I’ve got news for you. If someone is still using IE6 (and I feel sorry for them if they are), they are not going to upgrade, ever. If by now, we haven’t figured out enough different ways to screw those unfortunate souls out of what the web of 2010 is, I assure you that Youtube dropping IE6 support is not going to be the lynchpin that does it.
You really think all those sysadmins who stubbornly stick with WinXP SP1 and IE6 (circa 9 years ago) give a damn about whether the employees can view the latest <canvas> powered sites? Or, lemme guess… you think they really care so much about all those missing rounded-corners and ugly semi-opaque PNG images that hurt their users’ eyes? Riiiiiightt.
An inconvenient truth
Before you go crazy on me, let me state for the record, I hate IE6. News Flash: So does Microsoft. And while we’re at it, I dislike IE7 and IE8 as well. I still use them (IE8) though, mostly because they still comprise better than 50% of the browser market share world wide and so that helps me keep in touch with the little people (the silent majority) in terms of performance and functionality. I wish my job was so ivory-tower that I could exclusively mess around with bleeding edge nightlies of Webkit and HTML5/CSS3 wizardry and conveniently ignore the IE crowd.
But that’s not my world. I get the “privilege” of dealing with all the crap that is the IE6 box model, float bugs, CSS 0.8 support, etc. Oh, and I like my visitors. If they happen to choose a crappy browser to view my site in, I assume they probably know by now how crappy their lot in life is and that I probably don’t need to piss on them again by reminding them for the 10 millionth time. I’d rather just grin and bear with the pain, and try to make something passable (albeit not pretty) for those users to experience when they land on my site.
And you know why I feel this way? Because IE6 users are still 11% of the user base my company sees. This is a fact. You may not like it (I don’t either). You may think it shouldn’t be that way (I do too). But you can’t deny that it’s reality. If you think the “better” 89% of the web community is all you need to care about, go right ahead. Me? I still care about 100% of the web community. Welcome to my world, just for the next few minutes while you read this.
Why is it that so many people readily prescribe to social liberalism and believe we (ie, the government) should make sure to stick up for the disenfranchised, the poor, the sick and needy, every last homeless person — we all recognize with social conscience how important those efforts are. But we freely dismiss the lowly and poor IE6 users as rabble that aren’t worth fighting to keep? That’s technological bigotry.
So, I have bluntly stated that I think it’s a waste of time to try and kill off IE6. Not only is it a waste of time, I think it’s actually hurting the web because we aren’t focusing on the things that would actually progress it. But I also don’t think it’s good to bury our heads in the sand and pretend that nothing can be done about it… there are ways to make the web better in a productive and realistic way. What are those ways? I’m glad you asked.
I hereby propose to the world (mostly Microsoft) the following 2 “solutions”:
- “IE6frame” (much like ChromeFrame, but built by Microsoft, for Microsoft).
- Fork the IE team into two distinct and irrevocably totally separate units. We need two Microsoft browsers: IE (Consumer Edition) and IE (Platform Edition).
This idea might be becoming a reality, of sorts: UniBrows. Good news, but Microsoft needs to throw their guarantee behind it if any corporate IE6 installs are going to be able to upgrade to a newer IE and rely on this plugin for intranet compatibility.
We all know the common explanation for the amount of people still on IE6: primarily from the corporate world, where so many legacy corporate intranet applications were built around the Microsoft platform (and thus IE6) that sysadmins just simply cannot justify the time and expense of rebuilding (or even reverifying) all those apps in a newer browser. Not to mention the likely OS upgrades that would also become necessary.
Whether you agree with the premise of this argument or not, there’s a good chance at least a decent amount of corporations (rightly or wrongly) feel exactly this way. In fact, I believe that most of the IE6 argument still centers around this issue. But even if I’m mostly wrong and only 25% of corporate installs of IE6 have anything to do with app compatibility, IE6Frame is still a great solution for that 25%.
By the numbers
Here’s how it works: Microsoft takes the rendering engine and the JScript engine from IE6, liberates it from the IE6 browser “chrome” code and OS, and makes it into a plugin — IE6Frame. This plugin is designed to be installed in IE7, IE8, and even IE9+ browsers. It 100% completely and totally guarantees the IE6 web experience (even security defaults, etc), but inside a newer (and more secure) host browser.
Microsoft must then issue the plugin with a corporate guarantee that they stand behind for all their platform customers — that IE6Frame will identically run their legacy IE6’ish web apps in whichever newer IE browser it’s installed in.
The activation of IE6Frame can be as simple as a white list in the plugin settings which indicates which URL’s should switch the plugin on. ChromeFrame does something similar, but uses an HTTP Response Header or <meta> tag to switch it on. However, this would require some (minimal) changes to legacy web apps to accomplish, so the settings opt-in list is more ideal.
Any site which isn’t on that list just renders the same as the host browser, no questions asked. Just like with ChromeFrame, users get the benefits of an upgraded browser for all newer sites, and transparent graceful downgrading for the subset of sites/apps they still depend on but which are stuck in 2001.
Not just “compatibility mode”
No, this is not merely a re-statement of the existing “compatibility mode”. Maybe it’s a restatement of what “compatibility mode” should or could have been… but IE6Frame is quite different than what we have now.
First, it has to be absolutely the identical code base… “Compatibility Mode” only emulates old behavior, and in true form, not exactly as it was. For this idea to have any success at all, corporate sysadmins have to be assured that their apps will run identically in IE6Frame. If there’s any emulation layer at all, I expect most sysadmins will outright reject IE6Frame as a waste of bytes. But maybe, just maybe, if it really is that awful IE6 code adapted to run directly inside IE8 or IE9, sysadmins might take a look at it.
Second, Microsoft has to be wholeheartedly invested in IE6Frame enough that they issue a corporate guarantee they stand behind. It’s not as difficult as if they said they had to manage to get IE6 running in Windows 7, and that they had to maintain the code base for security (they’re already doing that through 2014). It’s actually easier. They just have to get the code base to run in their latest and greatest browser host environment — the one that can be patched regularly for security. The IE6Frame would sort of be like a sandboxed VM… inside the outer host browser, which wouldn’t let through any evil code that IE6Frame might otherwise be susceptible to.
If anyone can pull off such a feat, it’s Microsoft
As great as ChromeFrame is, Microsoft still holds the browser’s keys. ChromeFrame will never fully be smoothly integrated because it didn’t come from the guys who wrote the browser in the first place. Let’s face it: that’s some pretty deep stuff to be getting into the internals of how the browser operates and to hijack rendering and script execution. Microsoft is best up to the task.
What does the web stand to gain? No more IE6 coding. Why? Because then there’s a plausible alternative for all those IE6 users and if they still don’t take the carrot, they have no justifiable argument otherwise and then they really can be dismissed as fringe. If corporations still refuse to upgrade, they’re either just dumb or they’re too poor. Not much we can do about either of those cases.
What does Microsoft stand to gain? A whole segment of the market in terms of OS sales and corporate platform upgrades.
Again, IE6Frame is the key to removing the only plausible argument any sysadmin has against upgrading.
IE vs. IE
Of my ideas on Microsoft and IE(6), this is probably my most crazy and least likely to be taken seriously. But I still stand by it 100% as what I think is best for Microsoft and the web.
Here’s the deal: Microsoft has (at least in recent memory) always been about their platform. The Microsoft platform, from Visual Studio to Sharepoint to Office to Exchange to SQL Server… it’s all at some point or another come back to IE as the central hub — well, Windows OS as the hub, but IE itself as the primary face. Of course, Microsoft had to liberate IE from the internals of the OS because of the anti-trust lawsuits several years back, but that doesn’t mean that IE is any less a part of Microsoft’s Grand Platform Strategy.
In fact, the more the web becomes part of everything we do in computing (cloud, grid, mobile, etc), the more Microsoft will rely on IE. Look at Silverlight: this is not just a “we can too” aimed at Adobe.. it’s a fundamental part of Microsoft’s strategy to extend their platform into the web experience. Office online is yet another example.
And there are tens of thousands of corporations from small to gigantic that have fully bitten into this (sometimes bitter) pie. And I frankly don’t begrudge Microsoft from making this their play. That is how they make a LOT of money, and so I don’t blame them for wanting to constantly evolve and progress it — any good company would do the same.
IE the Platform
So, if IE has been a focal point of the Microsoft Platform Strategy for many years, it should come as no surprise why they have kept it stable and slow-moving (to change). That’s also an easy explanation for all the JScript extensions that Microsoft stuffed into IE. You need the browser to automatically pick up on windows-auth for intranet sites? Sure, we can do that. But Firefox and Safari can’t. For that matter, the W3C is pretty silent on host-OS integration points all together.
Moreover, corporations (who pay Microsoft’s bills) don’t want to build platform-wide applications around a browser which constantly changes with updates for the latest CSS tricks every few weeks. They certainly don’t want the browser to “auto-upgrade” underneath them without their control. Can you imagine the extra manpower and overhead of continually re-validating a legacy corporate application every week when a new CSS transform leaks into the browser?
The Platform itself moves at a snail’s pace, by necessity, and so must its critical components, like the IE we know (and often don’t love so much) today.
Tale of two browsers
On the other hand, Microsoft doesn’t want to get left behind in the consumer browser market either. Nor do I think they should be left out of that race. Clearly Microsoft has been, in the overall sense, a very healthy thing for the web. (hint: they invented Ajax… thanks Microsoft!). And btw, Firefox was born specifically to challenge IE to get better (when it was shut down for awhile). You may not like it, but Microsoft has a place in today’s (and yesterday’s and tomorrow’s) web.
But the game of consumer browser is a fundamentally different game than platform browser. In consumer browsing, the most important features are performance (JS engine wars), productivity enhancements (tab previews, toolbars, etc), and new technology (CSS3, HTML5, etc). If a consumer browser is stable and doesn’t progress, it gets left behind.
The IE (Consumer Edition) would at its heart be a very different browser than the IE (Platform Edition). Instead of releasing once every couple of years, IE-CE could release every couple of months. IE-CE could ditch all that legacy JScript extension junk (and ActiveX!) and fully conform to open web standards. They could embrace SVG, <canvas>, <video>, CSS3, and all the other amazing things that IE9 is only barely now giving us a glimpse of. Microsoft could stop being the joke of the open web community, stop playing catch up, and actually take the lead in helping innovate in the consumer browser space.
And all the while, they could keep (and from time to time, back-port to) IE-PE stable and reliable for the Platform world. IE-PE would be Microsoft’s proprietary extensions on the open-web consumer browser experience. IE-PE would serve the needs of corporations and sysadmins by giving them stability and security and not be bothered by all the “noise” of the rapidly changing consumer browser market.
The primary motivator for suggesting two different browsers is so that we never get into the browser lock-down mess we got into with IE6. If Microsoft ever convinces corporations to move to IE9 (or IE11 or whatever!?) as the new platform browser, that browser will become the new hated IE6 a few years from now.
The problem is that any platform centric browser will by definition quickly become too static for any usefulness in the dynamic consumer browser market.
Don’t make ‘em choose
If Microsoft were really smart about it, both browsers could run side-by-side on the same systems. In fact, maybe users don’t even have to decide… maybe the OS is intelligent enough to give them the right browser for the right task. Of course, the user could be given control if they wanted it, but it doesn’t have to be such a scary messy idea that there could be two IE’s on the same machine for two very different reasons.
Ok, so maybe the names need to be different. IE-CE and IE-PE might be lost on most people. I am not a marketing guru, so I’ll leave that up to them.
But my suggestion still stands: if you want to play in both the platform and consumer browser markets, you need a different browser for each. One browser is exactly one too few to get the job done.
Go forth and prosper
There you have it, my two open proposals for how Microsoft can fix this problem. I believe wholeheartedly that however unrealistic my ideas may be, they are far more practical and productive than the “IE6 must die” droll that permeates the dev community today. Can we please try to talk about something a little more original and productive?