HTML5 vs. Flash
First of all I wanted to make the title of this post "HTML5 and Flash", but I know it's going to bait more readers if I say versus. I should state for the record that for the foreseeable future I think Flash has a valid place on the web, and I don't personally see it as an us and them web.
Stephen Shankland, writer for CNET News got in touch and asked me to comment on an article he was writing, posing me the questions in this post. Unfortunately my reply got to him to late and he had to go to post without my answers, but I thought that it would be worthwhile sharing my views via my own blog instead.
How far is HTML (and SVG and CSS and WebGL and JavaScript) to reproducing what Flash can do today?
HTML, SVG, CSS and JavaScript are very far along to replacing a lot of what I see Flash doing today - but it should be noted my browsing style is general usage, rather than gaming or interactive videos - which Flash is good at.
WebGL is very much at an early stage in it's development, only really (currently) appearing in the nightly builds of Webkit and Firefox, equally I've seen videos from Mozilla putting WebGL on to a Nokia device with no optimisation and it being able to render pretty well.
There's lots of examples of apps and effects that have been achieve using Flash in the first decade of this century, but today we can build these using Open Web technologies. This ranges from the simple image galleries to full fledged word processors. Adobe released Buzzword which relies on Flash, but on the other side we have Google Docs which relies entirely on the Open Web.
Would you like to see Flash replaced by HTML?
I personally don't think HTML will replace Flash. I think HTML5 and the Open Web will replace Flash where Flash has been used as a stopgap. sIFR is used to bring "custom" fonts to the browser, but now we have really good support for native custom fonts via the CSS fonts module, and products like TypeKit and FontDeck are making it easy for web authors to include those custom fonts without the need of Flash.
The native video element will (eventually) allow us to drop using Flash for video. Flash has done an awesome job of pulling the braces up on browsers for the last decade, and we've needed it, but Flash is so much more than just video or font rendering. I think the smart developers aren't won't be worried about native browser functionality making Flash redundant for noddy tasks, no doubt they'll be thankful to not have to build another video player.
As much as I'd like to see Open Web technology do everything, I still think we're a long way off HTML being able to able to natively replace applications such as Aviary and games like Bow Street Runner.
Equally, as I mentioned before SVG is one technology that has come along, and with the help of the svgweb JavaScript library, SVG works in IE. This library of course gets IE to support SVG via Flash. It translate the SVG markup on to a Flash canvas proving that Flash still has a place on the web as a bridging technology as well as it's intended use.
How serious do you think the H.264/Ogg Theora matter is with the HTML5 video codec?
It's hard to say. Personally it doesn't make much difference to me if I have to encode once, twice or three times. Encoding is a background task so I set my converter off when I produce my screencasts and after an arbitrary amount of time I'll have some files to upload - obviously if you have masses of video to encode the disk usage is going to be a possible issue for you.
The problem lies with patents, which is why Firefox and Opera won't implement H.264 - but the politics and patents are for smarter people than me. There's also the fear that we as content producers could be liable for license costs to the patent owners of H.264.
On the other hand, the company that own the patent for H.264 has elected not to collect royalties until 2016 - when they may again choose not to collect royalties. Flash developers have been using H.264 for some time already and there hasn't been any retribution for them, but for now I'll be producing both H.264 and Ogg Theora encoded content.
I'll be watching this topic closely to see how browsers deal with the two codecs.
As HTML etc. gets what Flash has today, do you think Flash will move upstream and remain relevant, become optional, or what?
I think two things will happen. Firstly I do think that Flash will move (or remain in some cases) upstream, and continue to push what's capable within the browser. Gaming is a great example of an arena that Flash excels at. The second thing I think we'll see is Flash developers taking the progressive enhancement approach to applications, relying more on HTML based solutions and enhancing upwards using Flash - Jeffrey Zeldman posted a great article recently suggestion exactly that.
How difficult is it for a Web developer today to use the fragmented Open Web standards vs. the more consistent Flash?
I don't think it's too hard at at all, but it really depends on what technology you choose. Web Storage has pretty solid support in the latest browsers (if not the nightly builds), but it's relatively easy to patch missing support just using JavaScript which would map sessionStorage to the window.name hack and localStorage to cookies.
Geolocation can be detected and made use of if it's available, whilst those without the functionality can still map their position using something like Google Maps or a text field, thus taking a progressive enhancement approach.
Offline applications on the other hand can't be achieved if the technology isn't available - so it really depends on the application, it's use and whether you have a specific platform in mind for deployment (which generally I wouldn't encourage, but we know it happens).
Flash developers definitely have an easier time when it comes to deployment environment - in fact I've met a number of Flash developers now that said they made the shift from JavaScript and HTML years ago to Flash because of the appeal of a single environment: the Flash runtime.
Anything else on the subject?
As I said at the start of this post, I don't see this as an us and them, Open Web and Flash. I do see HTML5 plugging the areas that have been held up by Flash for the first decade of this century, and there are other areas that HTML5 supports that Flash doesn't - but Flash could even make use of, such as Offline Applications.
It's an exciting time on the web again where browsers are implementing features that make it an even more powerful platform to develop on. I for one, am keen as mustard to get building with the new shiny toys they're giving us. Equally, I'm certain Flash will continue to be used to build awesome shit (and probably some not so awesome shit) for a long time yet.
You should follow me on Twitter here I'll tweet about JavaScript, HTML 5 and other such gems (amongst usual tweet-splurges)
I'm looking forward to using all the new elements.
Section, article, footer, audio, video, progress, nav, meter, time, aside, canvas and hgroup.
I wrote an item-by-item summary of what's missing and what's comparable here:
http://www.ludamix.com/archives/2010/02/entry_5.html
One interesting question would be how this works out on smartphones compared to personal computers. Will the actions of Apple and Google regarding HTML5 and Flash have any effect? Agreed neither are all that big in the strong areas of Flash including Gaming and highly specialized web apps as yet.
I must add that an important factor also is the objective of the project to be able to choose between one or the other technology.
Thanks, Remy. At the developer level, it's easy to see that HTML5 is bringing all sorts of advantages to interactive website development. Elsewhere there is an unfortunate buzz in the air that suggests HTML5 will somehow replace Flash. This is unfortunate.
No doubt about it: there is an anti-Flash faction out there that jumps on every suggestion that Flash is about to be replaced as unnecessary and outmoded. Some of these partisans are just Javascript people who resent Flash's dominance. Others are non-developer types who read investment newsletters and get the notion that Flash was a temporary technology that was good for loud intros and video-laden sites but not good for much else, and will go the way of the Amiga. We've seen this before. Twelve years ago, Apple was on the way out; ten years ago we were told that Flash was "99% BAD" for websites (Jacob Nielsen). Now we hear that since the iPhone and iPad are holding up Flash implementation, Flash is unnecessary for future development.
I've worked with Flash and Actionscript in corporate interactive environments for 7 or 8 years. Very little of the work I've done in Flash could be replicated with HTML, CSS, PHP, and Javascript. If you wish to produce a sales platform, online presentation, game, or anything else requiring a high level of interactivity, Actionscript will be the only way to go for a long time to come. If you wish to replace a Flash navigation bar or video element with something else, then yes, there are other options and HTML5 expands them. But this covers only a marginal area of Flash work. It is as though someone were to announce that since they are installing a new light-rail line in some suburb, no one will ever again need a car.
I see this approach to the open web on a lot of blogs. The idea that HTML is being reconstructed to replicate Flash is what really gets me. It seems like an waste of time seeing as Flash already exists and it would be much easier just to use it as opposed to spending years reproducing its effects in Javascript... which in itself does not offer cross-browser support.
On a more technical note, SVG is no longer a part of HTML spec. HTML5 spec will support the Canvas tag, which is patented by Apple Computers. Apple is trying to leverage the HTML5 spec to gain a larger share of the technology market. It seems they want to put a standard on web design. If successful, they would hinder the growth of web technologies. HTML is not technology, it is simply a way to display data whereas Flash is a full-blooded software running on the web. It is technology and very advanced technology at that... I could go on forever... read this:
http://blog.nothinggrinder.com/id-rather-be-a-woz
Thanks for this, you've made some excellent points regarding what the role of Flash actually is. I feel Flash has a future but I do think that there are a lot of influential people peddling an 'Us vs Them' attitude to Flash and HTML5 to best serve their own interests.
"... but Flash could even make use of, such as Offline Applications."
- adobe Air
@Jane Cooke
"Will the actions of Apple and Google regarding HTML5 and Flash have any effect?"
- no, because nokia holds the global market
@margot sheehan
"Now we hear that since the iPhone and iPad are holding up Flash implementation, Flash is unnecessary for future development."
you will have AIR runtime on both of them soon. but iPhone and iPad are 2 extremely small factors that govern exposure of your web applications. many people have the devices but they don't use it for web extensively, so desktops and laptops rule the web currently. excellent comment btw.
@Codesquid
"The rise of the iPad, iPhone and other mobile devices that don't support flash will all encourage less flash reliance in the future"
both are old technologies and they fall. there is no rise of them. "less flash reliance in the future" no real data indicates this, in fact all of it is against it.
@Josh Betz
"Flash is so taxing on CPUs it's ridiculous."
it's 2010 from what i noticed. anyway, ridiculous is the one who did the code that eats up your CPU. in fact AS3 runs much faster then JavaScript, only that JavaScript isn't used to do heavy duty jobs. there is no "better technology" there is parallel good technologies.
@Gaurav Chandra
"1) No SEO support for swf files"
irrelevant. google is exposed to html content you are exposed to flash. there can an is a dissociation there.
"2) More and more people are moving towards HTML/CSS/JS as browsers are increasingly becoming powerful and fast except IE"
aha, sure, so what? those are pages, an not web applications, i will also code HTML CSS JS if the page has nothing that cant be done better with flash. and pc-s are becoming powerful not browsers.
"3) Flash costs more in the end..."
try Flex
"BAM!!! If adobe is not using Flash themselves"
see comment to 2)
i mean,... WTF are some of these people payed to do this brain-dead thing right now when 10.1 is about to get out.
@Henrique Carvalho Alves
html5 does not solve anything yet. i work for a Swiss company so i can't have 1 pixel difference across browsers. html can't deliver that basic thing at a complex level thx to people who give a shit for the standards when creating browsers. and flash has it's own runtime developed by adobe only (at least the pixel part) so 1px is 1 px on pc and on iPhone's AIR too.
@Ben
try this
http://listen.grooveshark.com/
and for SEO nuts (i have one right besides me as i type this "comment"
) grooveshark is also fully SEO friendly. it has a html structure behind it.
as a verdict:
an open standard will never be better as a functional 3rd party. adobe is investing more money in one version shift then all the standards combined. for IE for ex. not microsoft is paying and developing to run flash but adobe does. same with apple, google, mobile phones, ...
html is the thing that has to be replaced. you might not know this but html is around 22 y old. and there was no paradigm shift to it. while AS got from 1.0 and evolved to 2.0, and then 3.0. note for ex AS3 delivers 110 times more speed then AS2. and that is NOTICEABLE after 6 months of penetrating.
this leap you won't see over night by W3C (they just change names basically the work falls on the browser creators) and all the companies that may or MAY NOT SUPPORT IT FULLY.
and i do hope that sometimes html will reach a consistent standard level. i am sick and tired getting complains about 1 pixel while one browser puts the border outside the div and another inside.
in the mean time i just figured out why jobs started the whole thing. and i believe he is actually paying people to feed the fire, in order to attenuate the glow of the black point right to "it still does not support flash".
what if - for ex. - iPhone's safari would support flash.
apple is selling a ton of small games and applications for these devices, he the revenue is split between apple and the developer, and it is a multimillion dollar business, just the games.
there are great sites out there like newgrounds and kongregate with millions of greater games that you just can't buy on appstore.
so if you flash iPhone up, no one in there right mind will buy a game from apple, if they have access to millions of them for free. apple will lose a big chunk of money.
and there will be also apps in flash that do just anything for free.
implementing the Air run-time is much safer. adobe gets it's share, apple get's it's share, and everyone is happy, except the developer, but the platform will be used anyway, at least i will try it out because there are many more ways to make money of iPhone/pad users.
iPhone and iPad will not support flash in their browsers because apple wants your money.
i brought this up because the whole flash vs html5 was started by jobs. i am fully aware that the iphone/ipad users who actively browse the web is an irrelevant number.
I saw the iAd Apple used in the iPhone OS4 presentation. That was extremely impressive. If you can create that using HTML5, what are the grounds for complaint?
Many people wish Flash a long and painful death. I for one do as well.
For years, and still presently, as a *BSD user Flash would never offer a direct flash plugin’, or support for “many” OS’s out there, namely all the *BSD’s,…
many moons ago, it was cool to see pictures(jpegs,…) on the early web.
… well, “Web Audio/Video's” MUST be treated the same.
Its like telling one OS you cannot use html in your browsers, but another OS can ?
Well it is NOW today ppl, could we possibly not get more sillier about something that should have been as standard, and common as web Video for Internet public en mass ?
This is not about OS bashing, its about the freedom of users to be able to “VIEW” the Internet, and of course the “contents” thereof, using their OS/browser of choice.
(Don’t get me wrong here, if you want Adobe Premiere,…, then you have to bloody-well pay for it -I totally agree.)
But, if the means to accomplish mainstream web audio/video were an accepted opensource standard, like ftp, TCP/IP, html, DNS, sendmail, …., then we wouldn’t be starring blanky at an Adobe proprietary flash plugin screen, only to find out that it doesn’t even “want” to support (client-wise) a lot of the OS’s/browsers out there.
In this respect, THERE IS NO PLACE FOR FLASH, (or “any other similarly-proprietary web-video-app) ON A PUBLIC INTERNET.
it’s as simple as that.
To create and view “simple” web-Audio/Video-content should NOT have become an unduly, and overly-complicated mess.
If HTML5 is “truly” opensource then this is a no-brainer for web-developers’.
Put it this way, there will be (and I hope sooner-like NOW) an opensourced-standard-like Flash direct replacement. -AND, in both client, and server sides.
Your Adobe proprietary “Flash” has to go bye-bye. It should have never been in the first place.
Anyway, here's how it'll ALL work soon.
"
1st./ User opens their browser of choice,
2nd./ User than goes to content site,
3rd./ User finally enjoys listening to audio, and/or watching video.
"
There 'ya go, as simple as as 1,2,3.
…and maybe then, it’ll finally be
“Happy browsing to ALL, and to all a good “net” ”
Thankyou.
FlashInThePan, LOL
1,2,3 are the points for what you are using the internet.
"only to find out that it doesn’t even “want” to support (client-wise) a lot of the OS’s/browsers out there"
if you give me a link, i'll be happy to agree with you. the thing is quite reverse OS’s/browsers don't want/can support flash, simply because they are a crap software or the usual, PROFIT.
don't forget that html evolved from a corporate standard, and see where it stands now? some things are better to stay proprietary.
html is 20 yo piece of shit that no one respects.
when you see a nice, cool page, you see that it's done in html/js, I SEE WEEKS OF FRUSTRATION AND PAIN OF THE DEVELOPER TO MAKE IT WORK ON ALL BROWSERS.
there are open standards regulated with the iron fist and they work. html is not even fully defined yet alone implemented correctly.
lets say w3c got it as wrong as wrong can get.
lol "encoder" :
Mr. "PopUp", lets say you got it as wrong as wrong can get, take your beloved Flash with you please.
I think a lot of your views are sensible when you say Flash and HTML5 instead of "versus". There are many people out there that already have enacted the death of Flash and things like that.
In your point of view, it could be produced new WYSIWYG softwares to building HTML5 pages, as happen today with Dreamweaver or Kompozer? Or the existing ones will be adapted to these new languages?
Greetings from Brazil and sorry for some english writing errors
Nice piece.
Encoder - great points. I've been following this "HTML v. Flash" feud very closely. I am interested in learning Flash to work on developing web content - but haven't made a move yet due to the skepticism surrounding this matter. Need to make sure I choose the right side
To your credit, I feel more confident about speding time learning Flash after reading your comments. I'll probably watch a few more months before deciding on the investment...
What are your thoughts about websites/content built 100% in Flash? Do you encourage collaboration between Flash and HTML/JS/PHP etc?
Cheers!
There is one thing that I miss in the HTML5 vs Flash debate,
You can sort of 'secure' your flash program so that it is only allowed to be run on a specific domain. You can't do this easily with javascript.
I think this is a big advantage for companies that don't like to see there webapps being copy-paste on other sites.
What is your opinion about this?
encoder, you're missing the point. The only platforms and browsers that Flash can run on are those that Adobe chooses to develop a plugin for. I don't see how any sane person could agree this is a good thing. I have no problem with Adobe's Flash Professional - it's an excellent development environment. The Flash plugin on the other hand is a bloated buggy security hole ridden piece of crap and I fully support any efforts to get rid of it.
It's basically a developer/consumer battle. Developers generally don't want to see Flash replaced as it's easy to develop in, whereas consumers want free chpice of their OS and browser and want it dead. Both sides have a cost element in their preference.
Personally I think the open standards will win, and the Flash plugin will eventually die. It will take 10 years or more but I'm sure it will happen.
Flash Professional is an excellent DE, and will eventually support exporting to the open standards.
foster, if you are still using the flash pro IDE to work in it, than it is clear to me that you essentially know nothing about flash.
moreover latest flash players are always getting something new annoying (because i have to mod all my apps up there) security gate. the flash player is almost paranoid. adobe in general is.
"The Flash plugin on the other hand is a bloated buggy security hole ridden piece of crap and I fully support any efforts to get rid of it"
i think you are mistaking security sandbox violations with security holes and accentuate your incapability to code in the flash environment.
which open standard will win?? there is no open standard that is implemented correctly and fully.
no my friend. Alternative platforms will win. unity, 3dvia, flash, silverlight(this maybe not :P), ...
html can't and will never deliver what consumers want. if microsoft realizes this (hence silverlight) then you can bet on it that "open" "standards" are not the way. when microsoft bets, in the long term always wins. he arranges.
"The only platforms and browsers that Flash can run on are those that Adobe chooses to develop a plugin for"
did you ever asked what Adobe chooses. it is so complicated and impossible to realize for you, that the correct business solution is to have it on ALL platforms, for adobe?
if they wanted control and maximum revenue why is flash player free??? why is flex SDK free??? why is the Air runtime free? why invest in a money shredder like the open screen project???
aaa
sht
sorry if offended you, but i'm sick and tiered of people with 10k lines of "code" think they are web developers and they know it all.
I'm closing the comments on this post now - the post was never intended to be a hosting ground to HTML5 or Flash bashing.
The vast majority of what encoder has said I absolutely disagree with, a great example is things like:
Hmm, let me see, perhaps http - that's an open standard. Implemented perfectly otherwise you'd have trouble leaving all your "feedback". So that's me calling bullshit on just one of the things you've said.
It saddens me a little that there's still this rock throwing mentality between some people in the Flash camps and some people in the Open Web camps. But, I guess that's what spurs me on to try to get these communities talking to each other and understanding what's possible in each technology - and then, and only then, use the best technology for the job
James Padolsey quite rightly asks:
Absolutely a fair question, I replied with: my blog, my rules
I'm not deleting the comments, but I can have last say on the comments. I rarely do this, so hopefully it'll just be a one off.
Thanks for reading everyone.