Thursday, April 29, 2010

I finally understand Steve Job's argument against Flash

Yes. That's right, I finally understand Steve Job's argument... and it is more asinine than I thought. You may have seen that he posted an open letter on the Apple website clearly spelling out his argument. While there are some things I can't disagree with such as stability and security on Macs (since I don't work on a Mac that much), there are a few statements that really clear it up for me.

What I mean by that is the fact that Steve Jobs is so removed from the lowly task of developing software that he cannot comprehend what it would take to create an equivalent application in HTML5, CSS and Javascript. To quote Steve Jobs:
If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?
There really are no words to describe how much this trivializes what Flash developers do.

You might as well say:
Why take a plane from New York to LA when you can ride a bike?"

The two technologies have widely varying capabilities and weaknesses. Why not use HTML5, CSS and JavaScript? Because they aren't good enough yet. They just aren't. I know Steve wants them to be and maybe someday they will but right now you just can't do the same thing. Even if some websites, applications, and games could be done it HTML5, it isn't necessarily cost effective for me to change everything to support one platform.

And do we really need to hear how Apple defines Open again:
Adobe’s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system.
Now I don't know about you but this statement is just as true as Jobs's
Apple iDevice products are 100% proprietary. They are only available from Apple, and Apple has sole authority as to their future enhancement, pricing, etc. While Apple's products are widely available, this does not mean they are open, since they are controlled entirely by Apple and available only from Apple. By almost any definition, Apple's iDevice is a closed system.
And when you think about it, the Flash Player is free, Adobe's Flex SDK is open source and the Flex Compiler is free, the Flash Player format spec is freely available. It doesn't cost anything additional for a developer to start creating apps for the Flash Platform. Just a browser, the free items above and some initiative and off you go. Plus, I can't remember the last time Adobe stepped in an disallowed any Flash application from being sold (or given away for free)

In contrast, you need to buy a Mac from Apple to build iDevice apps, you need to pay for the privledge of becoming an iDevice developer (which doesn't guarantee they will let you actually distribute anything you create). You then have to submit your creation to Apple's approval process (whose guidelines vary widely depending on some unknown criteria). At any time Apple can choose to prevent your creation from being distributed even if it approved it previously.

Now seriously, does Apple really think they are more "Open" than Adobe?

Apparently Jobs also doesn't understand the meaning of the word full. So here is the definition for anyone else who doesn't know:
  • containing as much or as many as is possible or normal
  • entire: constituting the full quantity or extent; complete;
  • complete in extent or degree and in every particular

When a person goes to a website and the whole thing or any significant part of it cannot be seen, then they are by definition not seeing the "full" website. It doesn't matter that YouTube videos can be seen if the ones I want can't be seen. If many of the sites I visit use Flash, and many do, then I am not seeing the "full" web. If I play a lot of games online that are Flash, then I am again not seeing the "full" web.

I do agree that Flash was created in the PC era. However, Objective-C was too. And who cares? Flash is pushing beyond PCs too. Targeting TVs, mobile devices, and anything else with a screen is just as likely with the Flash Platform.

Having Flash on mutliple types of devices does not mean that Adobe (or their developer base) wants to take a single application and run it on every device. What we do want is to be able to leverage some code, logic and assets in order to quickly build contextual apps without driving costs up by recoding everything in a different technology.

So yes... I understand what he is saying. To paraphrase: "I am so important that it doesn't matter that I am so out of touch with reality... people will follow me! And by the way... I want to control everything"


praksant said...

All right, i got scared by title of your post, but the rest of it cleared everything up for me :)

I just can't get how Mr. Jobs could say something like the word 'open' about his technologies.. it's so sad that (some) people really believe that Apple is the right choice..

And i think you are one of a few people who realizes that HTML5 is far from being useful for applications and games, and that flash is and will be necessary for years to come.

I would say that this Apple's attitude will lead them to their end, but i see, Apple has pleiades of blind fans who are more than willing to buy every stupid device that has a half eaten fruit on it.

Unknown said...

Smartie Stevie many years ago:

"What? Microsoft? Screw Microsoft! The Mac is the computer of the future. We don't need to cooperate with Windows!"

Smartie Stevie just a few years later:

"Guess what, folks: we are glad to a announce a brand new partnership with Microsoft and also.. surprise! Internet Explorer as a the default browser in the Mac! Yay! Isn't that just great?!"

Nothing new over the sun. Moving on...

Unknown said...

I think Steve is feeling the heat - namely having to answer to customers who are expecting a full Web experience and having to settle for a neutered version.

This is more about Apple vs. Google than Apple vs. Adobe. He's sure not liking the support Google is showing for Flash and that this may end up backfiring on Apple, strategy-wise. It's really ironic - full Flash support is actually a key differentiator for Apple's competition!!!!

Charlie said...

I understand your points. But Adobe is not really telling the whole truth either is it? We are led to believe that mobile phones running Flash will offer the ENTIRE web.

This is just not the case. Flash online apps have been developed for computer screens / laptops. When scaled down to a mobile phone screen size, they will largely be unusable (small btns, copy, ...). Zoom in and only a portion of the interface will be viewable at a time. So, normal web users won't bother.

Tablet PCs because of their resolutions will be a different story. But for phones, that's just not the case.

Sure you can develop your Flash app for the mobile phone. This will work great. But forget about the entire Web!

What worries me that Flash developers fell for the argument without even questioning it. We have been developing Flash Lite apps since '05. This jumped out right away. I wonder how credible the Flash community has become. I certainly blame those worthless platform evangelist for spread those misconceptions.

In the end, they make us, Flash developers, lose money and opportunities. And yes, we will learn to program for the iDevices because our clients want them.

Rob McKeown said...

Here is the problem with your argument and many other anti-Flash arguments. You seem to try to point out all these issues with Flash but don't recognize that those issues are not Flash specific.

All websites/applications can suffer from that same problem. Most Ajax/HTML apps were designed for computer screens and laptops too. They won't magically re-layout themselves because they are not Flash. They are not optimized for the screen size of a phone either. The fact that they are Flash doesn't make any difference.

The point though is that, if you have chosen to build a website or application in Flash, then you should have the opportunity to create a mobile-optimized version of the same site in the same technology. Being able to reuse some assets, libraries, code, etc. would greatly reduce the cost of making that mobile version. Without Flash, you would have to recreate everything in Javascript, CSS and HTML 5 creating a maintenance

Unknown said...

Great post/commentary! I just hope Adobe survives at this point - the "people will follow me [Jobs]" factor is frighteningly real.