Wednesday, May 11, 2011

Why I Do Not Miss Flash on my iOS Devices

I can honestly say that I fully support Apple's stance on Flash with respect to the iOS platform.

Back in 2002, when I started on my second entrepreneurial adventure, I reformatted the hard disk drive on my trusty Dell Latitude C840 and installed Gentoo LINUX as my primary operating system. One of the most frustrating things about my LINUX experience was the rather pathetic media support - something that I ultimately gave up on and moved the Mac. Support for standard formats such as MPEG-2, MPEG-4, and MP3 were plentiful. Support for proprietary file formats such as Flash, QuickTime, Windows Media was hit or miss. Most of the time, the best way to access the media files was to use the native player through an emulation layer such as WINE or a virtual machine. It was more trouble than it was worth.

On the web, the pervasiveness of Flash was incredibly annoying because there was no official Flash player available for LINUX. That didn't come out until January 17, 2007. While an official version for LINUX was a good thing to have, performance lagged behind Flash Player for WIndows. Adobe did what any company would do - they spent their resource dollars where it would get the most bang. Windows ran on 95% of the personal computers, why bother with a statistically insignificant OS like LINUX?

Probably more annoying than Flash was the preponderance of web sites that were designed specifically for Microsoft Internet Explorer. Microsoft makes great tools. They are extremely capable and allow lesser skilled developers to do some pretty amazing things. And they targeted those tools to produce code that worked well in their runtime environments - on Windows 96/98/Me/NT/2000 and IE. To run these sites "optimized for IE", I would actually have to run Internet Explorer. If I wanted consistent performance, I would have to run it in a virtual machine.

For me, the Apple vs. Flash issue is more about open versus proprietary. This isn't an iOS versus Flash issue. This is an HTML5 versus Flash issue. This is an open versus proprietary standards issue. With open standards, any company can produce a runtime that supports the standard. Consumers are not locked into a particular product because the cost to move to something else is too high (e.g., why Microsoft Office is so dominant). With an open standard, any company who sees an opportunity (and a profit motive) to produce a piece of software that will work with an open file format can sally forth and do so. Apple has iOS and Cocoa, Google has ChromeOS and Dalvik, Microsoft has .Net and Win32. All great platforms with their own unique strengths and weaknesses.

Flash was designed to bring multimedia to the web. It filled a void that desperately needed filling in the early days of the web. Now. It's time has past. The architects behind HTML and JavaScript got the message and their response has been mighty.

I am ecstatic that Apple, Google, Microsoft, and Mozilla are developing Safari, Chrome, Internet Explorer, and Firefox as "runtime" environments for the world wide web. Each company is constantly trying to one-up the rest of the pack and pushing back the boundaries of what is possible in a web browser. Google and the Mozilla Foundation are two companies that probably have the most to gain from standards-based development as both companies would likely prefer that people spend all their time in web applications. What is even better, in my opinion, is that Google and the Mozilla Foundation keep Chrome and Firefox fairly feature-comparable on the major operating systems available today - LINUX, Mac OSX, and Windows. Even Apple does a pretty good job of producing versions of Safari for Mac OS X and Windows.

All four companies are producing fantastic runtime environments for web-based applications. They each have their proprietary quirks, but those are the seeds of innovation. And they do not forgo standards compliance in pursuit of innovation.

The following site uses WebGL and is supported out-of-the box by the shipping versions of Chrome and Firefox. The Safari equivalent can be downloaded from and you can enable WebGL support by following some instructions to enable WebGL support.

Why waste time with a platform that is only be developed by a single company, when you have a platform that four large organizations are fervently competing to produce the best implementation? In the end, consumers win because you have choice. Run the OS you want to - the open, standards-based web will work.