about:benjie

Random learnings and other thoughts from an unashamed geek

A Plugin-Free Web

| Comments

It’s almost unheard of for me to complement something that Microsoft are doing - especially when it comes to Internet Explorer - but I’m 100% behind a plugin-free web:

John Hrvatin from the Internet Explorer team:

The transition to a plug-in free Web is happening today. Any site that uses plug-ins needs to understand what their customers experience when browsing plug-in free. Lots of Web browsing today happens on devices that simply don’t support plug-ins. Even browsers that do support plug-ins offer many ways to run plug-in free.

Metro style IE runs plug-in free to improve battery life as well as security, reliability, and privacy for consumers.

How long until Google joins the party?

Frequently friends and acquaintances will talk to me about iOS/Android (being an iOS developer) and one of the things they’ll very often say is “yeah, but iOS can’t run Flash,” as if that’s a bad thing! Banning Flash from the platform is one of the things that makes me really glad I own iOS devices and that they’ve such a large market share. Many websites that use Flash are being forced to redevelop into open and standards-compliant HTML & JS so that they can capture the mobile audience.

Flash is the most common browser plugin, and I loathe it. I block it on all my computers and only use it where I absolutely have to. If a shopping website forces me to use Flash to shop there then I simply don’t shop there. And with HTML5 Video/Audio and the speed of JavaScript in todays modern browsers (even the latest Internet Explorers!) there’s less and less justification for websites to use Flash (or worse: Silverlight! I’m looking at you, LoveFilm).

I’m not the only person who hates Flash, just look at all the plugins to disable it!

Why Plugins Suck

There’s many reasons, but mostly it comes down to non-compatibility, performance, security and user experience.

Compatibility

For a long time there was no Flash player for Linux. Then there was no Flash player for 64-bit operating systems. There’s no Flash for iOS. My Blu-ray player can’t run Flash. Apparently my Tivo does run Flash, but it’s god-awful.

And because Flash runs in a different rendering pipeline it doesn’t integrate well with web browsers - especially when it comes to transparency. (See “User Experience”)

Performance

A lot of devices are easily capable of rendering HTML/CSS/JS but Flash pushes them too hard and the experience is ugly and slow. And Flash seems to be used for a whole host of things that HTML/CSS/JS have been capable of for years and years across all major browsers - one thing that comes to mind is all the advertising you get on certain websites.

Security

Bugs in plugins expose your browser to a lot of potential security risks - cross site scripting (XSS) attacks, information disclosure, even sharing your webcam feed without your permission (October 2011)! Over the years a lot of these issues have been patched, but it should be the job of the web browser to allow/deny access to various resources, having two interfaces increases the attack surface - it’s risky and confusing.

User Experience

When hover to expand adverts first came out they used to actually block the viewing of the content on some websites in some browsers - so I simply stopped visiting those website. What’s the point if you can’t actually read the content?!

Once you’ve got 10 Flash adverts on a web-page the scroll performance drops significantly, even on a dual core computer. There’s also the increased render time of the webpage as a whole, and the annoying (and unnecessary!) loading indicators.

When you close a browser tab, plugins on that page playing audio/etc often won’t close until a couple of seconds later, which can be very irritating. And don’t get me started on websites that suddenly start talking to you without you asking them to! (Though this is possible with HTML5 also…)

Acceptable Use Cases

There used to be lots of use-cases for which I found the use of Flash acceptable, but many of these are being diminished due to HTML5 adding extra capabilities to the browser:

  • 3D browser games (soon to be invalid due to WebGL and similar technologies)
  • streaming video/audio (now supported by HTML5 audio and video)
  • video conferencing (there’s many workarounds for this - W3 are attempting to create a Media Capture API)
  • real-time socket communications (WebSockets allow real time communications by extending HTTP)

Progress

Apple, Microsoft I applaud your efforts to rid the internet of these plugins (despite the existence of QuickTime, Silverlight and the like).

Google, I’m disappointed with you integrating Flash so deeply into Chrome, but Chrome’s an awesome browser for development so I shall use it anyway. Good work on making YouTube work with HTML5 though :)

HTML5 guys, you all rock.

Comments