29
29
Apr 2010

Thoughts on Apple

Off the bat you can guess where this is going

Today, Apple released something truly amazing– Steve Jobs’s personal opinion regarding the Flash platform. Like Apple’s other releases, it’s sleek, substantial, and loses much of its charm once Steve’s left the room.

Many of Steve’s criticisms are legitimate, but most of them have a valid counterargument that should be presented before the Grubers and Pogues of the world do their dance of exaltation.

Update: Apparently Steve’s triggered an impromptu Flash apologist essay writing contest. Here’s one of the more extensive responses.

Flash is “free” and “open”, just not Free and Open Source Software

The Flash platform is more than one technology. It consists of several systems, some of which Adobe licenses from other companies. Most of the code governing the parts of the player that are not licensed in this way was made available in Project Tamarin, the second largest code contribution ever made to the Mozilla Foundation. Understandably, Adobe cannot release all their player’s source code, because they do not have the right to do so.

Does this really hurt anyone? If the Flash platform’s proprietary technology hindered anyone, there’s hardly any indication of it. The player’s ubiquitous– it’s on every general purpose computer, and it was on a billion mobile devices before the iPhone made its debut. Flash content can be made for free by anyone on any Mac or PC. Flash may be proprietary, but it definitely isn’t restrictive.

A restrictive technology would be something like Cocoa Touch. Correct me if I’m wrong, but here’s the list of things you need to do to make a program available for an iPhone user:

  • Buy an iPhone. Obviously.
  • Pay Apple $99 per year for the right to develop for their platform.
  • Sign an agreement limiting what you can say and do on iPhones
  • Learn Objective-C. This step is a bit like chewing on sand.
  • Learn Cocoa Touch. (Not Cocoa, as jwz pointed out. These are separate frameworks.)
  • Design, and develop and test your app, obviously.
  • Submit it to Apple for their approval. They can reject your app for all sorts of reasons, and the approval process can take months regardless of the outcome. Furthermore, they can put a hold on your app’s approval until you agree to make a change, such as dropping any mention of competitors’ platforms.
  • Now your app is available to everyone. No, not just that one guy, not just your friends. To release your app on the iPhone App Store, you need to be comfortable giving it to everyone.
  • …Though Apple might not be comfortable with your app, and may take it down at any time.

That’s ridiculous, and that’s the status quo on the iPhone. It’s the Walmartization of the application development process. And of course it works for Apple, because just as everyone wants their products available at Walmart, developers are clambering to put their software on these unique devices.

Flash developers don’t clamber. The Flash Platform does not support clambering. So while it may be proprietary, it’s nothing to be concerned about in this context.

But according to Steve (and many, many others), there is a free and open source alternative to Flash that is not hindered the way iPhone development is. We call it HTML5, but really, let’s just call it the fifth major version of

HTML

HTML’s great. But people who think it can currently replace Flash are fooling themselves.

When HTML innovates, it does it slowly and carefully. This is the backbone technology of the web, and it has got to work. Any change must be very carefully considered before it’s committed to the spec.

What happens when HTML cannot be used to express something, as was the case in 1996 when Flash made its debut? Then and now, the solution is to write a plugin that can support your expression. Plugins can provide experiences not supported by the browser, and can be easily disabled or removed. They fill the cracks in the web.

Flash used to be this way. But very early on, Flash gained ubiquity via dealings with Netscape and Microsoft, and it was updated faster than web technologies were. Before people were even contemplating HTML5, there was no question that Flash was an essential part of the web, because it provided experiences that couldn’t be replicated with HTML.

HTML5 is a major improvement of the spec, but it is nowhere near perfect. It will take years for browser implementations to reach a consensus on how the stuff is rendered. In the meantime, Flash renders the same way on every computer and will continue to fill in whatever gaps there are in the web. That is its niche.

There is no adequate HTML5 tooling. Steve himself implies this, when he encourages Adobe to provide those tools. In all likelihood, Adobe’s HTML5 tooling will be Flash Professional, which already has a timeline paradigm and the ability to work with Photoshop, Illustrator and InDesign. (And possibly Soundbooth?)

Most of the HTML5 examples we see online aren’t impressive until you hear that they are implemented in HTML5. That’s a bad sign. People are impressed that web tech is catching up with Flash, not because it’s doing anything particularly new. Flash developers see tons of these examples, and let me tell you, we’re not at all wowed.

HTML5 is a subset of HTML. Flash developers will use it, because we already use HTML. But it’s important to recognize it for what it is: the latest version of HTML, a slowly updated technology that appears different in different browsers. Don’t compare that to Flash. More importantly, maintain perspective: like any other technology, use its various features in the specific cases where those features make sense.

All the trimmings
In rapid fire, here are some of the other things Jobs said that are disagreeable or downright wrong:

  • H.264 is a battery-friendly alternative to Flash video. Most Flash video is in H.264 format. The reason why H.264 even took off was because Flash supported it; otherwise it would have ended up like the other codecs. As long as plugins are given access to Apple’s H.264 hardware, Flash video won’t drain your battery any more or any less than a Cocoa Touch app. We’re all damn lucky that Flash supports H.264, otherwise there’d be no fallback implementation for the HTML5 video tag.
  • Flash has poor reliability, security and performance. This more directly applies to Flash content. Since any dolt can make Flash content, there’s a wide variation to the quality of what’s out there. On the iPhone, none of this matters; for better or for worse, the application approval process should weed out bad apps. On more open platforms, bad Flash content is usually in the form of ads, and it can be ignored or turned off; at its worst, it’s a nuisance. But consider what would happen if the same content were to be created in HTML. Suddenly the browser makers would be responsible (as they always are) for “properly” rendering bad web markup. HTML5 has no advertisement tag. We’re in for a nasty shock when HTML ads hit the scene. Also, Steve, quoting Symantec about Flash is like quoting Hugo Chavez about the United States.
  • Flash content was designed for PCs, not for touch devices. Three years ago, basically all content was designed for mouse interaction and not touch. Making the transition is not a chore, and it’s something everyone has to do when they target touch devices. This is a terrible excuse to philander Flash. Frankly, I think Jobs already knows the flaw in that argument. Why he’s making it anyway is a mystery to me.
  • Flash is an abstraction layer of the iPhone SDK I agree that Flash’s purpose on a mobile device is different from its aforementioned filling-the-cracks role on the web. Flash isn’t doing anything special on mobile devices. What it is doing is providing support for an existing code base. If I have an app that runs on ten devices and I add a feature to it, it doesn’t always make sense to have to implement that feature ten times, once for each device. Similarities in those devices should be exploitable; I should be able to target multiple devices when I make an update to my code base. As it currently stands, every app on the iPhone is a separate product from any other offering their developer provides. I think that promotes feature lag, where the app with fewer users will lag behind in updates. The major strength of Flash is its consistent experience, and I think it has a lot to bring to the mobile arena.

I left some stuff out, but frankly, I’m beat. But I have one more point to make. Before Jobs posted his essay, everyone already knew his stance. They knew his reasons, some of which are still left out of his post. That it took this long for him to open up about Flash indicates that he’s not ready or looking forward to a counterargument. He doesn’t want this to be a discussion; he’s made his decision, and won’t change his mind. Posting his opinion can only do two things– it can change Apple’s carefully designed public image, and it can demonstrate how Apple has moved away from its idealistic roots. This company is no longer the beacon of light it used to be, and every statement it makes reinforces that.


You can leave a response, or trackback from your own site.

2 Responses to “Thoughts on Apple”

  1. zak Says:

    Well said, good sir.

    The feature lag problem introduced by an abstraction layer is the only problem that can’t be fixed over time. Stability, security, power consumption, touch support–these are all engineering problems with attainable solutions. That said, is feature lag really so terrible of a problem that shutting out a huge amount of developers is a reasonable compromise? I don’t think so.

    Unfortunately, I can’t really say I have any hope of Apple reverting this decision–their philosophy would have to change first.

    April 29th, 2010 at 1:34 PM

  2. Jeremy Says:

    I agree; Apple would sooner lose market share than cave on their decision. The Apple brand is a larger investment than the iPhone OS, and they can’t afford losing any integrity.

    April 29th, 2010 at 1:47 PM

Leave a Reply