Ah, Internet Explorer… the browser everyone loves to hate but can’t live without.
Why the hatred? Well, it’s by Microsoft. That alone is enough for some people. It’s slow. Not that it’s really that bad, it’s just that pretty much every other browser out there is faster. It’s a pain in the ass to develop for: IE6, IE7, IE8, Quirks Mode, IE7 Standards Mode, IE8 Standards Mode, Compatibility View… I’m a developer, and I can’t even keep track of all the different modes IE renders in. And of course, none of them are exactly right.
But it does have a few things going for it. Amazingly, it’s probably the most secure browser out there right now – not because it was developed particularly well, but because after years upon years of bugs and security flaws, most problems have been found and fixed. It has all the features a reasonable person would use, and (starting with IE8), has a great set of developer tools as well, nicely tucked away until you need them. Oh… and it’s installed on every damn Windows PC on the planet. That also helps.
So if it’s so well-tested and secure, why the inevitable crashes? Simple: third party code. Say what you will about Microsoft, but Microsoft code is a hell of a lot better than random third party code. Microsoft has a vested interest in making their code rock-solid: they want it to work. When it doesn’t, people get pissed off and go buy Macs. Third party developers don’t have quite the same incentive: when third party code crashes, people usually still blame Microsoft, especially when it’s not obvious that third party code is running.
Want proof? Read this entry on the IE team’s blog. The key piece of information is that pretty graph. The blue bars represent crashes caused by third party code – ActiveX controls, toolbars, and other plug-ins. The red bars represent crashes IE is responsible for. A mere 17 bugs are responsible for half of all IE crashes. The top four, and 12 of the top 17, are caused by third party code. Microsoft itself is only responsible for about 20% of these crashes.
While Microsoft can’t say this outright, there are plenty of clues pointing to the biggest culprits here: Adobe Flash and Adobe Reader. These are two of the most common plug-ins out there, and they’re horribly written: just have a look at how much memory and CPU these programs use to perform relatively simple operations. Flash, particularly, is absolutely fucking ridiculous for this. There’s also an endless stream of security vulnerabilities caused by these plug-ins. As I write this, there’s yet another flaw in Adobe Reader that allows a your system to become infected with a virus simply by opening a PDF file (or clicking on a PDF link) – and yes, viruses exploiting this are spreading like Australian wildfire. Adobe won’t have a patch out for weeks at the earliest, despite this guy publishing his own patch without even having access to the source code.
So, next time IE crashes, don’t blame Microsoft. Blame Adobe. Want to fix it? Here are some good starting points:
- Use Foxit Reader instead of Adobe Reader. It’s faster, it’s smaller, it’s probably more secure (or at least less targeted), and it doesn’t crash IE. Kill Adobe Reader.
- Avoid Flash if at all possible. Or, keep IE ‘clean’ and use Firefox for websites that require Flash.
- Keep your computer up to date. Seems obvious, but so many people don’t do this, even those who know they should. Run IE7 and check Windows Update. When IE8 is out, get it. Run the latest service pack for your OS.
- Uninstall or disable as many plug-ins as possible – preferably all of them. Under later versions of IE, you can do this under Tools, Manage Add-ons. Look on your Start menu for “Internet Explorer (No Add-ons)”.
- Running Windows 7? Keep in mind you’re running a beta version of IE on top of a beta version of Windows. Crashes come with the territory. That said, Microsoft just released some updates that take care of quite a few problems; make sure you have these installed.
Hopefully this helps.