Thoughts on Flash
apple.com
apple.com
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.
[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
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.
A few other points:
- MobileSafari already has access to many hardware functions: gps, accelerometer, maybe compass? There are some great iTunes U videos on this if you're a member of the iPhone dev program. Obviously it would be good to have access to all the hardware features.
- Every time I hear about the App Store being "curated" for "high quality" I choke a little (iFart?). There's no reason why html5 apps in the app store wouldn't go through the same review process.
- The Google results for "congress" have no relationship whatsoever to "congress" in the App Store. Web pages != web applications.
"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."
Not a bad idea, in fact. A few big hurdles, though: 1) you can't install apps on the iPhone except via the App Store (or asking a mobilesafari user to create a home screen icon themselves) 2) payment system inertia-- who's going to sign up for another micropayment account when they're already set up with Apple?
EDIT: while I was writing this, nailer said it better and more succinctly.
Clearly the current situation of open standards apps not being monetizable is not the best of both worlds.
Code is here: http://github.com/grinich/pastrytweets
The President and CEO of Sproutit, Charles Jolley, has been employed by Apple since 2006. I guess that would count as contributing to SproutCore.
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.
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...
Your link makes it seem like an evangelist is playing loosely with words; "available for download" could simply mean beta/RC status, not ready for release everywhere.
Battery Life
From your link: The results are amazing: I can watch a 4 hours and a half flash movie, without interruption, with a bright screen (no sleep mode) and sound !!!
From Steve Jobs post: The difference is striking: on an iPhone, for example, H.264 videos play for up to 10 hours, while videos decoded in software play for less than 5 hours before the battery is fully drained.
They seem to agree with each other? And only helps Apple's point.
Touch/Scroll
How about hover?
Battery Life: It's a bit of hyperbole. We don't watch videos on the iPhone for 10 hours. Would it matter if Flash could play videos for 11 hours? It is a misdirection or a sidestep of an original claim that Flash would kill the iPhone inside of 2 hours.
Touch/Scroll: Another sidestep. A Flash issue? With that I answer: a:hover {}
I just don't get this argument from Apple. Steve Jobs pioneered high usability mobile UI because Apple took the reigns. Now we have Android UI taking a cue from Apple and "unlocking the mobile market"
Flash and HTML5 have a similar relationship. HTML5 opens it up a bit. That's great. But what about HTML6? Flash is Area51 for implementation study.
We don't need to implement a marquee tag and then take it away once we realize it sucks. How could we market test video conf. or canvas-based visuals if we had no way to benchmark them? Flash is good. The VS. argument is a misnomer.
Proprietary isn't bad. Open isn't great. Proprietary vs. open is bad. Proprietary + open is great.
Proprietary implementations are a (sometimes) necessary interstitial step towards great open implementations. Save the "VS." narrative for Street Fighter II.
Apple's competitors have been clamoring to put Flash on their mobile devices because it's one more bullet point they can use in their marketing against the iPhone.
Yet it's 2010 and mobile Flash is still nowhere to be found. How is that not Adobe's fault?
"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.
Microsoft did the same thing with DirectX and OpenGL. OpenGL was cross-platform. Microsoft stopped supporting it, and instead insisted that developers use DirectX. This essentially killed cross-platform gaming for Mac/Linux. DirectX games port between Microsoft platforms and Microsoft's Console, but require significant middleware to port to OpenGL and non-Win32 platforms.
Use of an API, public and documented, is a form of dependence and lock-in. Apple has done. Microsoft does it. Oracle does it.
"Sixth, the most important reason.
Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices.
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."
Agree with him or not this is his view. And I think its a valid view. The first macs with a mouse didn't have arrow keys. And the early generation touch devices don't allow intermediate steps.
This is not stopping anyone from compiling from lisp to html5. Apple is fine with this. Buy native apps on their platform, for the time being, wont have intermediate layers.
I thought Jobs article made that pretty clear, actually.
What's sad is that it's a simple but important standard that isn't ordinarily upheld. It isn't sad to praise anyone for meeting that standard.
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.
[1] http://www.joelonsoftware.com/articles/fog0000000339.html
Microsoft finally addressed this and stabilized their APIs but they were somewhere between 5 and 10 years too late. Circa .NET 2.0 + in my opinion as an ex-.NET programmer.
Apple could easily end up in the same situation if they continue down this road.
EDIT: Detail
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.
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.
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.
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.
Let me ask you something. How many of Microsoft's competitors are building products that compete directly with Microsoft core offerings using the source code to Internet Explorer?
Your comparison is, to this reader, simply hyperbolic.
Now, how many Microsoft OSes refuse to run in a virtualization environment on non-approved hardware? How many treat such execution as a license violation?
If you do need Flash, you have things backwards. For one, he's talking about web apps, not iPhone OS apps. Web apps are entirely open and Apple is huge on pushing what you can do with the web.
Also, building iPhone OS apps is absolutely free. The entire SDK and documentation is free of charge, you just need a Mac to develop on. You need a $100 membership to sell iPhone apps, which is very different from needing it to try out development.
Flash on the other hand, costs $700.
Flash is entirely closed. Apple is mostly closed and is totally up front about it, but they completely support open web standards.
The compiler is free and open (http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK).
That, an editor, and Bob's your uncle.
On Windows, there's also a nice open source IDE (http://flashdevelop.org).
The one thing that's not open source is the player, and that is free.
Sounds familiar.
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.
Hell yeah! Let's pray. I'm not interested in using MonoTouch because I want to make a cross-platform App that also runs on iPhone/iPad. I'm interested in using MonoTouch because I prefer C# to Objective-C, if only because that's where the bulk of my experience is.
Adobe, however, hacked Creative Suite into Carbon with buggy, inefficient code and then took 10 years -- ten years -- to schedule the time to fix it.
It was written in Carbon to be cross-platform with Mac OS 9. And because it was just SoundJam MP, which was written for Mac OS pre-X. (Though, to be fair, so was Photoshop.)
"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.
Point 1 states Adobe Flash has proprietary features and the standardized open feature sets of HTML5, CSS, and JS should be used instead.
Point 5 states 3rd party layers limits development to the standardized features and leaves out the proprietary features that makes Apple unique.
Point 1 is in reference to the lack of Flash within Safari.
Point 5 is in reference to banning applications originally written in Flash.
With point 1, if developers are going to make a website, and they ditch flash, their work would work everywhere well (iPhone/iPad/iPod, Android, WebOS, Symbian, and Blackberry OS 6, as well as on the desktop). They wouldn't be limited to the platforms Adobe decides to support (or decides to support well).
With point 2, if you're going to make a native app for the iPhone, make one for the iPhone. Don't make one with Flash, which may not get around to supporting things like GameCenter, or multitasking, or any of the other hundreds of things Apple adds in new releases.
Choosing Flash for either one makes a substandard experience compared to the other options available.
Point 5 states that ubiquitous Flash co-opts the rate of advancement of the mobile platforms it runs on. E.g. you can't effectively differentiate your device by adding a new sensor, API or capability, because Flash won't bother to support it until the hardware is standard.
It's the same basic argument: Flash becomes the platform, it's not a particularly good one and it's not a particularly good situation for developers.
Would you rather Apple compete with Google, RIM, Microsoft and HP/Palm for developers, or have them compete with interchangeable Flash-playing-boxes, leaving developers to Adobe's whims?
If you have to make significant changes to the UI portion of your application, why not thrown the entire thing out and start from scratch with an extremely new (less mature) technology stack that you're probably complete unfamiliar with.
I believe Netscape got similar advice in the nineties.
Consider Python. Is it a standard? Yes, because there's an open source reference implementation.
Does it pertain to the web? Yes it does, because http clients and servers can be, and often are, written in this language, and its standard library and 3rd-party open source libraries support http and other web protocols such as HTML.
So if you're so keen on stand ards Steve, why can't I write web software in Python for the iPhone and iPad? Why are you such a hypocrite?
On a wider note: Steve, do you want to spend the rest of your life selling sugar-coated digital handcuffs, or do you to change the world for the better?
Ummm... you can. If you write 'web software' in Python, all an iPhone/iPad user needs in order to use it is the URL. Both devices have a best-in-class web browser that would be more than capable of running your web software well.
Also, check this out:
Apple is putting effort into make web apps first-class citizens on their devices.
Does it pertain to the web? It doesn't. Python isn't used 'on the web', it's used on the backend to generate web pages, as is C#, Erlang, and pretty much every other language ever. Are you suggesting that Apple should include a Python interpreter in WebKit? It sounds like that's what you're suggesting.
The simple answer would be 'because Python is not a language that is used in client-side scripting anywhere on the web'. No other browser supports it, and even if they did it wouldn't be widely used.
Your argument seems not only spurious but nonsensical. Python is used to send or receive documents over HTTP, so therefore I should be able to write a web app in Python to run on the iPhone? It doesn't make sense.
My home cable internet 'pertains to the web' too, and it uses documented standards like DOCSIS, so why doesn't my iPhone support DOCSIS? It's a ridiculous argument, as is yours.
"We only want to support open standards" does not imply "we want to support all open standards."
If they were intent on getting rid of everything under the sun that isn't straight C, Obj-C or C++, there would already be an App-ocalypse underway.
(I was going to say "App Holocaust" first, but that seemed even less tasteful.)
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++"
Still, it would be better for them to spell it out more clearly or have a mechanism for you to get a preliminary ruling before you embark on development.
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.
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.
So that's one less reason to support Flash itself on an emerging platform (iPhone is pretty mature, but it is still very young compared to desktop OSs - see the bounty of new features and UI changes coming to iPhone OS4).
I'm also concerned about their choice to introduce FXG for web use instead of using SVG. The Wikipedia article on FXG links to a blog post by Mark Anders where he contrasts the role of the format vs SVG by saying "FXG was designed as an exchange format between tools that understand graphics, like Photoshop, Illustrator, or other 3rd party ones, and tools that understand Flex and MXML." Right. So why are they now introducing it as a format for the web (via JS/canvas)?
I love non-technical users. I was trying to explain to one of them yesterday that they can still use my website even after their school wipes their hard disk, and separately, even though the email address (login) is their home email address and not their school email address. She was quite convinced that I didn't understand the situation, because she was going to lose "all of her memory except the Hotmail at Google", like the tech guy told her.
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.
ClickToFlash also does some good flash blocking and video replacement. http://clicktoflash.com/
That said, I've started using ClickToFlash, which prevents Flash from loading except when I tell it to, and my browsing experience has become far faster and more reliable than it ever was before.
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.
They really do care about open standards. There is no reason why WebKit and several other projects have to be run in the open, after they stopped releasing several parts of Darwin, but they are.
At worst, this is because there is more than one person at Apple, and the people who want things to be proprietary don't care about this and have left it to the people who like open standards to deal with.
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?
There are literally millions of experiences out there that can't be done with HTML5, CSS and JavaScript. if you want proof, go to theFWA.com and have a look around.
For every bad flash solution out there, there are some quite fantastic ones.
Flash gives you control of the experience in ways that by any metrics outcompete HTML5.
This might not mean something for most people here at HN, but for quite a lot of people (the same ones that Jobs is catering for with his iPad) it's given them many great experiences. Experiences that are not going to be matched even by the best HTML5 developers out there for quite some time to come.
I don't disagree with your general premise about flash offering more robust design control, and it's possible I didn't look around enough on the site, but I didn't see anything on thefwa.com that you couldn't handle with a HTML5, CSS, and JS (heck, I didn't even see much that you couldn't do without HTML5). Was there anything specific about that site you were thinking requires flash?
EDIT: Ah... I think I get your point, I assume you weren't referring to thefwa.com itself, but the sites linked from there.
Or what about http://www.audiotool.com/
I think he states the major reason, Adobe seeks to characterise Apple as against the freedom of the developer. This campaign adds weight to developers that are jilted by the iStore. They can find a home in Adobe. I think that this should clear up why Flash would not be the friend of the iPhone developer.
Analogy: "Instead of replacing the car's steering wheel with a joystick, why not just rebuild it as a boat?"
There are lots of good points in the article, but I found that line flippant and misleading.
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.
That is not a guaranteed outcome.
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.
* Flash is 'closed and proprietary': Flash is as 'closed and proprietary' as many of the technologies he's trying to portray as open, if not less. H264 is not open. Objective+C++ is not open. Flash (SWF) has a fully published spec and anyone can write tools to create, or play, SWF content, without royalties, or without having to respond to any entity.
* Adobe only wants cross-platform apps, not good apps; generic subjective bullshit.
* Comparing video decompression versus hardware decompression battery gains and claiming that's an advantage over Flash: bullshit, since Flash uses video decompression in most cases.
* Saying Adobe postponed the release dates of Flash 10.1 for smartphones: bullshit. He's repeating a story that has already been corrected on a number of places (that Flash's release was pushed to 2nd half of 2010) as fact. That he's ignoring the fact that the story was misinterpreted by one source, and simply repeating the wrong news, is staggering. FP is still bound for a release in the 1st half of 2010.
* Saying "Adobe has recently added support for h264 playback": gee, I guess 2.5 years is "recently"? h264 support was added with FP 9.0.115, released in December 2007.
There's a lot more, but it tends to get tiring to constantly dispel the most obvious FUD written for the general public and full of misinformation. Mactards will believe whatever they want to believe, so hey... I'll just let the platform speak for itself. In 5 years, let's see how well Apple narrow mindedness business decisions work out for them.
SWF is open (http://www.adobe.com/devnet/swf/). ActionScript 3 is open (http://www.ecmascript.org/docs.php, http://www.mozilla.org/projects/tamarin/). Want the Flex SDK? Here: http://opensource.adobe.com/wiki/display/flexsdk/Get+Source+... Want a non-Adobe compiler? http://haxe.org
Adobe still has closed projects like Flash Builder 4 and Flash CS5. But saying that, "Adobe’s Flash products are 100% proprietary" is false. FUD.
- "Second, there’s the “full web”."
h.264 is more modern than Flash's support for...? Oh, right. Flash has supported h.264 for over 2 years. FUD.
- "Third, there’s reliability, security and performance."
Pardon me while I go name a WAP "at&t wireless." Yes, Flash has security issues. Google mobile Safari 0day. FUD.
- "Fourth, there’s battery life."
As mentioned above, h.264 was adopted by Adobe years ago. FUD.
- "Fifth, there’s Touch."
I wrote a multi-touch Flash API for custom hardware shortly after Flash 9's release. Multi-touch works fine in Flash. Rewire some events and it's seamless. FUD.
- "Sixth, the most important reason."
Has Steve Jobs actually ever used Xcode? Beyond the native, crappy tools that Apple offers, some of us developers prefer to choose the tools we like to use when we write software. We like to use various languages based on what works best for us.
Apple is screwing over developers and they are using Microsoft level FUD to convince us its for our own good.
did they really needed to do that just RIGHT BEFORE CS5 was
going to ship
I believe so. Otherwise they release iPhone OS 4, but customers get a flood of non-native, non-HIG aware apps coded by Flash developers and compiled for i* by the tool who knows nothing about new version of the OS.
That cannot be the great user experience.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.
I love this paragraph, check their hypocrisy, switch Adobe/Apple:
[Apple]'s 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] is a closed system.I'm not aware of any situation in which Apple has prevented Adobe from going about their day-to-day business with e.g. Photoshop or Illustrator, or has hindered their ability to fix bugs or add features to those products.
The point is that he is specifically taking about the web being open. Again: at no point does he say being proprietary or closed is inherently a bad thing. Only being so in the context of the web they consider bad. And Apple's actions in the context of the web support that.
If their arguments are correct, let Adobe port Flash and let users decide rather than telling them what they can and can't do with their own devices.
in other words: it's vaporware, still.
When Flash is finally released and it turns out not to work on their pre-Droid devices, I wonder if they'll switch to the iPhone. I mean, either way, they won't have Flash to view MLB.com, but at least on the iPhone there are fantastic native apps to do things like that.
Want to use Google Analytics? Sorry. Need Flash.
Want to see StreetView? Need Flash.
Hulu? Need Flash.
Aviary? Need Flash.
Games? Need Flash.
Apple's answer to everything but video is to buy it from the App Store. Really? Buying shit from the App Store is not the Internet I signed up for.
Street view: http://googlemobile.blogspot.com/2008/11/google-maps-for-iph... (since 2008)
Hulu: coming as a native app (http://gizmodo.com/5506892/hulu-app-coming-to-ipad)
Aviary: neat app; there are image editors on the iPhone, but I'm not familiar enough with Aviary to find something comparable. Maybe there isn't anything.
Games: There are tons of games on the iPhone and iPad that don't need Flash. Command and Conquer is one of them, and Final Fantasy I and II are some of my favourites. There are also tons of independent games, like Implode, Tiki Totems, and MotionX Poker, as well as pseudo-indie games like Plants vs. Zombies and Peggle.
So, are you really so averse to paying someone for their time? Nothing comes for nothing, and if you're so broke that you can't shell out a few bucks for an app that makes your life easier, you probably can't afford an iPhone either.
As he said: "Buying shit from the App Store is not the Internet I signed up for.", but that's Apple's vision for internet. One they control, pre-approve and sell in their market.
"The avalanche of media outlets offering their content for Apple’s mobile devices demonstrates that Flash is no longer necessary to watch video or consume any kind of web content."
Because media outlets are forced to make their videos available to the iPhone without being able to use Flash, this means that Flash is no longer needed?
The thought of having to wait till a useless flash Ad render on my mobile browser, without any ability to block them is reason enough not to have it on my phone.
Unless Flash framework is completely revamped it will vanish to a place of old proprietary technologies, I am saddened by this, because flash offered a venue for application development to many creative people who are not programmers, and they made amazing stuff, but standards are important, and i suppose authoring tools for HTML5 will mature enough for non programmers in due time.
With all that said, The lock on the stream of revenue solely through the app store is to me, very hard to accept, developers should pressure apple to allow other venues, in the long run a single store is just not conducive to anything "open"
I swear, I used to think the reality distortion field was a dumb metaphor...
As an example, I refuse to use Tweetdeck on the Mac, because even though it does exactly what I want from a Twitter client, it doesn't behave at all like a Mac app should. It uses too much memory, it's slow, it's crashy, and the keyboard shortcuts for moving around text fields, that I use in every other app, don't work. Instead I use Tweetie, which does almost none of what I want (except showing and making tweets), but behaves the way an app should, so it's less jarring to use.
There is a huge need for a solid authoring tool for the canvas and Adobe is the right company to build such a tool.
Adobe has been whining for far too long about its inability to lock people into a proprietary runtime with poor performance.
Hardware and OS makers should have the ability to implement the runtime in ways that improve the experience. Apple is correct in insisting on such. This won't just be good for Apple, it'll be good for the entire industry.
I don't use Flash because Adobe forced me or insisted that I use it. Flash was the only solution to create highly interactive applications on the web for a long time and gained huge popularity because of this. The Flash plug-in was a failure on iPhone so they went out of their way to use the Flash environment to create native iPhone apps (i.e., no longer Flash).
Clearly there is spin in the post - but it is at least reasoned and tries to present a cohesive argument/point of view. More of that from every company please.
I think that even if you don't fully support or agree with the arguments (some of them have been debunked or much discussed after all) I think we can support this idea of company CEO's/management writing about their thought process in complicated or controversial decisions.
EDIT: Uh? I made the same point many others have.. is there any reason I've got the wrong idea?
"...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."
If Adobe didn't drag their feet for so long on the CS products, I think the other reasons wouldn't have mattered as much.
You have to remember, that Apple tried multiple rewrites of MacOS in 90' and OSX was yet another 'this time it will work out, I promise' project. If you were Adobe, would you bank your company on yet another promise? I know I wouldn't.
Finder was kept in Carbon as a demonstration that large codebases ported from OS 9 would still be supported (it would take quite some time to rewrite them, after all).
iTunes's lack of a rewrite is probably due to having to run on Windows without having to immediately do the extra work needed to port Safari, but at this point it doesn't really have an excuse. At least it supports background scrolling, so it's still beating Word...
Everyone wins – we sell more devices because we have the best apps, developers reach a wider and wider audience and customer base, and users are continually delighted by the best and broadest selection of apps on any platform.
Yeah there's a business interest. But it's also good for developers, and it's also good for end-users. And they're all interconnected.
Mere mortals may have been tempted to eschew the business aspect altogether, but good ol' Steve isn't afraid to tell it like it is...
I'd like to hear everyone's thoughts on the answer to animation. Sprites are heavy, but are the only other option I can see. Even still, there is no authoring tool better than flash for animation on casual games or the web.
If I remember correctly, iTunes isn't Cocoa based yet either.
But banning anything originally written in Flash, MonoTouch or any other rapid or not rapid external "to Object-C compiler platform" should be out of reach of Mr. Jobs' jurisdiction. As long as it runs on the platform, it's none of his business.
Honestly, it's like telling a convenience store owner that he has no business refusing to sell M&M's in his establishment and that it furthermore makes him a big, old, bad guy(TM).
Now, he starts banning some specific M&M's based on the production methods of them. No M&M consumer can tell the difference, all taste more or less the same way. Production does neither determine quality nor nutrition facts of M&M's.
All that adding a GC would do is move the burden of releasing memory to the GC thread; what would result is that in low-memory conditions (or when the GC runs naturally), you'd have a sudden performance hit as the GC churns through the objects in memory looking for free-able objects. On the desktop, this might not be as much of a performance hit, but on a mobile platform I can see this being an issue.
Likewise, the GC can only do so much. If a developer creates an array and starts stuffing objects into it, but never releases/unreferences the array, those objects will likewise never be deallocated. The onus is still on the developer to write proper code, but now they've voluntarily given up control of memory to a separate process that may not understand the code as well as they do.
Besides all of that, I haven't found iPhone apps to be unreliable at all. The apps I use are generally polished and work fantastically, and crashes are extremely rare (and most of those are due to OOM conditions directly attributed to WebViews).
I hope that if Adobe responds, they'll do so in a similarly direct and civil manner.
Just say it's a business decision, Apple. Stop pretending you have the consumer in mind.
There is also HTML+JS content, that uses onmouseover.
So what was the argument again? In both, Flash and HTML+JS, you can use onmouseover. You don't have to, it is option. So what makes the difference?
Remove Flash and notice you wont miss it. More and more websites are using HTML there day's. Removing Flash also improves browser speed and stability (just as removing Adobe Reader does).
I did a lot of Flex developing, but I think it's time to move on.
I'll put it this way, my finger sometimes gets so tired clicking to turn the flash content back on that I sometimes just disable the extension.
Though this is not exactly news, this sounds like a confirmation of the reason Apple doesn't support Theora for html5 videos...
For example, EA who uses Lua for scripting wouldn't be worried as they likely were due to this two weeks late press release.
I don't see steve jobs allowing us to submit HTML5 apps to the appstore? They must be written in his closed proprietary format with a goal of locking you in to using their tools (xcode). Just like adobe wants to lock you into their proprietary format (flash).
His arguments sound good though. And it would be great for adobe to add HTML5 as a target but i don't think the spec is quite ready. Does webkit on the iphone expose all the devices to implement say chatroulette?
Flash is a great tool to develop cross platform apps until the html5 spec can expose enough of the underlying os.
As a Flash developer myself, it only makes me second guess myself more. Not because it presents a new point of view, but that non-technical people will now harp in on the issue, and I'll have to once more explain why I'm developing on a 'dying' platform.
The thing that scares me though, is that if I want to move on in my programming career, should I be learning <i>another</i> proprietary platform to develop iPhone apps? Seems like Android is the alternative to that, but I just can't get rid of my iPhone.
For example, Flash support upcoming for android. http://www.edge-online.com/news/full-adobe-flash-support-for...
It doesn't matter if you do not like flash Steve, it is used on a significant portion of the internet. Either you work with them and find a way to make it work, or someone else will.
If there is a choice to be made it should be up to the user. If they want to use flash, let them, if not allow them to disable it.
If they want to watch tiny movies on a tiny screen for only five hours instead of 10 hours at a stretch, let them.
Realize that when you make hardware it will be used for purposes other than the ones you intend, that's the whole idea of the power of the computer, it is a universal device.
To try to artificially limit what users can and can not do is a short term strategy, and a long term loss.
P.S. I am very tankful to Apple for taking this fight (whatever their reasons maybe).
I know for certain there are bad native apps in the app store.
All of this has been discussed before, though. It's not news, even though it's straight from Steve Jobs.
Also, the people making games in Flash are usually graphics designers, not programmers, and they will have a harder time jumping to new technologies, even if they reach parity. You would have to have an environment that is as rich as Adobe CS and as capable when it comes to graphic and animation design, but for html5/javascript, before you will see a significant shift there.
Flash is much more entrenched than you think, and no matter how much Apple or Google wishes Flash didn't exist, they won't be able to dislodge it until there are good alternatives for all the major use-cases for Flash, not just video or animated websites.
Apple won't allow Flash on iP* because it would defeat the purpose of App Store.
With Flash support, you could make responsive, native-looking online apps specifically for Apple devices without having to go through the approval process.
I guess the PC doesn't count as a platform...
Say what you will about flash, but I don't think going the pure html5 route is the solution. Flash and Silverlight and other plug-ins serve as great ways to test out new approaches to the web and add additional functionality to the browser that isn't there already.
I think HTML5 and javascript is the way to go, but sometimes you can't wait 5-10 years for innovation to be supported in ALL browsers with a consistent api.
I do however think that Apple is in the right to require the tools to compile to native code using native UI widgets etc, and not be a blackbox runtime. The goal of ensuring consistent user experience is valid and worthy.
Watch him as he goes
Seriously, how much does this letter need a soundtrack? Flash anyone? Music with the text scrolling. Different text effects...
This fact and doubled that you remain exclusive to AT&T may turn your juggernaut around and repeat history.
From a happy and estatic iPhone owner/developer; best thing on market hands down!
He only failed to mention KHTML by name. He most certainly did not claim that they made WebKit on their own.
But failing to mention KHTML by name is an act, indeed.
Reminds me another masterpiece by Microsoft: "Java is a programming language proposed by the JavaSoft company", or something like that.
Oh, so Presto (Opera) and Gecko (Mozilla) are chopped liver.
If Adobe can convince people to run their software on their iPhones, then they should be able to.
http://news.ycombinator.com/item?id=1048800
And before that:
http://news.ycombinator.com/item?id=639976
Given the karma inflation dfrankes is corrected for that probably still (justly) king.
Did I miss the iPhone OS standards committee meetings or something?
I feel as if there's this weird assumption that Apple must make other considerations, that as the dominant player (for now) they have some obligation to make room for everyone at the table, lest they become evil, unsuccessful, or both. Why? What evidence do you have that Apple's exclusive culture and persnickety habits will result in anything but more money for shareholders, more opportunity for developers to put software in more pockets, and more sophisticated but accessible products being made available to more users?
I wrote far too much on the first pass, so I just excised a bunch, and here's the salient point: Apple didn't luck into this. They're not a clumsy giant who happened to end up with a market advantage despite themselves. They're in the position that they are because of the decisions they've made; they've deliberately created this reality for themselves. Apple doesn't wield authority over developers because tens of thousands of you decided to do Apple a solid and start writing iPhone OS Apps out of the goodness of your hearts. They managed, against really unfavorable odds and heavy competition from longstanding incumbents, to create what is arguably the best and indisputably the most successful device of its kind. Because they made decisions which resulted in that reality, should you choose to play by Apple's rules you have access to a large installed base of users—many of whom have indicated with their credit cards that they're willing to pay premium prices for premium products. I mean, how many normal humans do you know who would consider buying ANY software for a cell phone before the iPhone? I have many friends and acquaintances who have either told me outright or given the impression that they don't understand why one should need to purchase any software for their DESKTOPS beyond what comes bundled, yet each time I see them they have new paid apps installed on their iPhones. But, if you want access to them, you must play by Apple's rules. In the event that Apple adjusts 3.3.1 to state that developers must submit video evidence that they wore tricorn hats for the entire development process, if you want access to the users, you must play by Apple's rules.
You're free to determine that Apple's decisions of late are unsatisfactory to you, and that the potential business isn't worth the development time/unsavory feelings/brain cycles/whatever to play in Apple's game. But to imply that they have some obligation—moral or otherwise—to consider any interests but their own isn't just inaccurate, it's lunacy. Apple doing exactly whatever the hell they wanted is what created the marketplace to begin with.
An aside: I'm not super pleased that I have to post under this inane pseudonym, but I work for Apple Retail in the Family Room (One to One, Genius Bar, etc) and I'm prohibited from discussing Apple on the web. Yet another compromise I've made with Apple, but (for me) making decent money and having the opportunity to work with people I don't hate while I finish school is worth attempting to resist the temptation to be sucked into silly arguments on the internet...most of the time. In an attempt to preclude fanboy assumptions/accusations I will note one compromise I haven't made: I use an Android phone because I've had horrible experiences with AT&T in the past, and I refuse to pay them one red cent, though I still hold out hope that on one of these hardware revisions the iPhone will be made available on other carrier(s).
You just say that it's perfectly normal for Apple to behave like a psychopath. Now, replace "they" (Apple) by "any for-profit company in the world". And watch the world burn.
For example: 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.
This is fantastic news, direct from Steve Jobs himself, Apple is going to go completely open on their products! This means that I can go and buy a copy of iWorks from Oracle now, and get a Mac Clone from Dell and an HTC built iPhone! I wonder how long it'll be until OSX is available from Canonical? so excited, so excited
Other that this, the point is almost entirely incorrect. There are plenty of authoring and playback tools for flash not made by Adobe. It isn't exactly an "open standard", yes, but Adobe is not the sole source of flash stuff these days. Even a cursory search on google for flash creation tools brings back a bunch. Mr. Jobs, please follow this link http://lmgtfy.com/?q=flash+authoring+tools
Other points are better made, but some are still bad: 1) HTML5 is better 2) Webkit is neato 3) Apple never said they support the full web anyways 4) Most places have HTML5 video support nowadays, except for Hulu 5) Who needs flash for games anyway, i* devices have tons. 6) Flash = bad security 7) Flash = poor performance 8) Flash = eats batteries 9) Flash doesn't work great with touch 10) Third party content development tools suck! The people who use them suck! The crap that comes out of them sucks too! Anybody who think differently was born wrong! 11) Adobe should be making HTML5 authoring tools anyways.
What Apple should do is put Flash through the exact same approval process it puts other apps through. Make Adobe work for it, but don't just simply cut it off like a tantrum throwing child that can't share. If these are the problems with Flash, kick it back with comments and force Adobe to fix brokeness to get approval through the store. Adobe being open or not being open is a garbage point as I noted above. Apple doesn't require any of the apps in the app store to be open standards compliant. The mechanism for dealing with all of these problems is already there and it's simple -- the app store. There's no need to "work with Adobe", just reject it from the store the same way lots of apps are rejected after the screening process. Lots of apps eat batteries. Is that a new rejection criteria, "apps may not consume battery life."? If I want to run down my device in 5 hours instead of 10, that seems to be my problem.
1) HTML5 is still very very immature technology with almost no good toolchain support for authoring HTML apps. It's still a pile of languages glued together in a browser that sometimes makes something useful or interesting, but also really really processor intensive and slow. We all ooh and aah, everytime we see a canvas demo that eats up 100% CPU time on a quad core system displaying something that we all saw in 1996! By just this simple test, points 7-8 are almost completely invalid. Does flash perform worse than native apps and use more battery? Sure! So does playing an intensive game!
2) Webkit is neato, but webkit is a different thing than Flash. It makes no sense to compare the two. It's like comparing webkit and iworks for the iPad. By this logic, Apple should also not sell iWorks for those devices but just point everybody to Google Docs.
3) That's okay, that's why there are 3rd parties who can build stuff to support it for you.
4) Good point. This is definitely the wave of the future, Hulu needs to catch up. The point about hardware decoding is also fair I think.
5) i* devices do have tons of games true (Steve, I hope you now see the connection between entertainment software and platform sales, it's eluded you on the Mac for years). But those games are not flash games. I want to play flash games on my i* device. Period. I am the consumer, and I get to demand what I want to purchase. The only fair point I think is that most flash games don't work well via a touch interface. I have to agree with this. But there are also plenty of flash apps that are not games that would be amazing on an iPad. I want to use those. http://news.ycombinator.com/item?id=1295052 And no bit of HTML5 will replace these kinds of things for at least 12-24 months. Flash is not just about video and games.
The i* platforms also do not have the most pieces of entertainment software of any platform. Apple needs to simply stop exaggerating their claims to the point of absurdity.
6,7,8) see point about app store rejection above.
9) Agreed, though some flash apps might work well. Or apps could be written to work well with it exactly the same as making an HTML5 canvas app work well with the i* devices. This BS about mouseover events, and device features is also true of the web, yet that doesn't seem to be a reason to yank Safari mobile off of the devices.
10) This is the most noticeable pile of utter garbage in this entire thing. Somebody here did a survey of the top i* device apps and many of them were made with third party tools or contained elements that are now in violation of the new terms. Most of those apps were of superior quality. Just because the tool chain is made by somebody else does not mean the output will suck. Conversely, just because the toolchain is Apple approved, does not mean that all apps that use that toolcahin are going to be free of suckage. There are lots of shitty apps in the app store, lots, and I'd bet the vast majority of them were written with the approved toolchain.
11) I think we can all agree that HTML5 is immature as a technology. Adobe makes great authoring tools. Therefore, Adobe should make great HTML5 authoring tools. I think we can all agree on this. Flash is eventually going to go away. But in the meantime it's still a useful piece of technology. Just because quartz timing devices will all eventually go away doesn't mean that we should just stop using quartz timing devices. But even if Adobe started today, flash would be a predominant force on the web for 3-5 years.
Finally, this is all a giant pile of misdirection. Point 10 is the key one not flash.
Do they actually believe that things like the iPhone and the iPad will displace our old PCs? No way. Not with the DRMs.
Who here stopped using their desktop, to rely exclusively on an iPhone and an iPad? Who plans to? Why?
If Tablet PCs ever displace conventional ones, they won't have Treacherous Computing build in. Even my mom understands that depending entirely on a single company for much of her work and personal life is not a good deal.
2. Full Web -- You don't really want Flash.
3. R,S,P -- Flash is some buggy shit.
4. Battery -- Forcing you not to use Flash saves your batteries! Aren't we nice?
5. Touch -- Multi-touch fail. We can't hover like a mouse.
6. We're saving the developers from themselves. The morons.
Flash has been ported to mobile device. Windows Automotive, a version of WindowsCE, has flash. The Ford Sync system's front UI is completely flash and action script. I know because I work on the system.
I mostly agree with Jobs reasoning though. He makes very good points but it would be nice if he could get his facts right.
btw, flash and online video is not the case. It is possible to download almost any video somehow.
All that crappy blinking and flashing ads is what flash is really for.
But two claims really pisses me off.
Battery Life
If I activate push notification it sure isn't nice to my battery. So I switch it off.
The same thing could be done with flash. Or even better, make flash an opt in. What's the problem.
Yes I know apple can claim that it will affect peoples impression of their products, but so do not having flash.
Touch
This really is a strawman of enormous proportions.
First. There are plenty of html pages out there that have roll-over. Plenty of menus that expand as you roll over them.
Second. Rollover states is not a problem for most flash websites that users use. In fact Apple could simply allow for rollovers to be activated on push down and click on release.
I love apples products, but they are simply in the wrong here. I love my iPad but not being able to see flash sites is really getting quite annoying.
The battery life argument is also stronger than you make it seem. When users turn on push notifications, the phone warns you of a reduced battery life (also, when enabling 3G) and is usually not toggled by the majority of the population. Flash is much more insidious; it will live in the browser and to the average user, will just be a part of normal browsing. Ditto for watching movies over flash.
Regarding battery life
And why couldn't the phone warn you off reduced battery life if you turn on flash?
You simply make it an opt in, the first time someone is running flash you overlay a warning saying that flash reduces battery life and you can turn that warning off.
Its simple interaction design, apple are masters at that.
None of the problems stated can't be solved or are not already there with regular html (rollovers on plenty of normal html sites)
This is why: http://en.wikipedia.org/wiki/Straw_man
Speak for yourself about the lack of flash on the iPad, I consider it a feature on mine. 90% of the videos I run across on the web on my iPad are youtube or vimeo videos and work perfectly.
1) Radio, 2) Display.
These two facts made VAST majority of non-technical users aware, that the more they use their gadget, the shorter the battery life is.
Fortunately for them, Flash is pretty much interactive, it does not run in background and does not draw energy when the users thinks it is off. It is pretty easy for the users to comprehend that they were using flash and that's why the battery is empty.
Regarding making flash an opt in being a problem. It's a pure interaction problem. By no metrics is it harder than to turn push notification on and off or setting your time.
Not all the time, but I think it's quite telling that a gushing 'I love this, with a slight reservation' gets 150 upvotes and you are sitting here at the maximum downvotes for simply stating your opinion.
Yuck.