When the Tail Wags the Dog

Java Duke image imposed on Firefox logo, pointing at the fox

The Register is reporting that the Firefox team is considering blocking Java in response to the BEAST attack, which allows the attacker to intercept data from an otherwise secured connection. The move would be contentious given the impact it could have on anyone using Java in their Firefox browser, including users of Facebook's video chat as well as Java applets deployed internally at companies who depend on the Java functionality for their business. Without getting into the details of the problem, it seems that the Java plugin, developed now by Oracle, is causing a big headache for Firefox and their options are both limited and unappealing given possible user backlash. It's just another example of why company's are increasingly tempted to not work with other software projects to obtain new functionality, instead opting to fork existing projects, create their own solutions or just go without the new tech altogether.

A recent example involves Amazon's fork of Gingerbread (aka Android 2.3) to power their new Kindle Fire. Many decried the decision, particularly since Honeycom (Android 3.0) was available and targeted specifically at tablets and the newer Ice Cream Sandwich (Android 4.0) was going to be available just around the corner to unify the handset and tablet focused Android versions. More than just forking the code though, Amazon opted to create their own Android App Store meaning users may find themselves needing to repurchase Android apps already purchased elsewhere to get them onto their Kindle Fire or at least having to jump through additional hoops to use all available Android apps. Regardless, the fork means that Amazon is not beholden to anyone else for updates or features and given the open source nature of Android, will be able to pull any choice bits in from newer Android releases without having to work on anyone else's schedule.

We also saw this with Apple's decision to create Safari. Prior to OS X, Internet Explorer dominated the Apple browser market. Given that as connectivity became more widespread, browsing the web became a more prominent activity, Apple was moved to provide a more Apple-esque experience for browsing. The WebKit project provided the core of the browser which resulted in Apple boasting a well known browser of their own on several platforms and no longer relying on another company to provide that key experience.

Apple also showed their desire not to be reliant upon other company's technology in how they have handled Adobe's Flash. Flash has never seen the light of day on an iOS device and is no longer shipping pre-installed on Macs. There were clear performance issues (the 2009 Apple keynote mentions plugins at 10:23 but in retrospect it seems clear the reference was mostly to Flash) but more important were the control concerns. Apple has retained tight control over the user experience of their platforms, control which would only have decreased had Flash become more pervasive on Apple devices. Apple has put considerable effort into providing technologies which developers would have a hard time making use of on a meta platform like Flash, so the less dependence upon Flash by Apple, the more control they retain over their own platform.

Historically we have also seen what happens when companies attempt to coexist with competitor technologies. Witness OS/2's slow death (or lack of uptake) because developers could just develop for Windows and let the OS/2 Windows layer handle running the non-native application. Users never got a taste of what a real OS/2 app could accomplish. And while RIM's PlayBook was practically stillborn, the last gasp effort to renew life by declaring that Android apps would be allowed to run on the device was generally considered a bad idea by pundits since that, as with other similar decisions, would result in less push for developers to target the platform natively.

The lesson here is simple. Only trust third party components to the extent that you can do without them entirely. The more your own platform or project becomes dependent upon the functionality of other plugins or platforms, the more beholden you are to their schedules and priorities. It can be difficult to predict when a shift like that is going to happen (or already has), but it can be crucial.


Flash on iOS, Adobe Throws in the Towel

Techcrunch reports that Adobe has changed their Flash Media Server to stream Flash based content to iOS devices by essentially removing the content from a Flash container and reformatting it on the fly to something palatable on iOS. Two quick comments.

First, the opening quote from Techcrunch:

Ardent iOS supporters have been clamoring for true Flash support for years

I would respectfully disagree with. Ardent iOS supporters probably haven't missed Flash support much, and even less so over time.

Second, this marks a potentially significant departure for Adobe from their stance of pushing their format across all platforms as the end-all be-all. This combined with their announcement of Adobe Edge, their tool to create content using HTML5, JavaScript and CSS instead of Flash, are indicators that Adobe seems to be pushing away from Flash and trying to stay on the lead of creating the tools developers will use going forward. I don't see this as a bad thing, frankly.


Mobile Ads, The Next Flash Killer

Recently, the Flurry Blog released a report indicating the sharp rise, both actual and anticipated, in spending on mobile ads. Of particular note, they pointed out, was the potential for mobile ad spending to dwarf other internet ad spending within the next year. As spending increases on mobile advertising we will see a concurrent increase in spending on the technologies needed to deliver that advertising in the mobile space. For any serious contender for mobile ad development, HTML5, not Flash, is the only reasonable path forward.

Flash is ubiquitous. It is used for a number of tasks on websites, from printer control, to copying text to the clipboard. It is also commonly used for the Flash based games you run across all over the net. And it is, of course, used for advertising. Flash provides a simple method of packaging animated multimedia content that can be seen by most viewers, and can be used to alter the viewer's experience enough to grab their attention and force them to view your ad, characteristics which advertisers naturally find desirable. While the Adobe Flash Player has been the source of many security holes and is reported by Apple to be a leading cause of crashes of their Safari browser, the experience has been "good enough" that most users end up installing it if it isn't already on their system. That's the desktop experience.

The mobile experience is quite different. First, iOS, one of the most popular mobile platforms today, does not currently support Flash and likely never will. There has been plenty of push and pull between Adobe CEO Shantanu Narayen and former Apple CEO Steve Jobs concerning Flash's performance on mobile and that may have had something to do with the decision not to include it on iOS. If it wasn't the only reason it was certainly sufficient given the performance of Flash on the only other mobile platform currently poised to compete significantly with iOS... Android. To date, the Flash experience on Android has been, by most accounts, tolerable at best. In most cases, playback puts a serious strain on any mobile hardware that has the software capable of playing Flash content, such that any such content is essentially unusable. That's not something likely to be a major selling point for advertisers looking to take advantage of the mobile space.

iOS has a significant enough amount of the mobile market that no advertiser would dare consider giving up advertising on the platform. Even if they were willing to give up such a huge market, using Flash on Android is hardly going to be a positive experience either. As a result, the push for advertisers is going to be toward HTML5, not toward Flash. And as developers are tapped for increasing numbers of advertising engagements, they are going to be required to perform at least some of that engaging without using Flash. Speaking from experience, programmers like consistency in their environment. Reuse is more easily achievable when you're sticking to one development platform. Since Flash is out of the picture for at least part of these campaigns, you can look forward to a subsequent decrease in Flash usage in the desktop space, something I imagine many of us will be happy with.