To Flash or not to Flash, and confusion over everything else

April 29th, 2010

It all started with the first iPhone. Amidst the list of things it cannot do, one pointer that was specifically used against the Apple was iPhone’s lack of Flash player. Sitting at the third generation today, iPhone still doesn’t support Flash. Meanwhile there is sort of a war between Apple and Adobe, Flash users and Flash haters, Flash Developers and HTML5 promoters. But here lies the problem, while some are predicting the demise of Flash, nobody knows what part of Flash we are talking about here. Yes, there are more than two sides of this “Flash” thing.

There are four flavors or types of Flash content that general surfer sees. Let’s list in the order of their dominance over the web.

  1. Video content delivery
  2. Banner Ads
  3. Games
  4. Application interfaces / Website interfaces

The first and the foremost, Video. Since the inception of YouTube, Flash became the de-facto standard to deliver video content over the web. It surpassed other streaming formats and plugins by miles in a very short time. One of the advantages of it was easy creation of content, already large enough base of installed browser plugins and relatively decent quality for the size. But as the bandwidth increased and video quality started moving from SD to HD, flash didn’t evolve fast enough. Apple made YouTube switch to MPEG-4 as alternate content, to support iPhone. More on this later.

Banner ads, face it… nobody likes them. It’s annoying, it eats your valuable bandwidth and badly created content simply spoils your browsing experience. But, since most the people don’t know how to block ads, for one reason or another, accidental or deliberate clicks, it still works. But Flash banner ads were challenged long before the iPhone and mobile device started grabbing the market. Google did it with text-based, contextual ads. These were fast, not so obtrusive to user and more relevant to content the user was visiting.

That leaves us with Games and Application Interfaces. This still is Flash’s forte. Over the time HTML/CSS/JavaScript have come long way to create interactive interfaces, but Flash still have some advantages of its own against these open-standard architectures. But before we talk about those advantages, let’s take a look at Flash’s disadvantages and why Apple is so edgy about Flash.


Flash, the dark side of the moon

The most common problem with Flash… it’s slow, period. Over the years, Adobe added lots of features to Flash, but they ignored the most basic thing about software. Optimizations. Flash has a very strong development platform for content creation, but the problem lies in Flash Player. This is where Apple has problem. Flash player is CPU cycle hogger / eater and Adobe has done very little to fix this. As people start spending more and more time on their laptops and mobile devices, this issue becomes very important as these devices have limited CPU power and even more limited battery. Badly written software stresses the CPU and which in turn eats more battery, leaving user with unsatisfactory experience. When this happens, people rarely blame the software. They just expect their hardware to work. Apple doesn’t want to take blame for someone else’s mistake, because Flash player is even worse in performance when it comes to OSX.

As people are moving to larger screens on their desktop, increased bandwidth at their disposal, they want to enjoy the better quality content on it. People have started enjoying HD content over SD content, they want to play their little web-based games in full-screen and they want to browse the web in high resolution. Flash’s video capabilities aren’t keeping up with this speed and due to the possibility of HTML5’s multimedia supporting tags, Flash video’s raison d’être is in danger. Why run a slow and buggy video player when your browser can play the content natively?

Another problem is, if at all it can be called problem on larger scale, it is proprietary. In the end you’re at the mercy of Adobe to provide the player to run the flash content. Until Adobe fixes the issues with its player, you, the user is left in ditch.

Steve Jobs wasn’t joking when he called Adobe lazy. He spoke the truth which many knew already but didn’t speak out.

So, is there really any reason to stick with flash at all? Or all is lost for Flash?


HTML5 & open-standard coding… web’s saviour?

Yes and No… at least not yet, not in the very near future.

The biggest rival of standard-compliant coding is not Flash. It’s the browser, or browsers. There are just too many of browsers out there. There is such a huge fragmentation of browser and versions that it’s every developer’s nightmare. And this very problem is Flash’s biggest strength.

In a nutshell, Flash provides unified runtime environment regardless the browser or the platform it’s running on. Developer can create one interface and guarantee it to look, feel and behave same way across wide variety of browsers or operating systems. That’s not the case for HTML/CSS/JavaScript architecture. Over the period, the browsers have evolved a lot and very fast. But the adoption rate leaves a lot to be desired. There is still a significant chunk of web users still stuck on Windows XP and IE6. There isn’t a web developer who hasn’t spent at least an hour of his day cursing IE6. Then there are lot more advanced browsers, but even they have version issues. Firefox users are majorly on third version, but there are still some stuck on Firefox 2. Chrome is known for its fastest updates since its inception, but despite being webkit based browser like Safari, there are still small areas where it differs largely from Safari browser. Even Apple’s own Safari isn’t spared from version curse. Many users who are still on OS X 10.4 (Tiger) are still on Safari version 3. Microsoft has the worst case of versioning in browsers arena. IE6 and IE7 still dominate most of the user base, both are not standard compliant. IE8 is the most standard compliant browser today from Microsoft’s stable but it still isn’t HTML5 compliant, while FireFox 3, Safari 4 and Chrome 4 are all fully HTML5 compliant.

But even that is not enough. HTML5 does introduce out-of-the-box Video and Audio tags, but the implementation leaves lot to be desired. For example, there is still not unanimous decision over which video standard to implement in browsers for Video, the supposedly Flash killer. FireFox, being an Open Source browser wants to go with Ogg/Theora codec as it’s open source and free. Apple heavily uses H.264 (MPEG-4) standard and thus wants to use it as it’s HTML5 video implementation, Chrome uses the same, while it’s not clear what Microsoft wants to use in its upcoming IE9 with HTML5. Unless there is standard format supported by all browsers, content developers and delivery sites are not going to be happy creating alternate versions of same content. It doesn’t make good business sense either.

So, Flash is facing stiff competition but so far nobody has punched it in face. Then what about Apple’s stance? Simple, Apple can do it, because they have a very closed and tight ecosystem. All their devices use same browser and there is no version issues apart from desktops. They can control, what can be done and delivered on their devices.


So where does flash stand now…

It is inevitable that Flash will be soon replaced with more open, more standards-based markup coding. But it’s not happening very soon, neither it’s happening all at once. Let’s talk about some of the key advantages of developing for Flash.

As mentioned earlier, one of the biggest strength of Flash is standard runtime environment regardless the browser or platform. Flash may die in video and banner ads, but not so much when it comes to games and web application interfaces. Along with consistent UI experience across different mediums, Flash remains as one of the fastest way to develop web application interfaces. It is much more easier and faster to developer Rich Media applications in Flash than on HTML/CSS/JS architecture. Not to mention, developer has to spend little to none time on fixing browser compatibilities. Faster development time, means faster project completion, means faster and better ROI for both development agency and client. Creating interactive and engaging application interfaces in lesser time, is still Flash’s forte.

If, and that’s a big IF, Adobe fixes it’s Flash Player and create an universal feature set for both mobile and desktop platform, developers can leverage the same code-base and interface elements to create engaging mobile apps, derived from their desktop counterparts, with very little effort. But this is a very distant dream based on speculations.

Regardless the selection of technology used, Flash or HTML/CSS/JS, it is not possible to utilize same interface or code for both mobile and desktop, and offer seamless experience. Even though iPhone or Android can offer near desktop class webpage rendering, having a mobile optimized interface will always make mobile users spend more time your website. And this is a different issue in itself.


From one platform to another

Let’s now take a look beyond Flash and HTML/CSS/JS, let’s talk about different platforms, namely Mobile and Desktop.

Despite having advanced quite fast and reached to the stage of being powerful enough like our desktop computers from 4-5 years ago, mobile devices are still vastly different from our desktops. One of the major differentiator between mobile device and desktop/notebook computers is screen size. Few years ago a new category of computing devices emerged known as netbooks, which were essentially smaller, slower and cheaper notebooks. But they were small (read: portable) enough and became popular enough to understand that desktop interface is not the best experience on the screen sizes below 12”. After the success of iPhone, shortcomings of mouse-based desktop interface became all the more evident. So, even though most of the modern mobile devices, like phones, MIDs and netbooks can render the webpages as good as their desktop brethren’s, it is evident that web interfaces specifically formatted for mobile devices provide better user experience than regular website interface.

So mobile platform open up whole new market for companies to deliver content, but unless the content is formatted or tailored to suit the mobile devices the experience is not going to be satisfactory. A bad or less satisfactory experience is one of the most common danger on mobile devices, but that’s just one part. One of most common mistake is, trying to do a lot more than providing a precise or limited but compatible set of features. Let’s look at facebook as an example. It’s now available on many platforms as stand-alone app, and where it cannot provide an app, it provides an alternate web interface called facebook lite. But neither App or FBLite can provide a full desktop experience or all feature-set of facebook, and that is a good thing. What most of the FB apps and FBLite interface provide, is common feature-set of facebook activities that user take part in most frequently. Which generally consist of status updates, news feed, photo sharing and on some devices chat feature. What you can’t do?, Facebook Apps, Games, video playback and numurous other things. If facebook tried to provide all of these features on mobile devices, it will end up making mobile experience cumbersome and over complicated.

This puts us, developers, content creators and companies in interesting question. What is the best way or toolset to provide good experience on all the platforms while preventing the cost going too high. Because if the development cost increases, the ROI gets affected and that doesn’t go well in the long run.

To answer this shortly, there is no simple way out of this. You can’t ignore the mobile platform, and you can’t use the same desktop interface  and be equally effective on mobile as well. The ultimate solution boils down to this, alternative interface. Desktop and Mobile both require their own interfaces to be effective. So, what does this mean for flash? As described earlier, Flash isn’t going away when it comes to application interfaces and interactive media interfaces such as games… and it can provide more seamless experience across wide variety of browsers.
Even if you build the interface on HTML/CSS/JavaScript, you still have to design and develop alternate content for mobile devices, App or Web based; which means that same code cannot be used on both platforms, at least not without making significant changes. Plus there is lot of quality control involved, consisting of browser compatibility checks, workarounds for cross-browser CSS and JS bugs. In essence, not only development time is increased, but also the QA time increases. It shouldn’t take genius to know how it affects overall project budget. So why reduce the engaging factor on desktop by removing flash? Not to mention, as said earlier, it’s faster and cheaper to develop on, which keeps your development cost down and in turn, ROI higher.

Now, like it or not, but mobile platform requires a separate development effort. Which obviously means added development cost, and it all boils down to how to effectively use this added investment and turn it into higher ROI. One of the most common mistake companies do is selecting between stand-alone app and web based interface, and this is where things go wrong. There are no definitive guidelines to do this, but few things can be considered before making the decision. Most important thing is what is the nature of your content? And what is the life-span of the same? If your content is short-lived, like time based promotions or surveys or limited time quizzes (instant-win promos) then it does not need stand-alone app. Not only it will increase your development cost, it will also turn away customers as no one likes to download multiple apps doing similar things again and again. Now if your content is not limited to above parameters, such as shopping catalogue, game or something that let your customer access your products in highly-interactive way (e.g. Starbucks app), then having a stand-alone app is the best way to turn your casual customers into regular customers.

This is just skimming the surface when it comes to developing for mobile devices, but it’s a whole new discussion altogether. Let’s summarize the main topic of this discussion, Flash.


Flash, guilty but wrongly convicted?

  • Flash has its own set of problems, but the advantages are too big and important to neglect it on desktop.
  • Major problem with flash lies in the Flash Player, the runtime environment and not the platform itself.
  • The so called anti-flash campaign is wrongly understood by many. It’s not against flash, per se, but against flash as video content delivery medium and banner ads. Two of the four common flash interfaces general visitor experiences everyday on web.
  • Flash is here since long time as development platform and it’s robust, mature and proven technology. Thanks to the matured developer tools, the development is rapid, cost-effective and deployment is similarly easy and fast. Since the runtime environment remains same across different browsers and systems, the cross-browser validations and compatibility checks are very minimal to none, saving on development time and cost.
  • Apple has some valid points against flash, but remember, Apple can do that because of its closed ecosystem and control over devices (both hardware and software). Google cannot do that, because Google offers only mobile software (Android) and has almost no control over hardware ecosystem. Similarly, Microsoft is in the same boat as Google, but apparently trying to control what kind of base hardware can be used for it’s upcoming Windows Mobile 7. Regardless, Microsoft doesn’t and cannot have complete control over hardware variation across multiple device manufacturers.
  • A wild speculation, but not an impossible one, that Adobe actually fixes Flash Player and streamlines it to maximize performance and efficiency on both Desktop as well as Mobile platform. It’s a long shot, but given current market situation this seems like the only option for Adobe to pull itself out of the corner. The competition is getting fierce for Adobe with inception of HTML5 and advancements in JavaScript.

Posted in Computers | Comments (0)


Leave a Reply