Flex, Geek Culture, iphone, Rich Internet Applications
The Real Reasons Behind the Flash Debate
February 13, 2010 Sébastien	30 Comments
In my humble opinion, the main reason why the debate around Flash versus HTML5 (and Adobe versus Apple) has gone haywire during the past few weeks is that everyone is...
In my humble opinion, the main reason why the debate around Flash versus HTML5 (and Adobe versus Apple) has gone haywire during the past few weeks is that everyone is lying about their true motives (like in any apparently inextricable conflict):
Apple doesn't want Flash on its closed devices like the iPhone, iPod Touch and iPhone because Flash would be an alternate content channel that would hinder Apple's very lucrative iTunes business. And of course they won't admit it because it would mean that they put business strategy before innovation.
Adobe has some technical issues with Flash because the codebase is very old and costs a lot to maintain. And they won't admit it because it would make Flash look weak and unreliable on the long term.
Most HTML5 proponents started as amateur web developers, tinkering for years with poor technologies like HTML, CSS and Javascript, building entire businesses around their capacity to figure out all this mess out of trial and error.
Flash developers (including yours truly) have invested a lot of time, money and effort in tools, training and experience with the Flash platform, and are not so enthusiastic about throwing all of that down the garbage for yet another fashion tech. But of course we won't admit that because we're afraid to look like dinosaurs who refuse to evolve.
And since everybody uses pretexts, everyone will use every contradiction and approximation possible to maintain their cover. Like I said, wars work the same way: ideology hides facts. It motivates your troops to fight the other side until they're dead, because the big guys, the ones who know about the real reasons simply can't find a peaceful solution that would allow everyone to win.
It reminds me of a European civil servant who asked me this simple question once when I started a mission for the European Parliament: "Why do you think the European Union was created?" Naively I answered "so that one day we can be on equal foot with the United States." "Wrong!" he said. "That's not what Shuman and its friends had in mind. After World War II, they realized that the true source of the conflict between France and Germany, and by extension between their respective allies, was the repartition of natural resources in general, and most notably at this time, coal. But it's hard to get people to fight for that kind of cause, so powers had to disguise it with ideology so that people would feel invested and do terrible things in the name of it. And they understood that if they didn't cure the real sickness instead of fighting the symptoms like they had done after World War I, they could not prevent it from happening again. That's the real reason why CECA was created, and then CEE, then EU. It was not a matter of power, it was a matter of peace."
And that answer struck me because the same pattern repeats itself over and over again in a lot of contexts. Behind decades of war between Israel and Palestine, there's a fight for water. Behind the war in Irak, there was a fight for gas. Behind the war for the future of web technologies, there's a fight for customers. And the conflict is even more violent as it happens on 2 different levels: company-wise between Apple and Adobe, and community-wise between Flash developers and HTML developers.
The good news is that there's a way for everyone to win peacefully once we reveal the real issues. There are enough customers for everyone. It's not a zero-sum fight. The other side doesn't have to lose so that we can win. The question is: will we be strong enough to reject the ideology and find a common ground at the community-level? Or will we let the big guys at Adobe and Apple hide behind ideology and use us as cannon fodder.
AdobeAppleflashFlexhtml5web
Previous PostGrails BlazeDS 4 Integration PluginNext PostbetRway is Back!
30 thoughts on "The Real Reasons Behind the Flash Debate"
Kaveh Shahbazian says:
Indeed! And thank you very much for this enlightening entry!
Pingback: uberVU - social comments
John Dowdell says:
Hi, I'm not sure the "old codebase" argument will stand… the past year-plus of engineering has been on optimizing Player for a range of low-powered devices. It would be hard to optimize something that is difficult to maintain.
Of course, the flood of mobile announcements next week might just be a cover for being weak and unreliable… that would seem a little hard to arrange, though…. ;-)
jd/adobe
How is it that Adobe is so slow to react on essential issues like mousewheel support on the Mac, or HTML rendering within Flash then? How is it that it's taking so much time to release Flex 4? Plus, with all the best will in the world, I still find it hard to bite on optimization: I'm using 10.1 beta right now on my Mac, and I can tell you that Youtube is still making the fans of my Macbook Pro blow like it's gonna take off like an AR.Drone.
Maybe I'm wrong. Maybe the codebase is not so bad quality. But it's the general impression I get from following a few issues on Adobe bug base. And even if the issue is not code quality, the end result is the same: a general impression that Flash is unstable and resource-greedy, and that it's not likely to improve over time. It's also a matter of perception, and it's not the first time I give this feedback as a Flash platform developer: you guys need to pay more attention to details.
Just my 2 cents.
Minh Tran says:
so true,
flash is greedy and buggy indeed on mac. it never releases memory until you close the browser. but i still love working on it. i feel the same as Sebastien, adobe is slow on these issues. one adobe guy also commented on his blog that issue's priority is based on users' vote. maybe only adobe 's big users' votes.
i hope to see some html5 framework for GUI in near future. as the article said, html5 and flash can coexist.
"Most HTML5 proponents started as amateur web developers"
Such arrogance. It's the majority of Flash developers that where and still are the amateurs, using a closed but easy to use platform like Flash instead of trying to create real web applications for the open web.
Sure, Apple is an unlikely ally with it's own dubious agenda. But the real battle is, and has always been, about Flash versus the free and open web. It's not Adobe versus Apple, it's Adobe versus the rest of the world.
Ironically enough, your own arguments concerning Adobe's codebase illustrate how important that battle is. The real web doesn't depend on a single manufacturer, and if Flash was a valid web technology, any browser manufacturer would be able to implement Flash.
Both Adobe and lazy Flash developers like yourself have abused this situation for long enough. Here's to hoping HTML5 will kick your selfish, shortsighted buts of the web!
You just proved my point about amateurs, dude.
Julz says:
I hear people mentioning everywhere that it's going to impede on Apples app business but I just don't see that happening. There are a bunch of issues with flash on iPhone not just the battery issue but the interaction issue. There are plenty of sites that use mouse position and stuff like that for controlling flash interfaces. I love great Flash websites but I don't know if I would want them on my iphone. The battery doesn't last very long as it is. And judging by the demonstration of Flash on the Android phone it's got a long way to go. Just look at how the demonstrator only scroll with his finger on the none flash parts. Also when he scrolls the flash jumps just like it used to on the old versions of Safari. Then don't get me started on the buggy CS4 suite. I'm still pissed that I pay thousands of dollars for those apps and they hardly ever patch them.
I think it's not only about apps, it's also about video, and content in general. Think of Hulu, Safari Books Online, Deezer and all the streaming sites. See how they all compete directly with iTunes (I don't know whether Safari Books Online uses Flash, but the others sure do). And then off course, AIR would be a viable alternative to native apps, all the more so if you can develop one app that can run on all the mobile platforms that support Flash 10.1. In other words, once it has his rough edges cut, Flash 10.1 could be TODAY what HTML5 promises to be in a few years from now. But I'm digressing again, I'm back in the mud. That's not my point. My point is that AIR on the iPhone would have its own weaknesses: harder to monetize, less integration, etc. My point is that there is no such thing as a silver bullet. My point is there should be several technologies and they should be able to compete openly. But instead of that, we're all going nuts over theories, nonsense, misunderstandings and approximations.
My point is WE should get to decide what we want to use in terms of technologies and THEY should improve their respective technologies to get us to use it. But THEY should not lock us into using one against the other. That has nothing to do with openness, with freedom, with competition. Those wars are just insane.
Ted Wise says:
Apple could care less about external content. The hatred for Flash has nothing to do with lock-in. You can watch YouTube videos in H.264 until the cows come home.
It's 100% about what's appropriate for the platform. Flash wasn't ready when the iPhone came out, and Apple realized that the slow, buggy platform was not only unnecessary for the iPhone to succeed, it worked entirely in their favor.
The HTML5 crowd's hatred for Flash is simple. It's non-transparent, requires a third-parties code to run, and doesn't scale by platform. Their solution is to make it unnecessary. The canvas tag, the video support, the fast JavaScript engines, the worker threads, the local storage – all replacements for Flash equivalents. The result is a faster, more scalable, more stable and more easily debuggable solution.
Don't believe me? Competition is a beautiful thing. The Chrome and WebKit JavaScript engines shot right past ActionScript performance. Video performance in Safari and Chrome already uses less CPU then Flash. Now maybe Adobe will get off their rears and rise to the occasion.
@Ted If it was only technical, what do you think was the simplest solution? Give up on ubiquitous Flash at the expense of browsing experience and promote a standard that won't be ready for prime time before years? Or set up a joint task force between Adobe and Apple engineers to figure out the issues and make it work?
Also, don't forget that it's not only about what's possible. It's also about what's easy to do. And I'm not talking about users here, I'm talking about developers and content producers: is it easier to combine a bunch of tags that are implemented in an inconsistent way, or develop your content channel once and for all for all the platforms? Oh no, right. Flash is not supported, HTML5 is not cross-compatible anyway. So the best option is… native apps!
Guys, open your eyes!
RogerV says:
Combined those two webkit browsers represent maybe 10% of over all browser users.
HTML5 is (and will continue to be) plagued by differences in implementation behavior and squabbles (such as codecs for HTML5 video tag) – just as the HTML, JavaScript, and DOM APIs that have preceded.
Targeting Flash Player means a consistent runtime platform across most of the browsers that most people use (IE, Firefox, Safari, Chrome), the Windows, Mac, and Linux OS, plus get things like portable vector graphics and charting to boot.
When developing Rich Internet Applications that make heavy user of the Flex SDK (instead of just the typical Flash features of streaming video or web ad animations), all these factors imply immense cost saving for companies doing enterprise application development.
The web server deployed Rich Internet Application is the standard model for contemporary enterprise application development. Adobe Flex is the premier technology for producing RIA applications cost effectively, and yet with very high quality results.
Our enterprise Flex-based apps can run in a browser, of course, but when a user installs our AIR front-end, and runs the same app in a AIR remote sandbox, they get a completely different caliber experience.
The app then seams very much like a multi-window application on Macintosh OS X, where all the app's windows behave within a single layer. It's cool to have a Mac OS X experience on a Windows PC. And its really cool to do it with an app that mostly (98%) is being deployed from a web server. This whole paradigm of Flex RIA, browser, and AIR front-end hybrid apps just leaves HTML/JavaScript/DOM in the dust. HTML5 is pretty feeble stuff by comparison of what we've already achieved in our apps in the last couple of years of Flex/AIR RIA development.
awrgiht18 says:
While Flash and HTML are fighting the fight and Apple and Adobe are fighting both about old technologies, Microsoft is not even arguing, but continues to inexpensively maintain and distribute a product that is super simple to learn and use and offers way more features that HTML 5 or flash, and will likely run on th iphone before the end of the year. Of course I am referring to Silverlight.
Josh Reed says:
Apple != HTML5 so there are really two issues here: Apple vs Adobe and Flash vs HTML5. On the Apple front, Adobe has always treated the Mac platform as a second class citizen when it comes to support and stability, so now they are getting a bit of their own medicine–Apple is saying they don't want it on their iPhone. I don't see how anybody, Adobe or you as a Flash developer, can argue with that until Adobe steps up and makes Flash work properly on Mac.
On the HTML5 vs Flash front, @Rick had the right of it: "The real web doesn't depend on a single manufacturer, and if Flash was a valid web technology, any browser manufacturer would be able to implement Flash." Until that happens, Flash is a closed source technology that could go away at any moment, regardless of how ubiquitous it is now.
But they are already able to implement their own Flash player. That's the thing. SWF spec is open and available to everyone. It's just that Adobe covered all of the most common platforms with reference implementations and with good enough quality, whatever you think and whatever the rumor says. So what would be the point in reinventing the wheel. And you know what, some guy is already working on a Javascript implementation of the Flash runtime, called Gordon. How ironic?
What you don't seem to see, and that's the point of my post, is that by not collaborating closely with Adobe like they did with Microsoft or Google for example, Apple led you to think that if Flash implementation felt less performant on the Mac, it was because of Adobe. Why do you think they did that? What was their end game, if not a fight against a direct competitor on the content channel market?
But it really seems hard for people to step back for a moment and consider the broader aspects of the situation.
And another thing: don't call me an amateur just because I haven't drank the same koolaid as you have, _especially_ when open standards are on my side.
I'm calling you an amateur because you sound like one when you bash a technology you obviously know nothing about, while bragging about using a technology that is less "easy to use". People who think they are in some kind of crusade with things on their side, and completely forget to consider all the options with the only concern of the best interest of end-users, those people I call them amateurs.
@Sébastien, the reason why your fans spin up on the Mac (and not Windows) while watching YouTube is because Apple won't allow third-parties to access hardware-assisted H.264 decoding through its API but happily allows Quicktime to use it. Why aren't people complaining to Apple about this when it affects millions of Mac users?
@Rick, "if Flash was a valid web technology, any browser manufacturer would be able to implement Flash". Any developer *can* read the SWF spec and build a fully legal and compatible Flash player, just like any browser developer can build a HTML5 compatible browser. I wish more developers would build Flash players. It is happening to some extent right now with the Open Screen Project. Flash (SWF) is really not that much different to HTML5 except that Google and Apple (as editors) control what goes into the HTML5 spec and Adobe controls what goes into the SWF spec. You can say one is open and one is not but in the real world it really comes down to who you think might be more inclined to listen if you want a feature added to the spec. Although they're not perfect, Adobe does actually listen to its developers on many issues, eg. the whole Flex/Fx-prefix issue. Do you really think Ian Hixon is going to listen to you if you wanted the HTML5 spec changed? I don't think the open/closed debate is as clear as some people claim it is.
I get your point Darren, but then I'm back with my original point. Apple managed to collaborate with Microsoft to port Office to the Mac. They managed to collaborate with Google on the iPhone and several Mac apps. Why is it that they refuse to collaborate with Adobe to fix those integration issues? Why is it that they're trying to make Adobe look bad, if not so that they can protect their iTunes walled garden? Adobe has allowed Apple to sell millions of Macs thanks to their creative suite. I'm even convinced Adobe is the reason Apple didn't go bankrupt when Steve was gone. How did it come to the point when those two are not able to communicate and figure out their own issues?
Bryan Berry says:
Your oversimplification of complex international politics amazes me.
Coincidentally, you oversimplify html5, js, css as a "mess." I work w/ both flash and html5 and I do not find the latter to be a mess.
Chocolim says:
Have to add a lot of flash in the web are made by designer people with not skill at optimize code.
Because theirs test are, is pretty i work (1 time) is ok let go to production.
That is one more reason why flash are so computer intensive
Giorgio Malagutti says:
Flash as a 'spice adder' for common web sites should just be forgotten, unless you are J.Lo.
There are indexing and usability issues mentioned so often that it's not really worth it mentioning them again.
As a video codec/format it should and probably will be replaced; after all Flash was not born with that goal in mind.
As for large web applications I wouldn't start working on them using ActionScript because there are better options out there to obtain the same results (with better IDEs and richer tools: C# -> Silverlight 4.0, Java -> GWT 2.0).
I wouldn't write GMail or Yahoo Mail! using ActionScript. IMHO Flash is doomed because of ActionScript, not because of the Flash runtime being buggy.
Still, Flash is everywhere, so if your application is not too large in size, requires a large screen and you think that your audience will be delighted by a clean, elegant UI Air is still a good choice.
Web prototyping, or displaying complex data animating over a map are good examples of application I would develop using Flash. For the rest, I would either go Silverlight or GWT.
Giorgio, I don't quite agree with you about Flash not being fit for big apps. About GMail-like apps, there use to be Zimbra, but it seems they moved to HTML/AJAX after OpenLaszlo made it possible to compile an OpenLaszlo application into DHTML in addition to Flash. But it shows that it is possible. Parleys is another goog example of a pretty big app written entirely in Flex. And I'm not even talking about the hundreds of mission critical Flex applications built on top of SAP, Salesforce and other enterprise backends.
My whole point is that we, as developers should be given a choice to use whatever technology suits our end-users and fits with THEIR constraints, and we shouldn't let Apple or any other company tell us what I can or cannot do. And so far, the only ones who have been doing real efforts to make sure their technology is available on all possible platforms is Adobe, whatever what the popular belief says. And the news prove me right: AIR on Android. What do you think would happen to App Store business if that became possible on the iPod/iPad?
Sébastien, what Apple does today is what you would expect from Apple. They strive for quality and this obliges them to keep the prices higher and to keep their products more isolated. I don't blame them for it, it's their DNA and in the past they paid a very high price for it: they remained marginal for 10 years. Now that this policy finally paid off you ask them to change attitude. Of course they won't and although I don't think that this is beneficial to Apple, this IS Apple and iPhone and the App Store are there exactly because they have this philosophy. Otherwise you would have another Windows Mobile like phone out there.
They created iPhone from scratch, gave a tremendous impulse to the industry, we should thank them for it because they raised the bar and shown the way to a better user experience.
As for openness, soon it will be possible to write iPhone apps using Flash or other languages and I am looking forward to it. Also, there will be other phones quite as good as iPhone and more open, we start to see them. Their moment of glory can last for 2-3 years, not more.
IMHO the developers should not attack Apple for being a closed system, they should rather attack Apple for forcing Objective C on us, as if in the Windows world you could only develop native applications using C++. This attitude frankly does not belong to this century.
About large web apps I must agree with you that it is possible to write them in Flash/Flex/Air, but ActionScript is not Java nor C# not to mention the IDEs. The fact that the debate about C# 4 and Java 7 is steaming hot and very few discuss the future of ActionScript speaks for itself.
A current irony is that because Flex and AIR are predominating in enterprise app development, these enterprise apps are surpassing in quality and user experience the public-facing Internet web sites that are being built in limiting HTML/JavaScript/DOM.
In the old days enterprise apps were always stodgy relative to consumer-oriented applications. With Flex and AIR RIA, no more.
The mass consumer-oriented web sites are mostly built in the single paradigm of the browser web app using HTML, et al.
Enterprise apps are being built in superior technology of the RIA platforms. Now most of the mass public is stuck using sites like Facebook, which is just a horrible user experience relative to RIA user interfaces.
It's a surprising reversal for sure. Yet in IT circles that are doing enterprise app development, there is a premium being placed on cost-effectiveness of the development platform relative to the quality of the results achieved. The RIA technologies are much more cost effective for what you get out as an end result. The leverage is rather extraordinary.
@RogerV Definitely Flash on the web is still being perceived as a plugin for small panels and not a general Web Application solution.
I agree with you, but look at what's happening in the Windows world: WPF is been around for 2 years now, it would allow to create rich interfaces and very few use it. Either the developers are lazy or we all got accustomed to the Apple interfaces that are sober and minimal.
Problem with Microsoft's WPF, Mono on Linux and Mac not withstanding, is that it's not perceived as a cross-platform GUI. Most IT folks view it as a Windows-only solution.
Interestingly, at our company, we do have cases where we build dedicated Windows desktop apps for certain situations, and we've used the Expression Blend tool and WPF for that.
I have to say, it's a great design tool and WPF can indeed deliver excellent looking UIs. The integration of what our designer does and what the developer does works very well in Microsoft's tooling for work-flow when building WPF apps.
None-the-less, Flex and AIR are our mainstream solutions because by and large we want our most strategic software to be built with excellent UIs and also be more platform neutral (plus we really prefer a Java-centric stack of BlazeDS/SpringFramework/iBATIS/ActiveMQ for our middle-tier).
I'm no developer. I'm not a web designer. Nor do I pretend to know anything about any of it. But one thing I do know is that as a regular web user I'm tired of seeing annoying flash advertisements. I blame adobe.
Bad news. If everything that is possible in Flash today is possible in HTML5 tomorrow, and if HTML5 does replace Flash to some extent, then you will see plenty of HTML5 advertisements instead. And it will be even harder to filter them out because you won't be able to disable a plugin just for that.
I can understand why Flash-skilled people would be passionate about this subject. But the HTML people… why do they care so much? A certain amount of Flash is obviously going to be replaced on the web and a certain amount will continue to exist. What will the ratio be – if you're not already invested in Flash, who cares?
We're evaluating RIA technologies in my company and came to the conclusion that the toolset available for Flex development (i.e. Flash Builder 4) is just so much nicer to use than what there currently is for HTML5 and that is a very important factor if you're developing apps that don't need SEO and where you can tell the client to install the Flash player.
I suppose Flash-builder-like toolsets will become available over the coming years for HTML5 RIA development so this will change in time.
By the way do you know that before Hitler's death, looking at the impending the loss of WW2, the Nazis formulated plans to conquer Europe via peaceful means? I find it rather interesting.
Leave a Reply to RogerV	Cancel reply