Why I won’t be upgrading to IE8

! Warning: this post hasn't been updated in over three years and so may contain out of date information.

no-to-ieI am what is commonly termed an “early adopter”. I readily install beta versions of software of my machine and tend to pro-actively track new versions of the software I use, and obtain and install them as quickly as possible. Most of the time I’m happy with this, but very occasionally, my “new feature greed” comes back to bite me. IE8 is one such case.

When IE8 beta came out, I installed it, had a play around with it and then pretty much lost interest, as my main browser is Firefox. I uninstalled it as part of experimenting with removing it from Vista (its an update, so it’s not immediately apparent how to remove it) and forgot all about it. When RC1 came along recently, my interest was piqued once more and I installed that, but all was not well.

These days I’m an Eclipse user, who spends a fair bit of his time writing and debugging Flex. Flex Builder in Eclipse can be configured to use one’s preferred browser. However it is highly unreliable with Firefox, so IE has finally found a use on my machine: it is the browser that runs the debug-enabled flash player that I test my Flex code against. Whereas Firefox often fails to start, or properly end,  a debug session, IE7 just works. However IE8 was a wholly different experience.

After stopping and starting debug sessions a few times, I first noticed that my machine was slowing up, then the code that handles cookies started behaving oddly and would report that other instances of the application were already running, despite no other occurrences of IE appearing in the taskbar. A peek at the Task Manager revealed the problem: there were around 15 non-terminated IE processes running on my machine. Investigating further, I realised this was a consequence of Microsoft copying Chrome’s 1 tab = 1 process model. Even with tabbed browsing disabled, IE8 starts two processes: one for the window “frame”, and the other for the tab’s renderer. When the Flex debugger quits, it kills the frame process, but leaves the renderer process – with its instance of Flash player – still running.

This neatly highlights what I dislike about Chrome’s process model and why I’m saddened by the lind rush by other browser makers to jump on the many process browser model. I like my apps to adopt the one process/ many threads model, for I want the whole application to get its backside off my system when I kill it and multiple processes are near-guaranteed to spoil that simple desire.

Perhaps this is just an RC1 bug and IE8 will die gracefully when its fully released. However, I rarely use IE, IE7 meets my needs, and so I’m likely to follow my own instructions and block the upgrade to IE8. I do so with a heavy heart, for I fear I’m taking the first step down the road to becoming like those weird luddites who still use VS6 over 10 years after it was replaced with a newer version, or those even weirder folk who can’t cope with leaving the antiquated Windows 95-2000 look behind and run XP or Vista with that last-millennium look. I think I’ve made the right decision on this occasion though…