Hate IE with a Passion
There's no denial that HTML5 Gaming is going to be huge. It was a big topic at this year's GDC and there's an arcade machine running an HTML5 game currently at SXSW. I've been at Future of Mobile and onGameStart last year, giving some insight and showing off my Game Engine. HTML5 Gaming is here to stay.
In my talk at onGameStart I had a short section dedicated to Internet Explorer: I apologized to the one guy from Microsoft in the audience - then switched to a slide stating "Hate IE with a Passion" and a next one showing the IE logo with a speech bubble, proclaiming "Please kill me!", disgustingly set in Comic Sans because "IE doesn't deserve a better font".
But wait, didn't I say in an earlier post that IE9 works great with my Game Engine?
IE9's smoothness on the other hand is remarkable. Of all browsers and systems I tested, IE9 subjectively produced the best results.
IE9 was a huge leap forward from IE8 and all the things that are implemented in IE9 work pretty well. There are some problems with <Audio>, but they are not as disastrous as they were with Chrome and Firefox a few month ago. And Microsoft's implementation of the <Canvas> element is one of the fastest around. IE9 is a solid browser.
So where's the problem?
It's all the things that IE9 doesn't do. And I'm not talking about some nice to have features, but Microsoft's general attitude. They pretty much ensure that IE will always stay obsolete and be every developer's last choice. Here's how.
Auto Updates and Release Cycle
This is a big one. IE8 was released in March 2009, IE9 in March 2011 - two years later. There's no release date for IE10 yet, but it will take at least until March next year. Microsoft has finally decided to have some sort of auto update, but it will leave a lot of users behind. It will take years until all IE users have updated.
Compare this with the Chrome and Firefox guys: they release a new version every 6 weeks now. And the best thing - users don't even notice. Chrome's update mechanism is truly invisible to the average user. If you're doing some cutting edge web stuff, you no longer have to say "works in Chrome 17", but just "works in Chrome". Nobody cares about the version number, because everyone is always on the newest version, or at most two versions behind.
From a developers standpoint, this is invaluable. It brings us certainty. We can be sure that any feature that was added 12 weeks ago has now arrived for the vast majority of users.
Not so with IE. Paul Irish recently had a beautiful article about the clusterfuck that is Microsoft's lifecycle policy. It's just sad.
<Video> and <Audio> Codecs
Firefox, Chrome and Opera support the open source WebM and Ogg Theora video codecs and the open source Ogg Vorbis audio codec. IE supports none of these.
I know WebM is controversial, but damn, they are Microsoft. They should be able to come up with a solution that's good for the web: Buy the MPEG-LA and release all h264 patents in the public domain; improve WebM; invent a new, open video codec. Whatever, just do something.
With Ogg Vorbis I can't even think of single reason not to support it. Over the last few month I asked a few guys from Microsoft why they don't support Ogg Vorbis - nobody could give me an answer. Nobody knows. Maybe we are not complaining loud enough?
WebAudio, Fullscreen, Mouselock…
There are ongoing efforts to implement better audio APIs, fullscreen support, mouse lock (all desperately needed for games) and a whole bunch of other stuff. And browser vendors are working together to form a common standard - yet, Microsoft is curiously absent from these discussions.
Of course IE will support those features eventually. Maybe in version 11 or 12, after every other major browser made it clear that these are useful and important. Then it will take another 3-4 years for IE users to update. So we can safely use the fullscreen API for IE in about 6 years. Awesome.
Microsoft should spark those discussions instead of trying to catch up years later.
IE is slowing everyone down and makes your life as a developer more complicated. It actively prevents progress. Microsoft just looks at what everyone else does, implements the bare minimum they need in order to not be completely ignored and annoys us with a yearly update cycle and millions of users unable or unaware to update. This is not how the web works.
I wrote this post because I still care about IE - I still haven't given up completely.
What can you do? Force Microsoft to fix IE or let it die?
Hate IE with a passion!
22 Comments:
Hah I work in web business we are still forced to support IE6... Makes me want to scream.
"What can you do? Force Microsoft to fix IE or let it die?"
Support the Chrome Frame initiative in any way possible?
Chrome Frame: IE without the IE™
hate microsoft with a passion, they are always pushing their same policy, it applies to the gaming industry, and the web.
When our business develops web apps, we explicitly say IE6 is out, support-wise, in our contracts. It's too much of a drain on resources (money, time, life, etc.). Chrome Frame has been on proposed workaround, but at this point it doesn't affect enough of our customer base to matter. Hopefully, we will be able to bury IE7 by the end of the year, but IE8 is here for a while...
that's why my IE9+ support has the disclaimer "(if MS behaves well)"
Same here. I have to support ie6/7 cose our client pays so much.
I agree with a lot of your points, especially the update policy. It's just sad.
But picking on the audio-implementation of IE9? They actually did a really good job there, still works better than in most of the other browsers (also on mobile - but you have to say that the whole standard is still messed up)
Good grief, I've had my problems with Microsoft and IE in the past, but this post is so misinformed and prejudiced it beggars belief.
Firstly, automatic updates: Yes Chrome has friction-free automatic updates, but this is not a panacea for versioning problems. Take a look at Ars Technica's latest report on browser market share[1]. There is a stubborn and growing segment of users who, for whatever reason, are still on older versions of Chrome. As time goes on, it will be increasingly less possible to say "works in Chrome".
The situation with Firefox is even worse. There are masses of users still on earlier versions, and little sign of them quickly shifting. All the extra versions have done is made it even harder to comprehend exactly what versions support what features, and thus judge which features have a large enough install base to consider using, and increased upgrade fatigue amongst users. Futhermore, Firefox has still not fully implemented friction free background updates, so in that respect how is it any worse than the latest IE? Perhaps it's just that you're more prejudiced against IE than Firefox?
Codecs: You say Microsoft should "do something", while admitting you don't actually have any clue what they should do. WebM is more than "controversial", it appears to be such a non-starter that Google themselves are barely putting any further effort into it. It is apparently as patent encumbered as h264, so no more safe to implement or use, and is significantly less supported by hardware and tools.
Buy the MPEG-LA and release its patents? I don't even know what to say... Do you actually have any understanding of how all this works. MPEG-LA don't own the patents, they provide a cross licensing service. The actual patents are owned by dozens of organisations[2]. Are you saying Microsoft should buy out Apple, Sony, Ericsson, etc? Of course not, you don't know what you're saying. But you're still comfortable with charging Microsoft the sole responsibility to solve this apparently intractable problem, and declaring that you hate IE because they can't. Idioctic.
Features: You are games developer, so what do you do? You cherry pick a handful of games-relevant , but unstandardised features that have received experimental implementations in other browsers and declare that because IE doesn't support them, Microsoft are somehow refusing to participate in moving the web forward.
Except, there are other uses for the web, outside of gaming, where features are needed, and where Microsoft is leading the way in proposing new standards and implementing them: CSS Grid Layout, CSS Regions, IndexedDB, Performance APIs, and more.
Take a look at at the full feature list for IE10 [3] and check out how many of those features have either no implementation or a partial or buggy implementation in other browsers. I think you'll find IE is doing pretty well in terms keeping up with the curve of new features. Furthermore, as you yourself admit in your post, IE's implementation of features, like Canvas and full GPU acceleration, tends to be a lot more solid when it does arrive, particularly compared with Webkit.
The Microsoft of a decade ago may have dropped the ball when it came to improving their browser, but that is no excuse for you to hold a ill-informed, myopic and prejudiced view of IE, and worse, to evangelise it in such a self-righteous manner. If you want to hold forth about the web platform, and the performance of the various vendors, then you should at least do the minimum of properly informing yourself about the facts of the matter.
[1] arstechnica.com/business/news/2012/03/browsing-behavior-in-february-internet-explorer-chrome-down-firefox-up.ars
[2] en.wikipedia.org/wiki/MPEG_LA
[3] msdn.microsoft.com/en-us/library/ie/hh673549(v=vs.85).aspx
@jon
"Except, there are other uses for the web, outside of gaming"
This blog does not really concern those uses or users. It's audience is game developers and this post I believe was directed to explain the many challenges IE and Microsoft pose against the average html5 game developer.
"Take a look at at the full feature list for IE10"
It's nice, but I don't think many people are going out of the way to update I don't even know many people running IE9 that are your "outside gaming" users.
Your critism of this post does not explain an alternative for html 5 game developers. We have a crunch time, we have users that want to use their USB xbox 360 controller to play our games, but Microsoft won't support their own hardware in their browser, meanwhile Google is doing just that.
As someone working on a platformer I want to have out and playable in the next year I cannot afford to waste time and make IE my primary browser to develop for.
Do you think that I am going to sacrifice and entire alternate form of input while a competitor offers just that? Or redirect my users to microsoft updates before they can experience my content?
You can ask my music guy how much he loves exporting 2 versions of every sound and song.
Jon,
I talk about gaming specific features, because that's my field of expertise.
Yes, every browser, no matter how friction-free the auto update is, has a legacy user base. But it's SO MUCH worse for IE than for any other browser around.
Just have a look at the article you referenced: I don't care about the 0,5% still using Chrome 10. I don't even care about the 5% still using Firefox 3.6. You can't help these users anyway. I DO CARE about the 50% still using IE8 - a browser that was released 3 years ago and was 5 years behind the competition even then!
Of course the suggestion to buy out the MPEG-LA wasn't meant seriously. I wanted to portrait the money and resources Microsoft has to do something, yet they don't. Why is this problem intractable? Why can't they support WebM? Why can't they release WMV9 as open source or create a new codec? They SHOULD find a way.
It's funny how you ignored my part about Ogg-Vorbis, because you don't have arguments why they shouldn't support it either ;)
And please read the title of this post again. This post IS biased, it IS subjective. I would even call it emotional. I want to kick IE's ass, because it's still the worst browser around and I'm not alone with that opinion.
Yes, I too hate IE with a passion. IE8 (which I have to support, of course) doesn't even manage to correctly render bit more complexly styled HTML+CSS. By that I don't mean some wrong padding and no rounded corners and such, I mean graphics errors where elements are displayed (in fragments) that should be clipped by overflow: hidden and such.
But on the other hand I recently found out that the HTML5 D'n'D API actually origins in IE5! This is nice, even though the API in IE is quite limited: no support for mime types, no way to iterate the types supported by a drag event, no support to drop and read files from/to a file browser because it does not support the HMTL5 FileReader API (and it seems you cannot drop plain text to Windows Explorer, what a joke).
And while IE<=8 does not support HTML5 audio, it does support an ActiveX Media Player object that let's you do mostly the same (mp3 only). Yes, it means one code base for IE and one for all other browsers. Oh, well. However, this currently works better than HTML5 audio in Chrome (under my 64bit Fedora 14). I don't know why but since an update one or two month ago Chrome suddenly has cracks in the audio playback. It wasn't like this before. Even flash manages proper audio playback on my machine! Well, weirdly flash is good at this anyway. Sometimes beats native Linux apps.
Anyway, IE does *not* support base64 URLs, at least not in combination with window.open and not at an usable length (only 2048 characters, can't use that for exporting data via JavaScript). And it does not even support the btoa and atob functions. Yes, they aren't in any standard, but they are really handy.
I found this all out as I wrote this HTML5 audio player that let's you play the songs from Magnatune.com (e.g. the Braid soundtrack):
tinyurl.com/magnatune-player#/album/Music%20from%20Braid
The IE<=8 audio support is mostly done in this file:
bitbucket.org/panzi/magnatune-player/src/tip/javascripts/magnatune-ie.js
It is included after the main JavaScript file and simply replaces some functions in it, but there are also some "if ($.browser.msie)" in that file:
bitbucket.org/panzi/magnatune-player/src/tip/javascripts/magnatune.js
I know, the code isn't perfect and at times a bit messy. I wrote this to learn jQuery, HTML5 Audio and D'n'D and such. And also to have a nice interface to Magnatune.com. :)
I'm a web dev, I've been thinking sincerely of dumping dev for IE and only if those stuff change I'd think on dev for IE again but I cannot do that on my job, but, by myself I don't matter even a litte. Sory I have no passionwith IE, I just hate =)
Why are you so surprised? Microsoft has a business interest in stagnation on the web. Why do you think they left IE6 for 5 years with no updates? They want to hold back the web to promote the Windows platform.
Hmm, do you think it is a deliberate strategy to not provide newer IE versions for Windows XP? Because a new IE and it's HTML5 features might be the only reason to upgrade the OS for some users. Then again, these users could use Chrome/Firefox.
At our agency beginning 2012 we are enforcing the GO GET ANOTHER BROWSER rule since I'm not willing to spend money for IE backwards compatibility and quirks crap.
Customers surprisingly arent that much problematic after a short debate and are now accepting the fact that we send people with < IE v9 to a page named: go get a real browser.
Around 65% get bounced initially in first 2 weeks, but now more and more ppl are using browsers you can call browser. I hate IE and If We could Ill drop the IE support enctirely. If you can turn on a computer and install Windows Updats you can install a real browser. If not, well it's your problem.
Our game engine (www.logicking.com/index.php?page=html5) is built solely on DOM, and IE9 seems like the best in terms of performance. However I just really don't understand Microsoft's politics on browsers update. We have no plans to support IE8, cross-platform HTML5 is complex enough without those nightmare legacy issues. And as long as more than third of web users don't have HTML5 I see Adobe Flash as the only winner. Is it what MS is a looking for? If MS will decide to upgrade all version of Windows starting from XP to IE10 then HTML5 era will begin instantly. I don't see how MS can lose from it. Quite the opposite! Google and Firefox will stop eating from MS users' share since users will no need to download "another browser".
As far as hating IE 9 goes you forgot to mention this, annoying little issue:
bobbyjoneswebdesign.blogspot.com/2011/12/internet-explorer-9-type-1-font-bug.html
Yea IE sux // all jobs i had .. it was always the same thing / everything is nice and awesome until u open it in IE / tbh. it's really really sux.
atm, i'm working on a big app and it looks and works perfect in FF, Chrome, .. but not in IE cuz of CSS and stuff. and we atm have only 1 client and the thing is that it's a big company. Only they use our solution and i sometimes think that it would be kool if they would use another browser on their work. but reality is that they are a big company and they have a policy, so, it's almost impossible to force them change the browser. Plus, sometimes, some random people use our solution from random places and, of course, sometimes they use IE6,7,8.
So, that's you we HAVE TO support it. but tbh, fuck you microsoft.
I mean, yea, i kinda like MS technologies like asp.net but IE <9 sux 200% and last few years it always was like a headache.
P/S to Dominic. Dude, i bought your engine and now i moved to Berlin. Yey! Also u inspired me a lot with programing on js. Last 2 years i work only with it. Why you don't answer my mails :<
This post seems a bit biased, We are game developers and IE9 and IE10 are have been awesome, Microsoft has really made up for their short comings with previous browsers. And if you think about it, would we be here at this point without IE non-standard behavior is a big reason there's such a push toward standards today. The past couple of years has been an arms race between browser vendors to pack their browsers with features and to make sure they offered something better than the next browser. NOT ONE VENDOR WAS WORRIED ABOUT STANDARDS, NONE. so why beat up on Microsoft for doing their own thing like everyone else. That era is gone and we should all be talking about the future. If you ask me to a certain degree Google still has this mentality.
I personally Microsoft is right not to support webgl in the browser. AND I AM A GAME DEVELOPER. there should be a higher level abstraction not dependent on opengl and its mountain of complexity. like Canvas 3d context. Like Stage3D it should just abstract all that away with a getContext(() call. and don't even get me started on simple css shaders instead glsl. Hey don't get me wrong webgl has its place just not in a webpage.
And if we're talking about game development why do we have to support older browsers? What are you guys talking about. if you're not making a complex business application, why cant you ask you users to use a modern browser. if you are building html games, don't you have to anyway? Those arguments are weak guys.
@Dominic Great Engine!!!
IE was the first to implement fullscreen support. One simply added a "fullscreen" parameter to window.open(); This might even still work. www.w3schools.com/jsref/met_win_open.asp.
IE was doing everything possible to make their browsers application development environments, in 1996. This scared people.
What *actually* happened is that IE provided what you desire, 15 years ago. It wasn't called "innovative" then. It was called "predatory".
What you are seeing is how long it took for everyone else to recognize the value of this direction. Microsoft gave developers XHR, VML, image filters/transforms, filesystem access, drag and drop, iframes, local storage... and much more. Decades ago.
And so we are back to where we started.
DIE DIE DIE - Kill it.
Internet Explorer offers more problems than solutions. It should therefore be banned and I did just that with my website: www.internet-explorer-ban.com.
I decided I had enough of Internet Explorer and simply banned it from displaying any of my websites. I even went one step further and created a nice little webpage that encourages users to download other web browser thereby enabling web developers and designers to do their job without losing their minds.
If you are interested, check it out: www.internet-explorer-ban.com ^^