Don’t wait for HTML5 to work on the desktop, leave flash for SVG today

Another topic about technology: A good year ago; If you would ask me about building some complicated site, I would consider HTML5 but probably have to fall back to flash due to development costs or compatibility.  Since Apple blocked the technology Flash on it’s iOS, things have accelerated. (That’s a cliche i don’t want to stress too much in this post) You have to serve websites on iPads today. Suddenly, a lot of users aren’t able to browse your flash site anymore. Luckily, HTML5 is coming to the rescue. it promises us free chocolate and paries on the beach. But it’s not ready for production. What to do? I’d say, use SVG.

But Adobe (owner of Flash) recently announced they will launch a HTML5 building tool that would work simular to flash, called edge. It seems clear then right? We’ll say goodbye to flash and embrace HTML5.

No. That’s what I thought in May and it’s false. The HTML5 standard isn’t officially completed for the next decade.  However, there is a silent voice in the Flash VS. HTML5 debate called SVG. With little effort, SVG (Scalable Vector Graphics) can do most things Flash and HTML5 can do. Yes, even audio. And best of all, it works on the iPhone. Whilst Flash is in the past, and HTML5 the future. SVG is the best what the web can offer today.

When I started a new web project last May, I seriously considered Flash, Canvas (HTML5) and SVG. Whilst all of the could do what I wanted, all had advantages and disadvantages. In short:

  • 1) Flash doesn’t’ work on iPhone, proprietary and slow.
  • 2) HTML5 is too vernal – ready for mobile but not for desktop – and
  • 3) SVG skilled programmers are hard to find in China.

In summary: Three months into the development project with SVG, i’m happy I chose to go with the third option during the time. The learning curve is low; SVG is easy to interpret and can be controlled by JavaScript.  Just like flash it’s vector-based and can be animated.

The downturn (compared to HTML5) is that SVG requires a plugin, just like flash, the difference is that most modern browsers (Firefox, IE9, Chrome & Safari) support some degree of SVG directly. To support the older Internet Explorer browsers, there is a great plugin called SVGweb that renders SVG in Flash. SVGweb mentions on their site: “Using the library plus native SVG support you can instantly target ~95% of the existing installed web base.” I tell you, it was a breeze to get most browsers on board.

Developers: Don’t fall back to flash in your wait to HTML5 and CSS3,  SVG is gaining popularity fast and is a great way to get things started. Today, most vectorized pictures on Wikipedia are already in SVG and recently Google added SVG to their image search. I see HTML on the pipeline, but for now I will use SVG, saying good bye to flash forever. (Oh, I actually blocked Flash on my browser using Flash Block.)

Sources:

  1. The defacto standard for anyone learning canvas – Dive into HTML5
  2. Google diving into SVG – Search engine land
  3. A older (but still! valid) SVG versus flash – itl.edu
  4. The SVGWeb plugin - Google Code
  • Tomas

    YouTube, streetview, pixlr, audiotool, google plus games etc like flash. It maybe not common on those boring standard web pages where you click to start something but flash is excellent on games and multimedia.

  • admin

    My main problems with flash from developer standpoint is that it’s a closed system. Youtube uses flash, but is trying out HTML5 in an experiment -> http://www.youtube.com/html5 I think Flash is popular due to it’s developing layout, a lot of people prefer looking at keyframes and actionscript, rather then start from scratch.

  • security equipment

    Hi. I wanted to drop you a quick note to express my thanks. 

  • Anonymous

    Internet Explorer is closed, but we develop web apps for it. So are parts of Chrome and other browsers. Identifying plugins as the technology that must be completely open is incredibly arbitrary. If anything, plugins are what make browsers MORE open. When you limit yourself to HTML, JS and CSS, you’re just living within the confines of whatever Microsoft decides to let you do. Plugins like Flash give developers a choice to step out beyond what some individual company decided to give us access to.

    My reason for using Flash isn’t because of the pretty authoring tool. For the most part I don’t even code with a design tool like that (I use Intellij and FlashDevelop). My preference for Flash over your chosen workflow comes down to two big things – the end result, and the effort required to get there. I create applications in Flash that are not yet possible with HTML5 and JS (mostly because of audio input/output limitations). And I work on large applications where there is a huge benefit to using AS3 instead of JS. I want static typing and the advantages IDEs can provide because of it. I want a traditional OOP model and the ability to link in pre-compiled classes. In case you haven’t noticed, a lot of the companies involved with creating large web applications with JS and HTML seem to want these things, too – take Google’s GWT and DART as well as MS’s ASP.NET – these amount to workarounds for addressing the fact that JS kind of sucks for working on large applications.

    Flash is nothing more than an option for developers. The proper way to make an option go away is NOT to declare it taboo, as Apple has essentially done. The proper way is to invent replacement technologies that truly make the need for the tool go away. If HTML5 comes up with answers for everything Flash developers need, and it gives them a way to do it more easily than they can with Flash, then they’ll switch on their own. But that hasn’t happened yet, and Flash is gaining functionality at a fast pace.

    It is unbelievably presumptuous for people to assume that they know everyone else’s trade better than they do. I would not dare to presume to tell you that you should drop your tools and switch to some other technology. 

    I have to give credit to Steve Jobs… he told developers that they should want less choice and fewer options for their development… and they believed him.

  • Anonymous

    Thanks for your comments, I understood Adobe is making a HTML5 maker simular to Flash. @andersonalex, Agree with the first part of your reply. Flash web plugin for Chrome is very bulky and one of the heaviest programs I sometimes run on my computer. (“oh macbook is slow” -> check analytics -> flash taking up 50% of processor).

  • Anonymous

    There are Flash programs that use a lot of CPU, and there are Flash programs that use almost none. The same is true of HTML. If you compare dynamic Flash applications with static HTML pages, then yeah, Flash is going to use more CPU. If you just load a page that was rendered in Flash with static content, your CPU is going to sit at 0%. Try doing an apples to apples comparison some time. If you compare vector graphic animation in Flash to the SVG implementation in a browser like Chrome, then you’re going to find that Flash is faster and uses less CPU. This is easily verifiable.

    As for bulkiness, in terms of how much content you force the user to download, Flash has big advantages there. First, SWF files are compressed. Second, Flash applications that interact with a server typically download a lot less data to accomplish the same tasks. Take a large table as an example. Your average HTML page that implements a table does it by filling in the details of the table on the server and then passing down the HTML markup code to the browser to render. With a large table, that can add up to quite a bit of bytes to transfer. With Flash, the table is built programmatically on the client, so the download mostly just amounts to the data itself that fills the table. Secondly, it’s very easy to work with that data in Flash in a binary format that is much more compressed than sending XML or JSON files down.