I talk a lot about the Internet on this blog but I’d hardly call myself an expert when it comes to actually building something on it. Back when I was first learning to develop applications I was never actually introduced to the world of web programming and the small bits I learnt on networking were no where near sufficient to prepare me for developing any kind of web service. Still after being out of university for 2 years I found myself administering many web sites and then took it upon myself to learn the ins and outs of developing for the web. It’s been a bit of a roller coaster ride since then having to switch my mindset from designing and building applications that will only run on a client to making something for the world wide web. This is when I was introduced to the lovely world of web standards.
You see for a long time Internet Explorer was the king of the web browser world. Thanks to Microsoft’s mentality of embrace, extend, extinguish they initially focused on becoming the dominant force in the web browser market. They had stiff competition from the people at Netscape for quite a long time and were forced to be innovators to compete. It worked quite well with them debuting Internet Explorer 6 back in late 2001 which, at the time, was quite a revolutionary piece of software. Granted most of the market adoption was driven by the browser being install by default with any Windows installation but with such strong competition they were forced to develop something better in order to become the de facto standard of the web.
With the war won in 2003 with AOL shutting down Netscape Microsoft was free to rest on its laurels, and boy did it ever. The next 7 years saw little innovation from Microsoft and with IE6 having widespread adoption most web sites were designed to support them first and alternative browsers later. Whilst at its initial release IE6 was considered somewhat of a technical marvel it was, for the most part, not compliant with most web standards. With Mozilla rising from the ashes of the Netscape fire the need to comply with a widely agreed standard became a talking point amongst web developers, although it was largely ignored by the Internet community at large. Fast forward to 2008 and we have the search giant Google weighing in to the browser marketing, trumpeting standards compliance coupled with a well known and trusted brand name. Such was the beginning of the end of Internet’s Explorer’s dominance over the web browser market, and the rise of widely accepted web standards.
Unfortunately though web standards are a slow moving beast. IE6 was revolutionary because it provided functionality that you didn’t find within the web standards and it enabled many developers to create things that they would have otherwise not been able to. This gave rise to many of the browser plugins that we’re familiar with such as Flash, Java and more recently things like Silverlight and WebUnity. Such additions to web browsers allows them to unlock functionality typically reserved for desktop applications and grants them the portability of the world wide web. Such plugins have been the focus of intense debate recently, and none more so than Adobe’s flash.
I blogged last year about the apparent curiosity of the iPhone’s immunity to flash. Back then the control over the platform was easily justified by the commentary and speculation that was common knowledge amongst the tech crowd. Most understood that enabling Flash on Apple’s devices had the potential to both corrupt the user experience (a sin Apple would never commit) and strike a devastating blow to the cash cow that is the App store. Still whenever an Apple device is advertised as lacking the capability it’s probably the first thing the critics will trot out and it’s a valid criticism as much of the web makes use of this technology (this blog included). Still the argument for using web standards rather than propeitary plugins make sense to, although with Android getting full Flash support in 2010 it would seem like Apple is in a minority here.
That’s not to say Adobe hasn’t tried to play ball with Apple. Their current flagship product, Adobe Creative Suite 5, was touted to have the ability to generate an iPhone application from any Flash program that you created with it. Honestly I thought that was a pretty sweet deal for both Adobe and Apple. Adobe got to get its content on another platform (thereby caving into Apple) and Apple would see a flood of applications on the App store and with it a whole swath of revenue. Sure many applications would need to be rewritten for the touch interface but for all intents and purposes you could have Flash on the iPhone.
Apple, not willing to give any ground on this matter, fired the first salvo in what’s turned into a very public debate. Just over a month ago they changed their developer license agreement to rule out the use of any cross-platform frameworks. Whilst this initially looked like it would kill off a good chunk of the developers (especially those who used WebUnity to do games on the iPhone) it turns out that it was directly aimed at disabling CS5’s ability to export Flash to an iPhone app. This has then sparked comments from both sides with fingers being pointed at all sorts of things, but the main one is web standards.
Both Apple and Adobe claim that they’re supporting the open web with varying levels of truth to them. Flash is somewhat open and Apple has developed a widely adopted browser framework called WebKit which powers both their Safari browser and even Google’s Chrome. However these are small parts of much larger companies where everything else is completely proprietary, so this is really a case of the pot calling the kettle black so to speak.
So why is this such a big issue? Well as it turns out you don’t really have to dig too deep to find the answer: money and power. Just like the hay days of IE6 and Microsoft’s market domination of the web Adobe and Apple are fighting over what the next dominate technology of the web will be. Adobe is well placed to become that standard as Google has backed them on both their Android and Chrome platforms (Flash is now native in Chrome) and over 90% of Internet capable devices can display Flash to their users. Apple on the other hand has dominated the mobile market and is seeking to push the boundaries further with products like the iPad. Their reluctance to play nice has resulted in a fist fight of epic proportions, and it’s one that’s going to play out over the next few years.
Personally though I think Apple’s pick the wrong bear to poke with their anti-Flash stick. Whilst Adobe is a bit of a light weight when compared to Apple (they have about a quarter of the employees, to give you an idea) they’ve got the support of a large install base plus many large players who use their technology exclusively. Whilst many of the functions provided by Flash are usurped by HTML5 they’ve made a point that if they can’t get Flash on the iPhone, they’ll just make the best damned tools for HTML5 and dominate there again. That might sound like chest beating from them but when your flagship product is the de facto standard for artists to create in a technical field you know they’ve got some market pull behind them. If they were to port the artist friendly interface they developed for flash to HTML5 I’m sure Apple would have to rethink it’s whole position with Adobe very quickly, lest they alienate those who’ve been dedicated to the Mac name for a long time.
Apple’s idea of using their Cocoa framework as the new standard for the open web is a noble but flawed notion. Whilst the focus on the end user experience means that any application written on this framework will be at least usable and mildly intelligible it’s application to the wider Internet doesn’t seem feasible. Sure Cocoa has helped bring the mobile Internet experience out of the dark ages but its application past that is limited, especially when Android provides a similar experience that just so happens to include Flash. In the end Apple merely seeks to draw developers and users into their walled garden and will spite anyone who questions them on it. Whilst I can appreciate that it has been working for them I’m not so sure it will continue like that for long into the future, even when HTML5 gains critical mass.
It may seem like a small thing in the grand scope of the Internet but it’s always interesting to see what happens when two giants go at each other. We’re by no means at the end of this battle of the standards and I expect to see them publicly duking it out for at least a few more months to come. Still I’ll be putting my money on Adobe winning out in one way or another, with either Apple relenting or the iPhone losing its crown to the burgeoning Android market. I’m no market analyst though so there’s a good chance I’ll be completely wrong about this, but that won’t stop me from using the fallout as blog fodder 😉
Hmm i tend to agree on Adobe winning this battle. Have you ever done anything in flash? Its a terrible product to use.
I haven’t, but the people I know who do aren’t technically minded and they stand by the CS line of tools from Adobe. I looked into it when I first started coding Geon but as you alluded to it didn’t really seem to fit with what I was doing, and I didn’t want to waste any time learning ActionScript.
Silverlight easily translated to WPF to, which was an added bonus 😉