top | item 1304310

Thoughts on Flash

962 points| andrewdavey | 16 years ago |apple.com

505 comments

order
[+] joshwa|16 years ago|reply
If they're going to pitch HTML5 as an alternative to Flash (and, implicitly, the iPhoneOS API), then why not let them compete directly with Cocoa Touch apps? Why not offer HTML5 developers a way to take advantage of the App Store's monetization and discoverability?

Apple already provides some amazing documentation and tutorials for making offline-capable mobile web apps, but they're still treated by Apple as the bastard cousins of "real" iPhone apps. They should buy or provide an officially-supported analogue to a tool like PhoneGap[1] or Titanium[2], allowing HTML5 apps to appear in the App Store, and perhaps provide an Apple-supported framework such as their mysterious PastryKit[3] or contribute to SproutCore[4], giving HTML5 developers better tools to conform to Apple's HIG.

HTML5 apps built on open standards should be on an equal footing with apps built in Cocoa Touch. That would be walking the walk.

[1] http://phonegap.com/

[2] http://www.appcelerator.com/

[3] http://daringfireball.net/2009/12/pastrykit

[4] http://blog.sproutcore.com/post/531215199/introducing-sprout...

EDIT: "officially-supported analogue"

EDIT: footnotes

[+] cjoh|16 years ago|reply
I get this argument, but couldn't you say Apple gives the customer the best of both worlds?

Web & HTML 5 support: developers can make or do anything they want to on the platform.

App Store: Cultivated catalog of high quality apps for customers.

At the end of the day, we don't need PhoneGaps or Titaniums-- we need MobileSafari to have the same hooks into the hardware (gps, compass, accelerometer, camera, etc) as Cocoa Touch. Then it's a level playing field.

If you're saying that that, too, ought to be in the App Store, well-- then what you're really arguing for isn't technology but that the App Store is a better distribution channel to mobile devices than the Web. It certainly is-- I have millions of competitors for the word "Congress" on Google, and about 12 in the App Store.

To solve the distribution channel problem, I don't understand why some enterprising YC person doesn't simply start making a web App Store app for the iPhone that allows people to sell web applications to iPhone users, handle fulfillment just like the App Store does, and handle curation, just like the App Store does.

There's money to be made here.

[+] dcurtis|16 years ago|reply
Don't you remember that Apple was first trying to force everything on the iPhone to be done on the web?
[+] joubert|16 years ago|reply
Can't you create a barebones cocoa touch app that basically just shows safari, and your app runs inside that as ja and HTML?
[+] jstevens85|16 years ago|reply
>or contribute to SproutCore[4]

The President and CEO of Sproutit, Charles Jolley, has been employed by Apple since 2006. I guess that would count as contributing to SproutCore.

[+] boucher|16 years ago|reply
They aren't pitching them as equal. Apple wants them to be unequal.
[+] gfunk911|16 years ago|reply
I love this. Apple clearly laid out their reasoning, using facts and persuasive argument. The world needs more of this.

Obviously, there is some spin in the post, and I don't completely agree with 100% of it, but I love the level of discourse.

[+] tomlin|16 years ago|reply
I have trouble swallowing some of this. A few of these theories have been debunked successfully.

I have a small problem with this "don't look at the man behind the curtain" routine. Proprietary is proprietary. Don't try and swing it.

Battery Life: http://vimeo.com/9705969, http://vimeo.com/9724682

Delays: http://www.neowin.net/news/adobe-quotapple-hurts-customers-f...

Touch/Scroll: http://www.mikechambers.com/blog/2010/02/22/flash-player-con..., http://www.mikechambers.com/blog/2010/02/23/scrolling-html-w...

Speed: http://jobemakar.blogspot.com/2010/04/flash-is-speedy-on-and...

[+] tjogin|16 years ago|reply
John Gruber has been making these exact points. This could basically be ghost written by Gruber and we wouldn't know the difference.
[+] barrkel|16 years ago|reply
I think it's almost entirely bullshit and misdirection. 3.3.1 doesn't apply to specifically to Flash.

"Open" is irrelevant. Apple is certainly no more open than Adobe.

The Full Web - whatever. Don't support it in the browser, don't support browser plugins, fine. Safari on iPhone still crashes all the time.

Reliability, security, performance - these are all things that apply to native apps built for the App Store, so why are apps built with Flash excluded in particular?

Battery life - more irrelevance. I'm pretty sure that there are games on the App Store right now that will suck away your battery's life faster than most cross-compiled Flash games. Game loops are intrinsically always busy - they don't necessarily have a natural idle point like GUI event loops do, especially if they are running at less than their desired framerate.

Touch - this is an application quality issue. I don't see any difficulty in simply not approving apps that have awkward non-touch interfaces.

The last reason, it being another layer, is the most insidious. UI difference, performance, etc. are all irrelevant - games have weird UIs, drain battery, and poor performance is a quality issue. The truth is Apple doesn't want to be disintermediated. Apple wants developers to be strictly dependent on its tools and APIs, and not use anything between the app and the platform. This is particularly offensive to me as a software developer, and it's far worse than anything Microsoft has ever tried to pull. It's the reason why 3.3.1 is phrased the way it is, and it has nothing to do with Flash and everything to do with locking developers in.

As I see it, Flash on the web is used for three things: (1) video, (2) casual games and (3) ill-advised corporate intro screens.

I'd love to see video not needing flash, but it isn't, yet. Having a sand-boxed third-party FLV player, so that it didn't need to infect the Safari process, would be nice to have. I don't really see that approving such a process would be necessarily harder than approving any other native application on the App Store.

I'd love for (3) to disappear. I can't bear those things.

And it would be great if HTML5 was universally usable and performant enough to work for (2), but it isn't, yet. I know of many casual Flash games, though, that would work really nicely as apps, and Apple is hurting me personally by increasing the barriers preventing those apps on the web from being available on my device. This policy is both anti-consumer and anti-developer. Only in the short-term is it pro-Apple, but I hope and expect Apple will fade in the longer term in competition with Android.

[+] oldgregg|16 years ago|reply
I agree, but it's really sad that we're at a place where we praise Apple for communicating... like normal human beings.
[+] jergosh|16 years ago|reply
Regardless of what Apple think is best for the users, I would still prefer to have Flash on my iPhone. Not only to be able to use websites made in Flash, but also so that developers have a way to develop software without going through the App Store.
[+] prasanamishra|16 years ago|reply
hmmm I too agree with this post somehow.... since long I am also not comfortable in learning flash and creating flash based website.. though the graphics is amazing but very slow.... the current decision by apple will definitely hinder the progress of Flash... Adobe need to come up with it's own version of mobile phone :) in the post Steve Jobs mentioned not to encourage the third party layer.... so they ll be slow to adapt the platform changes.... But today got mail from Appacceletor Titanium, they are quite happy bcoz they are developing based on JavaScript.... not sure..
[+] marr|16 years ago|reply
The Lord said to the woman, "What is this you have done?" And the woman replied, "The serpent tricked me, and I ate."
[+] pg|16 years ago|reply
What he describes as the "most important reason" is also the big mistake here. If using certain libraries or cross-platform development tools truly did result in worse apps, then the market would take care of that.

He also doesn't seem to understand that such tools do not all totally hide the underlying APIs. They fall along a continuum in that respect. And in trying to ban extreme cases like Flash, Apple has also basically banned compilers.

Every programmer I've talked to about this thought it was some combination of stupid and evil (there ought to be a word for that; stevil?) to insist that apps be written only in C, C++, and Objective-C.

Surely there must be people fairly high up in Apple who realize what a crazy move it is to try to dictate to hackers what programming language they should use. It worries me that those people aren't being heard.

[+] prodigal_erik|16 years ago|reply
I'm starting to suspect that Apple really requires proprietary APIs and decrepit languages for the same reasons Spolsky[1] once said Microsoft used proprietary and huge and ever-changing APIs. It's cover fire to make everyone else's projects soak up more hours, increasing the fraction of captive developers and shops who are only experienced in iPhone OS work, rather than being prepared for work on iPhone OS and other platforms.

[1] http://www.joelonsoftware.com/articles/fog0000000339.html

[+] jmatt|16 years ago|reply
Every programmer I've talked to about this thought it was some combination of stupid and evil (there ought to be a word for that; stevil?) to insist that apps be written only in C, C++, and Objective-C.

Ya it's insane. I have no idea how they can be this out of touch with the development community.

Even the Microsoft developers that I know think it's evil and restrictive. Microsoft has failed in a lot of ways in the past but one thing they've gotten right is .NET. It's relatively open and they are beginning to actively support other languages. So instead of .NET and the CLR dieing off people can innovate on top of the runtime and continue to compete at some level with other dynamic languages. The same goes for java and the JVM.

My biggest fear now is Apple will decide to slowly but surely drop OS X support and begin the transition of moving the majority of users over to a new locked down stevil new Operating System.

[+] ptomato|16 years ago|reply
I do think it is reasonably evil, but I'll be very surprised if, say, Apple enforces this against somebody writing software in a lisp, or all the games using Lua or Unity. But saying literally "You can't write software in Flash" makes for somewhat questionable legal language.
[+] Nelson69|16 years ago|reply
I'll buck that for you. I don't just dismiss it as stupid and evil.

There are 2 things that stand out to me which aren't being discussed. 1) Apple has maybe the very best record in supporting their customers' software through various multiplatform upgrades. If you've been on board with them, they've taken you from 68000 to PowerPC to Intel and they've had bloody seamless transitions. Perhaps that has something to do with their desire to specify how apps are built and which tools are used to build them. FWIW, they did their own iPad chip but they bought one off the shelf for iPhone, I'd imagine that they will have their own phone chip before too long. This just seems logical and sensical to me and it's possible they might alter the architecture in some way and maybe want to dynamically translate the existing apps.

2) If you look at iPhone and iPad, they clearly had some foresight and vision when they did the phone. They didn't accidentally build the iPad and it turned out to run the same software and be compatible. Perhaps there is something else that they have in mind in the coming years or two. Maybe you'll be able to use app store apps on AppleTV. Who knows, maybe there will be some other device too.

[+] doki_pen|16 years ago|reply
Stevil is the best thing I've heard all week!
[+] asdflkj|16 years ago|reply
The market might summarily "take care" of iPhone itself.

There are many people (young people) who don't know anything about design or hacking, but they know enough to make an app in Flash--sort of. And when people buy those apps that look, feel and work like crap, they'll think iPhone itself is crap. Sure, they might pay for more expensive apps (those that are still in business), but once you get in the habit of paying little, it's hard to start paying a lot. I still buy cheap motherboards and curse myself later. And, once you get in the habit of getting crap, it's hard to expect anything more for your money. At this point, Apple has no edge over Android. Et cetera.

I can see a strong case for why it's evil, but to show that it's stupid would require thorough understanding of what a clueless, fickle public would do. Maybe the business morlocks at Apple are better at that than we are, and maybe we're better for it.

[+] efsavage|16 years ago|reply
Flash is closed, Apple is open. Huh?

I can build a flash app entirely for free, legally, with zero restrictions, forever, on the tools I used to write it, or where I can deploy it to. Adobe has bent over backwards to make players (also free) backwards compatible. That's pretty open.

I must pay to build an iphone app, which I can only do on a computer owned by the same company, running an OS owned by the same company. This app only runs on hardware made by said company, and only run on an OS by said company. I am restricted in how I can build this, and must live by the whims of an opaque editorial process. In terms of openness, this makes Bill Gates look like RMS.

[+] pilif|16 years ago|reply
> For example, although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5.

right. And the Finder - a piece of Software central to OSX was using Carbon until... when exactly? At most 6 months prior to when CS5 came out.

iTunes - a corner stone of the iPhone software world? Still on Carbon.

If I hate one thing, it's hypocrisy.

Aside of that, nice arguments and well-written. Also, from this perspective, MonoTouch and Unity might be in the clear too as they are not cross-platform toolkits reducing themselves to the least common denominator.

[+] Qz|16 years ago|reply
This is where he loses me:

"Though the operating system for the iPhone, iPod and iPad is proprietary, we strongly believe that all standards pertaining to the web should be open."

Adobe can just as easily say: "Though Flash products are proprietary, we strongly believe that standards pertaining to what software is allowed to run on your computer should be open."

It's doublespeak either way, and it's crazy to think that either of those two viewpoints is good for the industry.

edit: Also: "If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?"

Flash can handle touch events just fine. Rewriting all that flash code in H/C/J is a monumental task compared to just updating a few flash events.

Basically, this is a lot of corporate spin and not a lot of sound arguments.

[+] tumult|16 years ago|reply
More good news about 3.3.1 "must write in C, Objective-C or C++" clause: it's made even more obvious here that Apple only cares about commercial middleware UI-driven applications. Those of us with custom toolkits and compilers (and games developers) can probably relax. Though, I wish they would still change the wording. I dislike having to wait for my friend's cat to click the "I Agree" button, since I cannot actually agree to the terms as worded and not break them.
[+] greendestiny|16 years ago|reply
Well 3.3.1 is worded poorly then, you'd think their legal team could do better if they just wanted to stop Adobe. Its pretty explicit about banning other languages.
[+] plinkplonk|16 years ago|reply
"Those of us with custom toolkits and compilers (and games developers) can probably relax."

Which part of the submitted article supports this? (genuine question not snark). I see a lot of flash bashing but nothing indicating you don't have to " write in C, Objective-C or C++"

[+] danielh|16 years ago|reply
I'm afraid quite the opposite is the case:

We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform.

IMHO, this sentences leaves no doubt that Apple does not only target Adobe, but any kind of layer they consider harmful for their platform.

[+] Zak|16 years ago|reply
There's absolutely no need to specify languages for the purpose Apple is claiming they have in mind. They could simply say that you must not use an intermediate layer between your code and their API. There's no reason for them to not want you to write the application in Scheme (as an example).
[+] NickPollard|16 years ago|reply
Unfortunately in legal situations, it's often the letter of the law not the spirit of the law that carries weight. It's been pretty obvious from the beginning that Apple wanted to block Flash, but not, say, Unity. I think they'll find it hard to only enforce it against certain infringers though.

Imagine if a government introduced a law that said no-one was allowed out on the streets after dark, but then only actually enforced it against Hispanics.

[+] cnicolaou|16 years ago|reply
There is an even more expressive quote for Adobe to peruse: "Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind."
[+] jz|16 years ago|reply
All his reasons are fairly obvious for the technical user and have been discussed in the blogosphere, but I think hearing it from the horse's mouth and at a very high level will benefit non technical users.
[+] emontero1|16 years ago|reply
"We also know first hand that Flash is the number one reason Macs crash."

I can attest to the veracity of this statement. My MBP's processor spikes whenever I get on YouTube or any other Flash-based site. I've had a couple of major crashes on both Firefox and Chrome while using Flash. I've also heard other users express similar views with these and other browsers on Ubuntu.

[+] WilliamLP|16 years ago|reply
The most brilliant part of Apple's marketing here is leveraging infighting and unintended consequences in the free software community. They don't care about open standards - that they would is, on the face of it, absurd. What they do know is that they will evoke much support for championing JS/HTML/CSS as an open plaform, and that it poses no actual threat to their App Store control. This is because of two reasons:

First that there is so much infighting between Mozilla, Microsoft, and Google on the PC browser side, that it will never be possible to deliver video in one way that is accessible to all users, and Flash will remain required on PCs. (Ironically, Mozilla is Adobe's best friend here, as lack of H.264 support for HTML5 in Firefox for the indefinite future - even if your hardware supports it! - ensures that we will never be able to encode once and run on any PC - unless we use Flash!) So HTML5 will never never be a real final solution, because of the PC environment, which makes it safe for Apple to support and champion.

The second reason why HTML is no threat to Apple is that it just is too hard to write real applications in JS and current (or forseeable) browser environments. I get flamed for this a lot, but I think most of the people who flame me have never tried to build and maintain large cross-browser compatible codebases in JS involving a changing team of developers over a long time. People who disagree here always point to nebulous future hopes or technolgies that don't work very well yet, and I think underestimate the difficultly and time this will take, let alone for adoption. And they also, in my opinion, underestimate the problems inherent in Javascript, the language itself, independent of the well known pathologies with browser DOMs.

And, the reason why this marketing strategy is so brilliant is precisely because posts like this one will be viewed as conspiracy theory! This is because people have so many emotional ties to their hopes and their own preferred ways of doing things.

[+] yan|16 years ago|reply
I wonder why Jobs felt he had to explain this situation, which (in my opinion) was fairly clear to anyone involved in technology. Perhaps the criticism was getting to him?

Also, I found this to be a brilliant snipe:

> If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?

[+] va_coder|16 years ago|reply
It continues to amaze me that Jobs, as CEO of the 2nd largest company by market cap, is more technical than many of the managers I have had.
[+] RyanMcGreal|16 years ago|reply
>I wanted to jot down some of our thoughts

I'm guessing a company that controls information as obsessively as Apple doesn't just "jot down" its official response to a major, ongoing controversy.

>We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform.

It sounds like Apple doesn't trust the market. If apps compiled from a Flash development framework target the lowest common denominator and don't take advantage of iP*d innovations, they will lose to apps that do.

[+] joubert|16 years ago|reply
"they will lose to apps that do"

That is not a guaranteed outcome.

[+] MartinCron|16 years ago|reply
A true open market is far more messy and painful, at least in the short term, then Apple seems to want for its app store apps. As the device and app experiences are tightly coupled in the user's mind, every high-quality app is an asset to Apple and every low-quality app is a liability.

Not saying that I think it's the best way to go, but it's worth understanding the intention.

I like using app store apps the same way I've come to prefer console gaming over PC gaming. There's at least supposed to be a minimum quality bar that things have to pass, and I can experiment with things without worrying that they'll muck up my whole system. I've never had an iPad game require me to download and install beta-quality video card driver software in order to be playable, and for that, I'm thankful.

[+] ryoshu|16 years ago|reply
It's interesting to see Steve Jobs on the FUD side of things. On the upside, at least Apple has now officially addressed the conflict. Kudos for that.
[+] ugh|16 years ago|reply
Which arguments are FUD?
[+] paulsmith|16 years ago|reply
Regardless of how you feel about Apple or the Flash situation, you have to appreciate a CEO that can write and explain a company's motivations clearly. Would that we had more of that kind of frankness and less corporate-speak gobbledygook.
[+] mambodog|16 years ago|reply
With regards to video, if the lack of Flash support on Apple devices means faster uptake of the HTML5 video tag, then that's no bad thing.
[+] doki_pen|16 years ago|reply
They seem to be arguing both sides. First we should have open standards. This is great because apps work cross platform. But then he goes on to say that cross platform libraries are bad because they stifle apple innovation. This is very reminiscent of MS's reasons for not having standard compliant software in Office, IE etc. You can't have it both ways. Proprietary innovation may be faster short term, but in the long term it only benefits Apple. History has shown that once a corp gets the lock in advantage, they stop innovating and slow the entire process down.
[+] zyb09|16 years ago|reply
Sounds pretty reasonable, but common, if they needed to prohibit cross-compilers, did they really needed to do that just RIGHT BEFORE CS5 was going to ship? Any developer putting that much resources into something would be pissed. Adobe didn't make it secret, that they were devoloping an iPhone compiler, so Apple could've just told them right away it's a no-go.
[+] cookiecaper|16 years ago|reply
I turn a steely eye to their marginalization of KHTML.

Otherwise, I was with it until the justification for the new clause. That justification just doesn't hold up. Developers are not going to sit around and wait for Adobe to implement a feature they need; they will do as they have done now, and implement it themselves as necessary. The justification is very lame imo.