Flash vs HTML5
There is a bit of a hot debate going on at the moment regarding Flash “vs” HTML5, as a Flash developer I thought I would join in to share with you some of my points of view.
Since I am an Actionscript developer you might think that I am going to fall in the easy and logical attitude of defending Flash and Flex (since Flex is also concerned here) at any cost. Well no it’s not going to be the case. I am also not going to say that HTML5 is the long awaited messiah that is going to bring a new web paradigm to your browser. I think that the situation needs to be seen from a more rational and holistic point of view.
Many arguments are thrown in the air around the debate and tend to go from one extreme to the other one:
• You have the “Flash-haters” that generally have never used Flash and hardly know what it does or could do (nor do they with HTML5 ). They keep coming up with the same old arguments “I hate Flash intros”, “I hate Flash banners”, “I hate Adobe”, “The Flash player crashes my browser”...etc
• You have the “enlightened” HTML5 disciples who think that their new god is going to bring a new web order and that Flash and his minions are doomed.
• You have the Flash addicts that cannot be bothered to look at the big picture and will reject anything that could threaten their Flash way of life.
Obviously none of the arguments summoned by the categories above are wise since they are based on an emotional approach and not on a pragmatic set of arguments
Simplifying web development
I think there is a higher good, and for the web it is called “open standard”. The Flash player is a fantastic platform but let’s not forget it is controlled by a single vendor, Adobe, very much like Windows is controlled by Microsoft. The Flash player is a wonderful step in the history of the web but it is a plugin and a plugin is something you plug in, it is not native. The big dream is that the internet should be relying on one solid open standard API supported throughout all browsers and from a philosophical approach HTML5 seems to me like a good step in that direction.
A wrong debate
There is no HTML5 versus Flash, I think they are not really competing to be honest. I cannot remember when the last time was that I created a full Flash web site, most of my latest big projects are running outside a browser as desktop applications. We all hate Flash intros anyway and I never advocated that Flash was the best choice to create a web site. After the Flash fever that took over the web at the end of the nineties many big corporations, especially in the car industry, moved away from the “pure flash” website and are now using a mix of Flash and HTML instead.
Some facts on a good use of the Flash player
It’s been used many times as an argument that “Flash is a CPU hog”. Let’s not forget here that a lot of Flash developers are not coming from an academic programming background and are self-trained, for the best and also for the worse. The nature of Flash (that is both graphic and code oriented) generated the new breed of designer-developer, the “devigner”, a generally well balanced individual with a good graphic and code approach but with great variations. Creating and running some impressive Flash content is not so difficult if you understand how Flash works and how to copy and paste the code of others and where to paste it and if you are a bit clever that is not too difficult. Now having that same content run smoothly without leaving a huge memory footprint and overheating your CPU is something else that should be left to the professional and that is another story. The problem with Flash is that the market has been quickly plagued with wannabe Flash developers who have no clue about memory and CPU management. So yes a lot of Flash content currently running on the web will clog your CPU and memory but only when it’s been created by beginners with no insight in OOP and no good coding practises at all.
If you are a “dirty coder” you can easily get away with murder with Flash because the SWF is a compiled format and your code cannot easily be seen, very lucky for some; With Javascript, CSS and HTML, it is very easy to view the source and also very quick to see the differences between a professional approach and a random approach. So no wonder why the Flash player has been stamped as a “CPU and memory hog”. Don’t blame it on Flash, blame it on the lack of professionalism of many Flash “coders”.
From a development point of view
A strong point in favour of Flash is that everything can be created in the Flash environment using the design tools and Actionscript. You don’t normally need to use any other programming languages except when you need to interact with server side scripting. HTML5 will require interaction between javascript, CSS and Ajax in order to create what can currently be created in Flash with a simple Tweening API or even directly using the time line (although not recommended anymore with AS3).
A strong point for HTML 5 is that although HTML5 will require interaction between Javascript, CSS and Ajax in order to create what can currently be created in Flash with a simple Tweening API, it will be running directly inside the browser without the need of a plugin and will therefore be more “natural”.
It is easy to see that with HTML5 we are going to go through a show-off period, very much like what happened with Flash at the end of the nineties. There is already some fantastic demos out there demonstrating the power of the Canvas element and it is interesting and exciting at the same time.
The right tools for the job
Let’s not forget that Flash and Flex are now perfectly suited to create desktop applications using either the AIR framework or 3rd parties application like MDM Zinc and, HTML5 is totally useless here. Flash initially considered as a web tool only has slowly been used to develop applications running on the desktop, widgets and cdrom.
Should Flash developers be worrying?
Yes and No.
Yes because the IT job market is quick to sniff what seems to be the “new thing” and will quickly react by offering new positions for HTML5 developers with javascript, CSS and Ajax and there might be less Actionscript development positions on the market. To be honest if you are a good Actionscript programmer the move is very quick and easy since Actionscript and Javascript share a syntactical core based on ECMAScript edition 2. If you are already a good Actionscript developer you will probably find HTML5 quite easy.
No because Flash cannot be replaced in many areas like games, desktop widgets, e-learning interactivities and many applications that require advanced animation API or techniques. Although Flash has its flaws and requires occasional hacks, it became a solid platform and it will probably take about 10 years before HTML5 offers the same level of maturity.
Final words
At the end of the day the most important factors to consider are:
• FOR THE USER, we want a technology that works, which doesn’t require any technological knowledge to use and that runs smoothly on any platform. Nothing to install for HTML5 since it will be native and supported (hopefully) by all the major browsers which is great. For Flash the user needs to install the Flash player but honestly Adobe did a great job here and it is quick and painless.
• FOR THE DEVELOPER, we want him to have an easy life and not spend hours trying to find out what is the correct hack to have a piece of code working in all the major browsers and here Flash still has the lead since everything developed in Flash will work in the Flash player provided it is programmed by coders who know that a variable or a listener is not an evanescent spirit floating in the universe but that it actually resides somewhere in the local machine memory and that it needs to be taken care of properly before the user machine freezes.
We will see where it's all going, very exciting anyway, the web history is being built now.
|