Silk

Silk Blog


We're Silk. Silk is a new way to create and consume content.
Follow us on Twitter or subscribe to our feed.


How I Learned to Stop Worrying and Love Web Development Again Salar

company
23 comments

Why we don’t support Internet Explorer

We’ve already talked about some of the technology choices we’re making as a company. And while our choices on the back-end can hardly be labeled as mainstream, the most difficult choice we actually had to make was related to the client-side as it directly affects our users. Obviously, Javascript on the client is a given, and we love it. However, as most web developers know, the differences between browsers are enormous and developing for all of them is almost impossible1. Still, current conventional wisdom dictates that you should support recents versions of Internet Explorer2, Firefox and the WebKit based browsers (basically, Safari and Google Chrome). We, however, have decided to drop Internet Explorer support entirely3.


In general, the trade-off you face when choosing which platform to develop for is between development time and a larger potential customer base that’s associated with the platform. Looking at the web right now, Internet Explorer still leads the market by a large margin4. So even if it seems annoying that you have to work around some CSS bugs or still write Internet Explorer specific event handling code for a web site, the payoff in user reach will usually still be worth it. Modern Javascript libraries such as jQuery or Mootools lower cross-browser development time even more by abstracting away lots of differences between browsers, tipping the equation even more in favor of Internet Explorer support.

So why did we choose to ignore the most used browser on the planet? It’s because we decided that in our case, the development costs would simply not be worth it. Obviously, this assessment is very specific for the type of application we’re building. We didn’t just base this on a hunch, we actually have quite some experience in this field: most of us have worked on products like Xopus before. Xopus is an awesome, browser based wysiwyg XML editor. It consist of more than 120,000 lines of client-side Javascript code. A non-trivial part of that is code that completely works around standard Internet Explorer behavior because of its bugginess or complete lack of support. This isn’t about your father’s unsupported CSS selectors or the lack of addEventListener. We’re talking about stuff like having to write your own cursor because contentEditable becomes basically useless when working on complex documents. The amount of bugs that are related to contentEditable, text ranges, drag and drop and the Document Object Model in general are staggering. Most JavaScript projects, including some popular libraries, don’t even deal with these advanced aspects of the browser at all.

Now obviously, the other browsers aren’t all free of bugs. Which brings us to the second problem with Internet Explorer: lack of real progress and transparency. Even if you consider relatively easy and popular features (such as support for addEventListener), it’s hard to understand why they haven’t been implemented yet and if there is any timeline at all to implement them. That makes the probability of low visibility improvements and bug fixes in the rendering or selection code practically zero. The contrast with the open development of Mozilla and WebKit is huge, where almost everything is publicly discussed and with a focus on constant improvement of the rendering engines and pretty clear timeline.

The current state of the web is actually very exciting right now, if we ignore Internet Explorer for a moment. Thanks to HTML5 there is a lot of progress allowing us to make almost desktop class applications, with support for things like drag and drop from the desktop, background processes and offline support5. All of this should greatly improve the user experience with web applications and bridge the gap with desktop applications. No amount of code or smart engineering will allow us to bring that level of experience to browsers that lack these features.

Does this mean that no complex web application should support Internet Explorer? Obviously, it depends on many factors. There are large differences between applications that are targeted to tech-savvy users (where Internet Explorer is quickly becoming a minority browser) or to large organizations (where Internet Explorer 6 is still widely used). We’re a small team and we have to prioritize our development goals aggressively. Large teams with lots of resources are in a different situation altogether. That being said, we were pleased to see that the Google Wave team also chose to drop Internet Explorer support and having Google develope the Chrome Frame plug-in.

Finally, although this might seem less important than the above considerations from a business perspective, there is the loss of friction and return of enjoyment in developing web applications again. Not developing for Internet Explorer means that we can do amazing things with CSS, use new Javascript features in our codebase, and in general rediscover the excitement of the possibilities of the web. And that makes us love web development again.

  1. Try using Netscape 4.7 today, if you’re curious. []
  2. Usually, this means Internet Explorer 6 and newer. However support for Internet Explorer 6 is slowly declining, as it’s dropped by major sites like YouTube, Orkut and products like Basecamp. []
  3. Note that what we’re discussing here is browser support for our application. The content that resides inside the application will always be available to any web browser, whether it’s a text-based browser with no Javascript support, a low capability mobile browser or Internet Explorer 6. This is based on the principe of graceful degradation. []
  4. Wikipedia has a nice summary of various sources with browser usage statisics. []
  5. To be fair, Internet Explorer 8 does provide some offline support. []
Rahul

Amen.

Thank you for having the courage to say no. I wish that more designers/developers had the freedom to do this.

Jack

Cool! I’m going to try out the demo! …Oh, it doesn’t work in Chrome either? Or Safari? I guess a tool that works for FireFox only is pretty neat. If you’re cool with only 28% of your visitors hitting your website.

Don’t get me wrong. I hate IE as much as the next guy. But cutting out 58% of your potential market (and ignoring the 14% on other browsers anyway) isn’t something that a lot of companies will be able to get behind you on. Regardless of ideology, 58% is a lot of money; you have to weigh the extra development time vs. the loss in not supporting it, as it seems you have done. That said- good luck. I hope it works out well for you.

@Jack

Demo? We haven’t released anything public yet. Maybe you’re talking about Xopus, but that’s another product (and Xopus works on Internet Explorer). Our own product will work on Google Chrome.

Regarding the lost potential market: that’s obviously the biggest risk we’re taking here. There are lots of profitable companies creating applications for the Mac, which has a smaller share than Firefox, Safari and Chrome combined. We feel that it should be possible on the web as well.

Dark Daddy

Wow… little man with a big ego syndrome!

Jack

Oh, sorry. I misunderstood and thought that Xopus was yours.

But as a rebuttal- not meant to be argumentative, but thought-provoking: isn’t one of the big strengths of the idea of the internet to be accessible by anyone, anywhere? If you’re making a desktop app, it’s one thing to constrain yourself to a single OS, because you’re targeting a specific need by a specific audience; why bother making a web app at all if you’re limiting your reach? Save yourself time and make a desktop app that can leverage the power of a lower-level programming language.

I wouldn’t buy a Mac solely so that I could use, say, a specific Video Editing software; I’d rather find the best PC alternative. People aren’t going to understand why the product doesn’t work, and if you give them a helpful “here, try an alternative” dialog, they’ll go elsewhere. The people who are using IE are the people who don’t care about browser wars; everyone who does already knows that IE is the worst browser.

…where Internet Explorer is quickly becoming a minority browser…

You’re right…
Internet Explorer is not the popular browser on my site and hasn’t since I started it. Firefox continues to dominate the the stats on my site as the preferred browser.

For Microsoft the single most embarrassing application they have ever made is Internet Explorer; it’s symbolic of everything that’s wrong at Microsoft. They think they know everything, how everyone is supposed to do things and they try to create the rules, but all they do is succeed in showing how lackadaisical and shortsighted they are.

Internet Explorer is 1% of Internet browsers that is just absent and a complete reject of web standards. And at this point, I could care less if they have a ‘compatibility mode’ in v8. Just by offering an alternate mode they conceded they’re completely mucked up. And regardless of changes they would make now, I’d never go back to Internet Explorer…

The numbers of users using Internet Explorer are diluted by the fact it’s pushed to every Windows PC in the world by ‘auto updates’; that doesn’t mean it’s the default browser. Or if they _have to use it_ for work- like me.

When the US government wants to use FireFox over Internet Explorer; that’s really saying something.

I think the decision you’ve made was not taken lightly, and from a business standpoint, I think you’ve made the right decision. When 95% of the browsers out there support standards, you should go with what works consistently.

Nice post.

Thanks,
LHenryJr.
http://www.lehsys.com

Couldn’t agree more, I dropped support for IE6 quite some time ago, I wouldn’t mind dropping support for IE full stop but I don’t have a need. IE6 is so old I felt that was worth it, good luck to you and respect for making a tough choice.

Thank you! I can’t tell you how many hours of my life have been wasted on IE6, or worse, hours that were wasted on IE6 even after IE7 and even IE8 came out.

I dropped IE6 too

Jack wrote: “Isn’t one of the big strengths of the idea of the internet to be accessible by anyone, anywhere?”

That’s true, but that’s whats _standards_ are for. When a browser deliberately ignores existing standards, the moral value “accessible by anyone” doesn’t apply anymore. It’s the browser’s creator, _not you_, who decided to break that principle, so it’s _not you_ who is not obligated to restore it.

Of course, there’s also the principle to “be conservative in what you send and liberal in what you receive”, but that applies to _minor derivations_ from the standard. Is does _not_ require you to deal with every _broken_ client application.

(As an analogy, the principle of tolerance in society does not require you to tolerate fanatism and violence.)

eyko

@Jack:
“But as a rebuttal- not meant to be argumentative, but thought-provoking: isn’t one of the big strengths of the idea of the internet to be accessible by anyone, anywhere? If you’re making a desktop app, it’s one thing to constrain yourself to a single OS, because you’re targeting a specific need by a specific audience; why bother making a web app at all if you’re limiting your reach? Save yourself time and make a desktop app that can leverage the power of a lower-level programming language.”

If I’m not mistaken, Chrome (chromium) is cross-platform, and is available in both Windows, OS X, and Linux. Same goes for Firefox. Developing cutting-edge technology or software doesn’t mean it’s platform-specific, it’s as open as any other software can be, if you have the right tools. And the tools are generally *free*, and I’d argue that they’re also more secure than IE.

cak

Internet Explorer is an absolute disgrace, good on your for doing this.

Jack

@Volker Grabsch, @eyko:

Again, although those browsers are better, we can’t force a user to switch. We throw up modal “unsupported” dialogs, we put information the top of the page, whatever. This doesn’t change the fact that the majority of people currently using IE are using IE because they don’t care enough to switch. They don’t care about our wars for standards, they don’t care about HTML5 compatibility. They want something that works when they go to it.

What Microsoft has done with IE is horrible. It’s an abysmal excuse for a “browser”. But that doesn’t change the fact that ignoring 58% of users is something that very few people can do.

Ben

Why not just make your site dependent upon the chrome frame plugin? Does this not come at no cost to you since you will be Chrome compatible anyways? Users are accustomed to installing plugins for other media – doesn’t seem like a huge stretch to have them install chrome frame to run your product if it is heavily dependent on JS for a decent experience.

…this blog post makes me want to switch back to Internet Explorer….

Self-indulged amateurs.

@Ben

We will definitely provide Chrome Frame as an option to Internet Explorer users who want to start up the editor. We think it’s a great solution for people who might be unable or uncomfortable to switch browsers but open to using a plug-in.

Rahul

You know you’ve written a good blog post when the trolls start coming out. ;)

“lack of real progress and transparency”—dat vind ik het allersterkste punt.

Rahul

Oeh, deze blogpost is om 9:42 gemaakt! Mooie ;)

Schrijft Rahul om 19:42. *zucht*

F

I envy you

Post a comment