In defense of Flash(blockers)
Over the past couple of weeks, I have really resisted weighing in on the Flash vs HTML5 pissing match that has preoccupied the blogosphere. As an Adobe employee, I obviously felt the tug to defend my company’s product and perhaps even echo Lee’s sentiment. But as an advocate of the “standards-based” web – having spent the majority of my career building HTML authoring tools and evangelizing the power of HTML/CSS/Javascript, I have been enjoying seeing the industry really begin to discuss “what’s next”.
Anyone who knows me (even internally at Adobe), also knows that I am the first person to tell you NOT to build an all Flash site – and don’t use Flash to build your site navigation – or your contact form for that matter. You see, I lived through the stupidity of the “Skip Intro” era – and spent countless hours teaching the emerging Flash designers/developers how to at least optimize what they were doing if I couldn’t convince them “not” do it at all. Back then there were all too many examples of “because I can, I should”.
Don’t get me wrong – there are times when Flash is not only appropriate, it is the only logical choice – and there are even appropriate “all Flash” applications. One great example of this is in the eLearning arena. In fact, speaking of that, it will be interesting to see how schools and other institutions react to the fact that their eLearning content won’t work on the iPlatform. But I digress.
We can waste hours discussing the pros/cons of HTML5 video, which for some reason has overtaken the discussion, but it really isn’t the point of my frustration – and others have already listed the amazing amount of problems with the current spec for HTML5 video, such as the lack of support for DRM, no alpha channel support, next to impossible syncing with timecodes, the need for multiple encodings, no ability to adjust/change streams based upon bandwidth, and the list goes on and on.
The thing that has irritated me most during the past few weeks is listening to the “Flash-haters” say things like “I can’t wait to see my last Flash ad” and “I’ll be so glad when I don’t have to look at irritating Flash crap anymore” – because I think there is one, very important piece of the puzzle that these individuals are missing. They are not “required” to look at any Flash today. Not only can they uninstall the Flash Player very simply, there are also any number of Flash blockers – plugins which turn off Flash content without uninstalling it.
But the big piece that no one (especially the “Flash haters”) seems to even be thinking about… how do you turn off content when it is built using HTML/CSS/Javascript? Think about it – let’s say that “tomorrow” all of the ad networks say “no to Flash ads” and require them in HTML5/CSS/Javascript. First, there is the challenge of HTML element and CSS class naming conventions. Imagine the chaos in your ads/pages when CSS class names or element IDs conflict, or your fancy Javascript calls an element that has the same name as one in your page/ad. Within 5 minutes of the “shift”, I will bet you that the screaming begins about “those damned Canvas advertisements that draw all over my screen”! The only solution will be to disable the very thing that it’s built with. So, go ahead, turn off Javascript – I dare you!
I guess it really boils down to “be careful what you wish for”. Like I said, in today’s web, I have the ability to decide if and/or what I want to see by installing or uninstalling a plugin, or using a plugin to block certain content. But that won’t be possible when you have no way of identifying the “advertisement” from the content of the page.
Consider this some food for thought – let me know what you think.
May 11th, 2010 at 12:41 am
Exactly, Ive been saying the same thing – well about flash blockers anyway – if you don’t like flash block it, its so simple. Hadn’t even occurred to me that we’d have id conflicts in an html5 world, now that would be nasty. Even though i’m a flash developer i do use a flash blocker, just as a measure of how integral flash is to the web, and clicking to enable something is fine. I think many of the people calling for an end to flash are iphone users who are annoyed about what they cant see and instead of calling for flash on the iphone are coming out with arguments in the vain hope that it will all be converted to JS, i think they have a long wait on their hands, and this is all about to blow over anyway once android proves that flash on devices can work.
May 11th, 2010 at 1:21 am
[...] more: http://blog.assortedgarbage.com/?p=463 This thing was constructed by Filippo Lughi. You can follow comments through the RSS 2.0 feed. You [...]
May 11th, 2010 at 6:00 am
Obviously you are missing the point – if we are in a full (and pure) HTML5 world, then you can’t tell what “content” is and what is an “advertisement” or other “non-essential” content.
May 11th, 2010 at 6:20 am
That’s a very good argument which I totally agree with. I am pro Flash and pro HTML, but I defiantly agree that Flash should be used when appropriate. There are times when I have created sites that have been in Flash when they really shouldn’t have been. However there are sites are enhanced with the use of Flash.
As for the ad situation I don’t know how people will turn off ads if they all end up in html/css/javascript. They would either need to turn off javascript or perhaps hide all images on the page as well. This would really make the user experience horrible. However if ads continue to remain in Flash then it will make it easy for you to hide the ads without taking away from the actual site itself. Although some people may be annoyed with flash ads, I think that it is a lot better then the alternative.
May 11th, 2010 at 8:22 am
LOL, so true. I swear the antiFlash mob is dominates by 14 year olds who just want to rail on whatever. Logic be damned
May 11th, 2010 at 8:40 am
For me the problem here is the uninstall.. yes developers know how to do it or can find out how to do it but my mom has no clue, my brother has no clue, 99.99999999999% of web users have no clue on how to uninstall it or where to go to find out how.
I keep hearing from the adobe fan boys about how apple needs to give the users the choice with flash on the iphone/ipad/itouch platform but so does adobe. What if flash had an auto-uninstaller that every 20 times it ran a flash app would give a popup saying something like “your browser wants to run a flash app which may expose you to viruses, may slow down or crash your computer, may slow down or crash your browser, may run down your battery faster or make your computer run very hot, it may also annoy you with unwanted ads, it may hijack your browser, it may suddenly auto run a video or audio file which may cause hearing damage, heart attack or get you fired from your job, etc… if you would like to uninstall the flash plugin click here or click here to stop showing this message”
Now let’s see adobe do that and see what happens with the install rate.
The bottom line is adobe needs to quit crying about apple and fix the damn thing which apple gave them ample time to do and now adobe is like m$, a day late and a dollar short.
The other problem for adobe is now that m$ has joined apples side which I’m sure they are grinning ear to ear about as they watch apple kill flash and be the bad guy instead of m$ and now opera pretty much has said the same things about flash as everyone else. Yet adobe refuses to see what’s going on.
The bottom line here is if the end user cares or not for flash. Given apples numbers and how many iphones and such are selling it sure seems like the masses really don’t care to have flash. Look at the ipad, 28 days 1 million sold during the whole “no flash tantrum”, plus over 50 million iphones and 30 million ipod touches or whatever, in a few months there will be over 100 million apple hand-helds with no flash on them vs how many hand-helds with flash that actually works… zero… the big goose egg, nada, zilch. That’s a pretty big head start and I don’t think adobe can over come it especially with m$ joining the fight against it.
HTML5 might not be ready but we need to move forward and flash really hasn’t moved forward in a long time and it’s day has come and gone and just like m$ adobe has sat on it and suddenly the world passed them by, the same way it happened to m$.
May 11th, 2010 at 9:00 am
Hi,
Nice post buyt I just wanted to point out that Black on brown paper color is not really good for reading. You might want to put more contrast. http://logolitic.com/black-and-white-portfolio-websites/
Cheers
May 11th, 2010 at 9:39 am
@okla pointed it out. Use AdBlock Plus (Firefox plugin). It looks at the source path and cross references it to a huge self-updating filter list. Works for all ads, regardless of HTML or Flash.
May 11th, 2010 at 1:53 pm
Great (and surprising) to get a balanced and informative opinion from an Adobe employee.
I’m aware of many limitations of JavaScript/HTML5 compared with Flash, but I hadn’t considered the fundamental problems with scope.
I completely agree with your frustrations. Not only from the irrational and uninformed Flash-hating community – but also the “Graphically oriented” users of Flash that have given the platform a bad name with their bloated and unoptimised “skip intro” monstrosities.
But the blame isn’t solely theirs. Both Flash and Flex produce unnecessarily bloated .swfs. As a pure ActionScript developer – I know how lightweight and efficient Flash Platform apps can be. Automatic generation of efficient .swfs in Flash or Flex is entirely possibly. For example, in Flash, timeline animation is very inefficient. I’ve never understood why Tweened frames are evaluated at compile time, rather than on-the-fly at run time. An odd engineering choice that surely loses more than it gains. (And don’t even get me started with inefficiencies in Flex!)
Somehow optimisation, has never been a priority for Adobe. Possibly, even now, they still think they’re in a one-horse-race.
May 11th, 2010 at 2:00 pm
The point is, if you use AdBlock, flash blockers are not needed.
May 11th, 2010 at 3:15 pm
I think all plugins, applications and languages get used on a needs by needs basis and will get manipulated, butchered or enhanced for each application. As a graphic designer who programs also I am not going to spend all my time converting video content for every single browser when I can use something that covers most. But saying that I cant wait till HTML5/CSS3 becomes the norm on all browsers so I can stop slicing rounded corners, shadows and the like.
May 11th, 2010 at 3:45 pm
But all of this, aside from the general use of the canvas element, can happen now. CSS classes and overriding JS functions for their own ends. But it doesn’t happen and it’s not just because they are all using Flash. It’s not in the ad servers best interest to interfere with the normal function of the page. And by normal function I mean they don’t want to do anything that would cause the site owner to discontinue the use of their ad services. Breaking CSS or JS would get them cut off quickly. Making a big annoying overlay doesn’t interfere with the site itself, just the user.
May 11th, 2010 at 6:17 pm
Many companies put ads in iframes, which solves some of the sandboxing issues. Ads combine HTML, CSS, JS, and flash. A kind of “more the merrier” approach to development. Both the code and the user experience are generally terrible, of course, but no single technology is not to blame.
If we want ads to be better (from the code perspective), it needs to be easier to do the right thing. It should be simpler to write good code than bad. That is not currently the case for any of these technologies.
If we want ads to be better from the user experience perspective, a lot of companies are going to have to get a business model, because more users click on nasty invasive ads.
Improving the code seems more realistic. :)
Also, I think many ad blockers use a domain name black list which blocks everything from known ads domains. That works for any resources, not just flash.
May 11th, 2010 at 9:33 pm
What a great article! I didn’t think about the naming convention aspect. Most people don’t grasp the mess it can make. For them to only have the option to block things in HTML5 by turning off Javascript…that is when people will realize. What I don’t get is why are people letting Apple dictate what they should use? Good job Greg!
May 12th, 2010 at 12:16 am
@Lyle – I couldn’t agree more. In fact, I’ve started redesigning my theme to use HTML5/CSS3. It’s gonna make things soooo much better!
May 12th, 2010 at 12:19 am
True, however, the important point is that when I, as a designer, am creating an ad in Canvas, I’m going to be naming things, styling things etc. Whose to say where that ad ends up and whether of not the conventions conflict. And the other point is that you won’t be able to turn off the annoying overlay.
May 12th, 2010 at 7:23 am
Thanks for the help rendered to us after the Adobe Roadshow! And that was an awesome show! And once again, thanks for showing us the features!
May 12th, 2010 at 10:29 am
To be honest, the all Flash vs standards thing started as an excuse to get rid of Flash, and that because of some very real issues.
On any computer today, Flash is going to eat a significant amount of CPU (very often in the 30 % range as far as I am concerned) and crashes very, very, very often.
That is absolutely unacceptable and that is why so many people want to get rid of it (although Steve Jobs might have other motivations). The developers of the Flash technology built something which is powerful, but which is also, in software developers terms, a half baked technology (read ‘a complete piece of garbage’).
May 12th, 2010 at 8:54 pm
@ad – Interestingly, throughout the years, the Flash Player team has consistently listened to the requests of users and addressed bugs, etc as quickly as possible. If you take the time to try the current beta of Flash Player 10.1, you’ll find that not only have resources been cut dramatically, the speed increases are amazing. If you’re on a Mac, I would encourage you to try the Gala (codename) player which can FINALLY leverage hardware acceleration on the Mac. And, as long as we’re throwing stones, try looking at the memory resources of HTML5 video – definitely a bit of a hog itself. ;-)
May 13th, 2010 at 10:04 am
I love Flash, I LOVE AS3 even more, but I have flashblockers installed on all my PC’s (I even installed it on my girlfriend and my mom’s PC)
I think you hit the nail on the head – it’s not the technology that is problematic, its the people implementing it.
The main reason why I use flash blockers is simply because 90% of ads are badly coded. They use massive amounts of memory (ie, loading a 2800×1600 background movieclip to pan around), and on linux just ONE flash app running will take up an entire cpu core.
One suggestion is that ad networks start employing some sort of CPU usage test for all ads. If adobe can provide some sort of benchmarking framework it might get the ball rolling…
Also, another suggestion I have: the core flash engine should have an option saying “Max allowed CPU usage”. If I had an option like that I would not bother with flash blockers
Does this make sense?
May 19th, 2010 at 8:40 am
@Lyle – I couldn’t agree more. In fact, I’ve started redesigning my theme to use HTML5/CSS3. It’s gonna make things soooo much better!
May 24th, 2010 at 3:27 pm
Flash has some serious problems (Dave has some points above), but it is fantastic at certain deployments.
Ultimately the client (end user, not the peeps paying my agency) just want the whole experience to work. Why should the end user have to install/uninstall plugins or switch on or off javascript, or care or know what they are for that matter. Why should the end user even consider the tech?
Standards based.
I sympathize where you are coming from Greg, but really! Every time Adobe adds a layer of complexity to the software to get back to compliance a little bit of the Macromedia and Adobe fanboy I was dies inside lol!
Anyway, think you are doing a fab job – keep on!
June 16th, 2010 at 12:07 am
@Dave – you’re on crack mate. Leave a website link next time as well, so we can see the best place to get it from ;-)
@Greg – this is a great article. I hadn’t thought of the possible ramifications for ads being converted into canvas tags and javascript. Another thing users dangling from the Apple tree may not have contemplated is how the same immersive experiences currently created with Flash will be created using HTML5 without tools like Flash to make them with… There’s obviously been a need to create sites in Flash up until now, and banning the plugin on 1% of the worlds devices won’t suddenly remove peoples desire to be creative. Will it?
August 4th, 2010 at 12:33 pm
I know this is an older thread, but I did want to leave my 2 cents lol.
@dave you might be right about 99.999999% of people not knowing how to install or where to look to find out how to uninstall flash. However, the same 99.999999% do not really even know what flash is, and the iphone / ipad users fall into that category as well. I am constantly being asked “why doesn’t this or that work on my iPad.” Sorry, but no flash for you is why.
As Werner said, “I think you hit the nail on the head – it’s not the technology that is problematic, its the people implementing it.”
This whole topic could be dissected for ever and ever, what about this or that or what if we do this or its because they do that…. With technology as available to the masses that it is today, it is no wonder that everyone thinks they are a designer or developer of some sort. Most of these same people use poorly designed WYSIWYG or other drag and drop programs to make their web pages and applications for them. This more often than not ends up with code that is a world of bugs and problems as well as extremely bloated.
And just to touch on flash in general (I am one of the people that feel flash should be used when applicable) My employees visit hundreds if not thousands of different websites every week, we have both Macs and PCs in our offices, our crashes / issues with Flash are virtually non existent.
I think the real problem we face is the uneducated public mass. “Buy a computer, install Norton AV, fire up IE and go to my favorite website!”…