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.