03 May 2010

Apple and Flash

I want to take a moment and chime in on the current Apple vs. Flash debate, especially in light of Steve Jobs's recent note on the subject. There has been plenty of intelligent discussion on this in the last few days, amidst the din of bias and aggression that tends to accompany the subject. But it seems to me that some key points, at least to my mind, have not received the prominence they deserve.

To me, the most important first step in understanding the quickly evolving world of mobile technology, and many of Apple's curious stances, is to accept that mobile devices are fundamentally different from desktop PC's. Mobile devices have limitations on their user interfaces and their capacity to draw power in a way that desktop PC's do not. These two limitations dramatically change the approach one must take when building software for these devices. The mobile devices I speak of embody a world somewhere between single-purpose devices such as the EEG or altimeter, and the general purpose PC.

Consumers want a multi-purpose mobile device like the iPhone and iPad to allow them to perform as many of the functions of a PC as possible, but demand that the user interface be as powerful, natural, and intuitive as those of the best PC interfaces. They also demand that the device be usable for something like 5 or more hours without the need to recharge. There is no question that the WIMP UI paradigm developed for the desktop couldn't have been repurposed for the mobile world without innovation: reusing a UI built for a PC on a mobile device indicates a failure to meet the consumers' needs, and a failure to imagine the possible. Everyone understands this in retrospect, and we now see users of mobile devices expecting dedicated mobile sites from every entity with a web presence. The entire industry reacted to the challenge, eventually, and now no mobile device user would ever accept a return to the days of on-the-fly WAP site generation.

But what of Flash? I do not believe that owners of Flash-reliant sites would develop specialty, mobile versions of their sites by using Flash. This would be not only cost-prohibitive, but would serve as an example of using the wrong tool for the job. Soon we will see Flash support on mobile devices, but I believe that users of these devices will not benefit from it; they will keep coming back to the large number of mobile-specific sites now in existence, as these are the sites that will prove to be most useful and enjoyable. To see why that is, it may be helpful to examine how the evolution of the laptop fits into the picture.

To my mind, laptops are central to an example of what went wrong when resistance and pressure against Flash, Silverlight, and Java, in the context of mobile devices, was too lax. Laptops also straddle two worlds -- that of the general purpose PC and the mobile device. As they became smaller and lighter, they became slightly less useful as general purpose devices. Finally, things came to a head with netbooks and the MacBook Air. On such devices, one cannot view sophisticated Flash animations, Netflix movies, or video served in a Flash container without overheating and stuttering. This did not have to be the case: it is technically feasible and desirable to use the graphics chip to do the heavy lifting of not just video decoding but 2D and 3D rendering. But there was no pressure placed on the content purveyors or the technology vendors to do anything about it. In fairness, these parties had little motivation to go out of their way to serve this sliver of the user community. Now, we are about to get a dedicated Netflix viewer for the iPhone and iPad. This will not skip or cause the device to overheat. It will work like a charm, and the consumer will benefit, because of Apple's firm stance on the matter. Apple is saying to the content creators -- "Don't bother with the technical limitations imposed on you by Adobe, Sun, or Microsoft. We will give you all the technology you need to make your content available to mobile viewers without draining the battery or overheating the device. Use our proprietary operating system libraries or open web standards." But if the iPad supported Flash and Silverlight, what reason do we have to think that Netflix would spend its energies on a dedicated app? The only reason I can think of is to stanch a very public and noisy rebellion against a poorly performing site.

I wonder if, ultimately, all this hoopla comes to naught if, just for a moment, we take the perspective of the software development team. When building any software, we try to choose the right technology for the job. It has little to do with how open or closed a technology might be, beyond the consideration of the technology's long-term viability and its licensing costs. First and foremost, we choose technology based on our predictions of users' patterns of behavior: We try to simplify our users' lives by reducing the amount of work they need to do to get something done (even if this something is browsing or passive media consumption). We then imagine their behaviors once this simplification is instituted, with our primary technical choices driven by supporting these behaviors in the most natural, intuitive way. There are occassional limits placed on us by status quo restrictions (although it is our duty to make every attempt to break these down). Finally, we take into account future functionality, and development, deployment, and maintenance costs. Sometimes the answer is fat clients, sometimes it's Web 1.0 technology, and there are great use cases for Flex and Silverlight. But I can't imagine a team would choose Flash for a new site geared toward mobile users, even if it was supported by a broad range of devices. This whole debate distills to nothing more than a question of whether existing Flash sites should be viewable as they are on mobile devices. These are sites that were not built with the mobile consumer in mind -- the same sites that spin up our netbooks' CPU's and drain our laptops' batteries. Sites that assumed the use of a mouse, and never had small touchscreens in mind in their design. Why would we want that? How would easing the pressure to create great software specifically for the mobile device achieve what is in the mobile consumer's best interest in the long term?

Could there be, one day, a cross-platform runtime that provided a fantastic façade to all of the most powerful native mobile platforms out there? The question was a viable one until recently, but nobody picked up the mantle and answered with a definitive 'Yes!' They had trouble enough doing it for the PC, and it's doubtful that such an endevaor could be supported by an appealing business model. Now Apple has made that question moot.

-----------------------

I would like to end this note by pointing out areas where I would like Apple to broaden their horizon. I believe that, with both the store as well as 3rd party libraries, it would be possible to achieve their goal -- excellence -- without the draconian limiting measures in place today. I understand why the measures are in place: there is potential confusion (a word that is particular anathema in the mobile world) and potential brand damage to experiment with an adult-themed software tier. (I would love to preside over the Peacock Porn division for my employer, but alas....) And it is expensive to review and moderate 3rd party libraries for efficiency and quality. But both hold potential for long-term revenue generation. And I am very sceptical about Jobs's assertion that 3rd party libraries are by definition a brake on a developers' ability to take advantage of the latest and greatest native API's. Apple's mobile API's change once a year, and no operating system vendor has ever written its definitive suite of comprehensive utility and helper interfaces, let alone in time to go along with the respective OS release. We have only benefited, and greatly, from well-built helper libraries such as the Apache Commons. This doesn't even touch on game engines -- the biggest losers in this decision are game developers and gamers. Nonetheless, most criticisms of Apple's decisions misunderstand Apple's purpose: to give their customer a consistently superior experience with their mobile device, and to protect and enhance their brand. None of the people shouting about supporting flash, opening up the app store, or allowing 3rd party libraries have made a strong case for how such moves would significantly further this end.