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?
Adobe claims that we are a closed system, and that Flash is open, but in fact the opposite is true. Let me explain.
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.
It's called control over the experience something that really shouldn't be a surprise for Jobs.
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.
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.
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.
I would argue that dropping in gordon for a site like theFWA.com would easily solve the problem... seeing how everything they're donig with flash can easily be done with plain javascript
You mean the Flash app linked to on the front page of theFWA that took 30 seconds to load and almost crashed Chrome on a late model Macbook Pro 17? Is that the kind of mobile experience you're after?
That quote comes in the context of rollovers. Modifying a flash app so that it doesn't require rollovers is an order of magnitude less difficult than rewriting the entire program from scratch.
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.
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."
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 worry that they are just retargeting Flash to HTML5/canvas instead of redeveloping/expanding the Flash production environment as a true standards-based authoring tool. It makes me think of exporting HTML documents from Word (or to be kinder, OpenOffice). Yeah technically it is [HTML5/Canvas/CSS3/whatever] but it's still the step-child, and will be treated as such. Given the HTML & CSS that Dreamweaver coughs up at the moment, my hopes are not high.
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)?
The sad thing: CS5 Flash could also export to native iPhone apps. A native exported app would run faster, consume less power, and potentially have better integration with the underlying platform, all with exactly the same interface as an HTML5 web app... In other words, a native app exported from Flash would be better than an exported HTML5 web app in all the same ways Steve describes HTML5 video as being better than Flash video.
Actually, the native-exported apps are mentioned by Jobs in point 6. Of note: these apps were slower than native apps, consumed far more power than native apps, used more memory than native apps, and had little to no integration with the underlying platform, other than running in the first place.
Jobs' point talks about this; the issue is that if Flash CS5 supported what the iPhone can do today, who's to say when it will support what iPhone OS 4 can do tomorrow? Will they update Flash on Apple's schedule, or their own? Or at all?
For one example, look at GameCenter, Apple's new XBox Live-type service. Would Flash support it? Would Adobe go to the trouble of adding full support for GameCenter to their Flash runtime, so that games written in Flash could make use of that feature?
That wouldn't make any sense, because then people would have to write a different Flash app for the iPhone than for Android; either developers use GameCenter on iPhone and nothing on Android, or GameCenter on iPhone and their own solution on Android.
My suspicion is that Adobe wouldn't implement it (because it's a lot of work to just support one platform) or wouldn't implement it well (because they just don't really care), and that if it were available developers wouldn't use it (because it would only work on one platform anyway). This leads to a worsening of the overall experience, as the flood of quickly and cheaply ported Flash apps into the App Store dilutes the value that's there.
Perhaps Adobe would add GameCenter support, but that might be a new feature for CS6, which might come out (for example) August 2011, after Apple's released iPhone OS 5, with more new features Adobe hasn't had time to implement.
Developers using Flash would have a substandard environment, and would produce substandard apps, assuming they even cared at all about doing things right. That's what Apple's trying to prevent.
I don't see Jobs addressing the performance of CS5-exported apps in point 5 ("Fifth, there’s Touch.") or elsewhere. The only place he says anything that could refer to Flash native apps is point 6, in which he argues against cross-platform development systems.
I think this is a red herring, though. Apple doesn't reject apps for not taking full advantage of the system. People can and will make Objective C apps that don't use GameCenter (or iAds, or the accelerometer/camera). If Apple was most concerned about GameCenter adoption, why not leave out the 3.3.1 change and instead mandate that all games must use GameCenter? That would guarantee Adobe would include it in Flash and then nobody -- not even the native developers -- could produce a "substandard" app.
But even if Adobe made a version of Flash that could target every aspect of the iPhone platform perfectly (maybe by open-sourcing the compiler and allowing Objective C extensions), Apple would find a way to reject it. It's not just a matter of making it easy to port things to the iPhone... it's also a matter of making it hard to port away from the iPhone. Apple currently has the majority platform, and they want to make the choice between platforms expensive, so that developers choose the iPhone first and -- as much as possible -- exclusively.
I think Gruber remains independent from Apple.
It would be too conspiracy theory for Gruber/Daring Fireball to be a secret PR mouthpiece for Apple.
More likely Apple reaches out to him because he is by far the most influential Apple website outside of Apple (MacRumors is a distant 2nd in my opinion).
They don't have to pay Gruber anything; the increased ad revenue from being a member of the elite The Deck should more than compensate.
More likely Apple reaches out to him because he is by far the most influential Apple website outside of Apple
I also think he is one of the most levelheaded apple-centric websites out there. Gruber talks a lot about premium products (not just apple) and their success in various markets -- DF is like a premium tech/apple/good taste blogzine and I imagine that his style appeals to a lot of people at Apple, whether they reach out to him or not (and "legally" or not)
Gruber is fantastic when he's not in "scandal" mode.
The site quality degrades significantly, however, when he latches onto a "scandal", whether it be about stolen iphones or illegitimate wi-fi security claims.
With his recent ad nauseum stolen phone coverage, DF has felt more like an overwrought Entertainment Tonight scandal episode.
I've found the best Gruber reading algorithm is:
if (post < 2 paragraphs) { worth bookmarking } else { mark as read }
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?
Don't lose sight of the issue. 3.3.1 is the issue, not "Flash on the iPhone". By reframing the argument as "Flash on the iPhone", you are succumbing to misdirection.
So "Flash on the Web == Bad" because it's not open, but "Flash cross-compiled apps on iPhone == Bad" because it's not... open... ? The logic doesn't match up. As has been stated, it's a misdirection. Steve Jobs is setting fire to a house on the west side of town so that no one will notice that he's robbing the bank on the east side.
He's trying to come off as an 'open crusader for the web against Adobe' because 'Adobe is not open,' but on the other hand shoving Adobe (and others) off of the i{Phone,Pad} platform because it's not part of Apple's own 'not open' environment. I hate Adobe as much as the next person, but let's not dress Steve Jobs up as a knight in shining armour just because he also doesn't like Adobe.
"Flash cross-compiled apps on iPhone == Bad" because it's not... open...
Neither stated nor implied. The logic doesn't "match up" because it's a separate issue, addressed with different arguments:
"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."
He then goes on about third-party middleware, e.g.:
"We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers."
Jobs does not make the openness argument in reference to Apple's proprietary platform at all. It seems to me that you have to ignore the last third of the article to think that he was.
He's trying to come off as an 'open crusader for the web against Adobe'
Is Jobs lying when he says Apple supports open web standards?
This has nothing to do with what's open and what isn't, it's about who controls what. Apple controls iPhoneOS, Adobe controls Flash. It's a prizefight. Don't get caught in a sucker punch just because you were paying attention to the fancy footwork.
Fake Steve raises an interesting point about how close John Gruber and Apple are.
>"...we leaked the Flash essay to our Chief Apologist John Gruber and told him to start whipping up some buzz on Twitter about it, and he followed orders [http://twitter.com/gruber/status/12988151829]."
Apple do not have a Monopoly, unless you use a diseased meaning of the word Monopoly to mean devices produced by Apple. In that case, almost every company has a monopoly.
How is it so different? Microsoft at least did not control the hardware. Apple has always been worse than Microsoft in that respect - they even wanted to control the printer at one point! The only difference now is that for some reason its working for them now and iPhone is incredibly popular. But they're much more monopolistic than Microsoft ever was, and they always have been, and I would imagine they always will be.
At a certain point, if you execute so much better than the competition and set yourself up differently (controlling and innovating in hardware too) and you maintain total control of your platform, you can dominate in the market to such an extent that you have a virtual monopoly.
Yes, but Apple do not have a monopoly in smartphones or computers. Maybe, just maybe you could say they have significant market dominance of mp3 player market, but who cares about that.
Yeah it's an interesting battle. I've developed for both but I don't consider myself loyal to either. But this thing is becoming religious. I was a little ticked at first and ranted a bit. But I've accepted their decision and moved on. I will not be developing an app for the iPhone or iPad and it has nothing to do with Flash or 3rd party layers and everything to do with lack of freedom as a developer. As long as my application runs great and adds value, what's the problem? Save the nonsense guised as a technical argument for someone that falls for that (the consumer?).
What? The legal notion of "legal personhood" and actual personhood are not comparable, not even legally, and especially not in the context of the discussion at hand.
"This legal fiction does not mean these entities are human beings, but rather means that the law allows them to act as persons for certain limited purposes..." Emphasis mine.
This stuff isn't even on topic, but when people insist on insulting my intelligence with snide pseudo-logical comments, I will insist on correcting them.
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.
> "Proprietary implementations are a (sometimes) necessary interstitial step towards great open implementations."
True, but Flash is a closed standard with a closed implementation. Adobe likes to claim it is open - but the fact remains that not only is it impossible to write an open implementation of their incomplete spec, but Adobe has actively sought to keep core components proprietary even in spec and prevent competing implementations.
That's the part that irks me about Adobe's role in this issue - they're playing themselves and Flash off as this open savior of the web when they've actively been evil in that regard. If you're closed, great, do your thing; if you're open, then actually open your spec - don't open part of it and then go after the other half with lawyers.
So Adobe gets tossed aside in favor of HTML5/canvas. Or an open version of the SWF format with no licensing issues emerges. I am fine with that. If Adobe wants to be stupid, they are more than welcome to.
Apple is calling the kettle black with the proprietary argument. We can drill down to specific layers but the effects are the same to the developer coding on that layer.
OS has contributed to advancements in design, but proprietary initiatives employ a fleet of people to research, design and case study a technology. They do it all day and not as a side project after work.
Again, it isn't a case of one vs. another. I wish we didn't need to take a side and finally come to a conclusion that both are good in their own ways. Evolution is key.
There are plenty of people that are employed full-time to work on Open Source software. Don't perpetuate the myth that all Open Source software is created by people 'in their free time.'
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.
It is true that some of these links are from evangelists. But we're not saying Steve Jobs is neutral are we?
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.
> "We don't watch videos on the iPhone for 10 hours."
We do other things on the iPhone. I don't want to make the choice between watching a video and then restricting my own usage just so my phone has enough juice to make a call. I'd rather watch videos and use my phone, and the more power efficient everything is, the more the user can do this.
To put it in perspective, if Apple's numbers are to be believed, running Flash alone doubles the power consumption of the device. That's insane.
> "With that I answer: a:hover {}"
a:hover is no longer (it certainly used to be) a common tool used for site navigation. Which is to say, rollover dropdown menus are out like parachute pants - it's a non-issue on the web today. Just about every site works with "clicks", which is Apple's primary form of interaction with websites on touch devices.
The most compelling argument made though we've already been aware of for some time: cross-platform toolkits encourage lowest common denominator design. In Apple's world of pixel-perfect mockups and obsessive attention to detail this is abhorrent - and I'm inclined to agree. The iPhone's chief strength is its remarkably polished user interface - which for the most part remains true across its 3rd party app sphere, thanks in no small part to Apple's obsessive HID enforcement.
A Flash-compiled-to-iPhone app destroys this in the same way that a Linux Qt app hastily ported to Windows is the same.
> a:hover is no longer (it certainly used to be) a common tool used for site navigation. Which is to say, rollover dropdown menus are out like parachute pants - it's a non-issue on the web today. Just about every site works with "clicks", which is Apple's primary form of interaction with websites on touch devices.
This is precisely what I am talking about. We slice the pear in the middle and somehow end up choosing one side over another. True, a:hover is a deprecated form of menu control in HTML, but it is in Flash, too. Again, how you use the tool. Damning an entire developer base based on miscreant use is not a compelling argument. Sorry, but it isn't.
That's being a bit generous in favor of Adobe - the majority of the Flash development sphere is practically what one would consider "miscreant use".
Here's my impression of the different sorts of Flash use, based on my journeys on the web:
- Videos/Audio: Easily replaced by HTML5, and better too. More readily hardware accelerated, behaves as part of the core browser instead of a hijacking addon (e.g., Ctrl+T while focused on a Flash applet = no new tab), and much better battery life on mobiles.
- Crappy restaurant websites and other crimes against humanity: These should just die, and HTML5 will hopefully inspire better design ethic than this. I don't buy the argument that hovering is no longer common used as a critical navigation feature in Flash - I see it everywhere, especially for crappy restaurant websites. Flash is also impossible to crawl which reduces the usefulness of the web overall. Hell, you can't even LINK to content in a Flash site. IMHO the "full Flash site" (as opposed to Flash being a component of a page) needs to die a fiery, painful death.
- Games: The only place where Adobe has even a remotely legitimate claim that Flash is an empowering product rather than a crutch.
When I think of Flash these keywords come to mind: slow, buggy, crashy, badly designed, usability nightmare, gimmicky, unprofessional, and just plain bad.
> That's being a bit generous in favor of Adobe - the majority of the Flash development sphere is practically what one would consider "miscreant use".
The vast majority of websites in general are poor. It would be no surprise to see that the majority of Flash sites would also be poor. Both sides have exceptions, though.
> Videos/Audio: Easily replaced by HTML5, and better too. More readily hardware accelerated, behaves as part of the core browser instead of a hijacking addon (e.g., Ctrl+T while focused on a Flash applet = no new tab), and much better battery life on mobiles.
I don't disagree. I am grateful that HTML5 can handle this, but it took a "standards" committee several years to roll this into a questionably viable model. The immediate fanfare for the slow implementation raises my eyebrow a bit. We're all happy about having something we've needed for years. The company that created the fold so we could have sites like YouTube today? The devil.
> - Crappy restaurant websites and other crimes against humanity: These should just die, and HTML5 will hopefully inspire better design ethic than this.
It won't. Cheese is forever. If HTML5 can accomplish cheese, people will create cheese. We're all hopeful, but the human condition comes into play.
It's not the cheese I object to - but that the Cheese breaks the internet in fundamental ways.
Example: We just wrapped up Restaurant Week here in Seattle where a bunch of local establishments offered up prix-fixe specials for a couple of weeks. The website for this event was done up all in Flash, and made it impossible to crawl for a search engine, or even to link or bookmark a particular restaurant for later retrieval.
What did we exchange for this cheese and gimmicky design? Everything.
There's no regulating for good taste - you're right, most websites in general are poor. They, however, are still accessible - neon green text on black background with an annoying MIDI track in the background is still information that:
- you can link to
- you can bookmark
- you can copy and paste
- you can search for in-browser (doubly important if the website fails at layout, e.g. most Flash sites!)
> What did we exchange for this cheese and gimmicky design? Everything.
I agree that if you don't follow the proper protocol you will end up with an undesirable site. I can't argue that Flash == HTML in terms of accessibility. There are ways within Flash to harness some accessibility but it is up to the developer to implement these. An informational site in Flash is a bad choice. I would never suggest the use of Flash for broad use. A fun site (like http://www.myspace.com/fanvideo) is more appropriate.
> - you can link to
> - you can bookmark
Named-anchors and proper implementation (same as AJAX RIA)
> - you can copy and paste
"Selectable text" is an option in any Flash text field.
> - you can search for in-browser (doubly important if the website fails at layout, e.g. most Flash sites!)
> - you can search for on Google/Bing
Flash exports text within to the container. Google also can search SWF.
"Selectable text" is an option in any Flash text field.
Is copying/pasting it to the OS (or app) pasteboard an option? If so, will it use the same UI as native apps have? Or will it force a funky widget of its own in the middle of an app that otherwise looks like the rest of the OS?
The options are the same as the OS using the same UI. Identical to right-click menu in browser inputs/address bar. It is using the OS clipboard. CTRL/OPTION+C/V works the same as well.
Are you saying that Adobe reimplemented the UI? Or that they pass it off to the OS to handle? Because if its the former, the iPhone doesn't have a menu dropdown for cut/copy/paste. Or a ctrl/command button, for that matter.
I'm only asking because I've never had copy/paste from flash work well on the desktop.
Because <canvas> is used for just the "flashy" part of the site but everything else is still in traditional HTML with all of its advantages. Sure that can be done in Flash too, but, as we've seen, people often end up just doing the vast majority of the site in Flash. There's not the same temptation with <canvas>.
Why not? If <canvas> is being used as a drop-in replacement for Flash, why wouldn't it just be used in exactly the same ways? There's nothing special about canvas that would make it less prone to abuse.
Flash includes a ton of controls: buttons, scrollbars, text areas, etcetera. It has its own scripting language and memory environment that is separate from the HTML page and its DOM/JavaScript environment that contains it. There are ways to shuffle data and events between the two, but that means going out of your way to do so.
So if you're going to have a Flash-y data visualization component, say, it's easiest and most natural to have the controls for it (buttons adjusting parameters, display of those parameters, navigational controls) made in Flash too -- just expand the content rectangle of your Flash component out and drop in the controls.
In HTML5, the 'environment' of the <canvas> object is that of the surrounding HTML page. Adding buttons and other controls around the edge of your visualizer is most straightforwardly done by using "native" HTML <button>s and other such elements.
So it would be surprising to see <canvas>-using pages end up being done in a way where the <canvas> is essentially the whole page — it would require more programmer effort — whereas in Flash that's by far the easiest way to do it.
Although i agree that there are a lot of issues wrong with Flash, some of the things you mention aren't entirely accurate. For example, you can link directly to interior Flash content with SWFAddress (http://www.asual.com/swfaddress/). Also, there have been greater strides made in crawlers so that Flash content is more easily indexed by crawlers.
I will be the first to admit there are a lot of poorly designed Flash sites, but from an interactive design perspective, Flash still gives you the most freedom to create more innovative ways for user interaction. IMO this isn't something that should be dismissed so quickly.
> We do other things on the iPhone. I don't want to make the choice between watching a video and then restricting my own usage just so my phone has enough juice to make a call. I'd rather watch videos and use my phone, and the more power efficient everything is, the more the user can do this.
To put it in perspective, if Apple's numbers are to be believed, running Flash alone doubles the power consumption of the device. That's insane.
What's your battery life playing an intensive game or using a processor intensive app?
When it comes to battery life, you must consider the affect on the total user experience.
If the iPhone can play video for 10 hours, that means a 2 hour movie brings my battery life to 80%.
If the iPhone could play Flash video for 5 hours and I watch a 2 hour movie, my battery life is reduced to 60%.
Given other things I do with my phone battery life is important beyond "how much video can I watch?" If the repercussions of watching a two-hour video are so much less severe, I am more likely to watch the video in question knowing I won't wind up with a dead phone after a half day of traveling.
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.
If a phone can watch 4 1/2 hours of flash in software before the battery is drained this means that watching a two hour movie will eat half of my battery. By comparison I can watch a two hour movie using hardware decoding and still have 80% of my battery left.
About Job's remark of hardware vs software decoding of video:
In both cases, he's talking about H.264. An end user might not even realize there's a difference. But some encoders produce H.264 that can hardware decode, and some encoders do not. Not all H.264 is created equal, and this is one area that really matters.
You want an H.264 encoder that produces hardware decoder compatible video.
"But we're not saying Steve Jobs is neutral are we?"
I would argue that that's a reasonable point to make. Steve Jobs doesn't have a vested interest in seeing Flash die, he has a vested interest in seeing the iPhone platform succeed. If he saw any way Flash could help that, I'm sure he'd be all for it, but he's seen how Adobe's behaved in the past (late with PPC versions, late with OS X versions, late with Intel versions, late with 64-bit versions, crashy Flash, slow Flash, etc.), and he has no interest in subjecting the iPhone to the same issues that the Mac platform has had to endure at the hands of a slow-moving corporation who has little interest in being a good citizen.
I would argue that Jobs is 'neutral' in the sense that he's not supporting anyone else's agenda. He's made his choice based on the facts before him, and while you may not agree with how he got there, I would say that he got there from an initial position of neutrality.
The very moment flash was not included in the iPhone, Steve Jobs had a vested interest in seeing Flash fail. If Flash expands, user satisfaction with the iPhone goes down. If Flash fails completely, one of the strongest negative components of the iPhone disappears.
Why does he have a vested interest in making it fail? Could he not change his mind and allow Adobe onto the platform? It's not like he's never changed his mind in the past (the Intel vs PPC 'Megahurtz Myth' comes to mind).
Yes, this goes back to 1989 fight over fonts, and the 1993 fight about Display Postscript and the 1999 fight about Photoshop on Windows, and the 2007 withdrawal of 64-bit Carbon toolkit at the last minute.
Apple modified WebKit to support most uses of a:hover by changing how touch interaction works when a :hover style exists on an element. Apple cannot do this with Flash, which means Jobs's argument here is right on the money.
No, but you might watch a film and a couple of music videos and then the battery is getting awfully low. My iPhone lasts a day on one charge (with heavy web use & lots of calls). Halving that with a 2 hour film could be a big problem.
The point is it will only ever directly effect products made by the same company. A device from HP or Microsoft will never be hurt by an issue with a closed Apple platform.
If there are issues with Flash, it will hurt every company using Flash, and there is nothing those companies can do about it other than bug Adobe to fix it or drop Flash support.
I don't disagree that Flash has the potential to create issues.
The argument just suffers from the fallacy of composition. The standoff motif is getting old. We're talking about software, not cold war against another country.
Apple doesn't want you to notice Steve behind the curtain. With Adobe we tend to pick and choose what we agree with and ignore the points that don't support our bias.
In what way is saying "Flash has problems, therefore putting Flash on your platform will expose it to those problems" a fallacy of composition? I don't see it at all. It's not wrongly attributing an attribute of one small part of Flash to the whole. Or are you saying the fallacy is somewhere else?
But you don't appear to have pointed out any specific flaws in the argument against it. So you're not making an argument, just an unsupported assertion.
All I am saying is that Steve Jobs isn't putting all the facts on the table as they are. He is feeding the anti-Flash gang mob with half-truths.
To say Flash is proprietary, possibly poorly executed format is a fair thing to say. To say it is completely without merit and has no place is a fallacy. HTML5 video is widely supported today. Flash might be a delivery vehicle for another unrealized idea tomorrow.
And the "death to the plugin arch" circle-jerk logic is almost intolerable. Only create within the confines of the parent layer's imaginative capacity? Sounds more closed than SWF.
I have no issue with him shutting out something that really sucks today at the cost of potentially missing out on something awesome to do with it tomorrow. The awesome scenario just doesn't seem likely to come to pass. If tomorrow there's a completely great thing on the web that can only be done with flash, then I think Jobs is pragmatic enough to reevaluate.
But the fact that the main use for Flash on the web these days, beside video and unusable websites, are animated flash ads that use up 40% of my much more powerful Macbook Pro's CPU time means I'm in no hurry to have flash on the phone, openness dogma be damned. When Jobs limits my general purpose computers, I'll be angry, but until then, I'm glad he's making the tough design decisions instead of just letting the device be a free for all.
My point was that that is one of the main uses of Flash, and that an extremely simple/common flash implementation is enough to burn a huge number of CPU cycles for no benefit.
No user benefit. But there's nothing stopping advertisers from making crappy HTML5 canvas ads, and those are guaranteed to burn even more of your CPU cycles. So I call shenanigans on that argument.
Apple controls the iPhone's HTML5 renderer and feels much more confident in its performance. "There's nothing stopping advertisers from making crappy canvas ads" is not the same thing as "canvas ads will suck at least as much power on average as Flash ads."
They were separate points. Canvas is inherently more computationally expensive than Flash at this stage of the technology. As canvas advances, so does flash -- unless Flash dies off completely, Canvas ads will always suck more CPU cycles than Flash ads.
"unless Flash dies off completely, Canvas ads will always suck more CPU cycles than Flash ads."
Who says they'll progress at the same rate? That's ridiculous. Flash is at least 10 years old and has been in extremely heavy use, so it's likely plateaued in terms of performance on most platforms. Canvas (and the rendering engines for it) are very new by comparison.
> But the fact that the main use for Flash on the web these days, beside video and unusable websites, are animated flash ads that use up 40% of my much more powerful Macbook Pro's CPU time means I'm in no hurry to have flash on the phone
In my opinion, this is moot point. Annoying ads aren't going to be limited to Flash. HTML5 ads aren't going to be more fun.
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.
>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.
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.
There's nothing stopping you from using an OpenGL api that's built on top of DirectX, though. What Apple has done here is say that you can't put an API between you and the underlying API such that you are insulated to some degree from platform changes; but even worse, they've mandated which languages (!!!) you can use to interop with that API, which is almost criminal, technically speaking. (Of course it's not de jure criminal. Just for the reading comprehension impaired.)
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.
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.
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..
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.
I think you overestimate the degree to which non-technical users await, with bated breath, a pronouncement about programming languages from high officials at Apple.
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.
Here's all the insight I can muster: non-technical people do not have an accurate mental model of how the computer works. They have a semi-accurate mental model of the steps they take to do routine things on the computer: I click this thing, then I type in this thing, then I click this thing, then the magic happens. Deviations from that routine will almost certainly cause task failure.
Example: you know how Macs have the menu bar at the top of the screen rather than at the top of the window? I have at least one customer whose mental model is that the screen ends where stuff stops getting painted to it, and then that grey gunk above it is scary computer stuff. It took a day to talk her through finding the Help menu -- "It says Help, at the top right of your screen" because she was looking under the grey gunk bar and literally did not notice it until I returned the screenshot she had taken with a big red arrow on it.
All the programs and data in your computer is in files and folders, even windows is just a bunch of files. You understand this and everything else is far easier to understand.
I thought it would help reduce the cynicism and help programmers make a better mental model of their users (because that's what we've got all wrong at the moment).
Met a guy at a party last month who said I could make lots of money on the internet! Apparently, if you're good at websites you can put ads on them and make a ton of cash. Who knew!
I had precisely the same discussion yesterday with a new client. She didn't understand how our web application did not have a larger list of system requirements. She started repeating the situation in a louder, slower manner to help me understand.
What a brilliant explanation! It summarizes all the main points that different bloggers have come up with against flash. And if the death of flash means a boost for HTML5 then I am all for it.
* Flash websites will have to be rewritten because it relies on 'rollovers', which is not part of Apple's 'revolutionary' touch interface: overblown for two reasons - a) few stuff will have to be rewritten (many videos show desktop Flash content working on mobile phones without a problem); and b) this is not a problem with Flash, as any JS/HTML-based interface that relies on rollovers has the same issues.
* 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.
"Fortunately, there are over 50,000 games and entertainment titles on the App Store, and many of them are free. There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world."
Clearly nonsense.
I'm willing to bet that there are many, many more games and entertainment apps written in Flash alone than there are on the app store.
Flash has been around a bit longer than the iPhone has, so no surprise there. Flash has been around since PointCast Network, if anyone actually still remembers that.
* "Adobe only wants cross-platform apps, not good apps; generic subjective bullshit." Alright, so point to a single Adobe Air app, for example, that looks & behaves natively.
* "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." Did you read the article? "the video on almost all Flash websites currently requires an older generation decoder that is not implemented in mobile chips and must be run in software" But hey, easy to prove wrong. Point to one mobile phone with Flash (not flash lite) support that has decent battery life. ... Oh, wait... Well, one mobile phone that has Flash support period? No?
* We're talking about mobile applications like games being good enough, not desktop applications using native components. Please don't stray the conversation. Otherwise it's as dumb as me coming and saying iTunes should not be running on Windows.
* "Comparing video decompression" - The article (wishfully) ignores the fact that 'older' (flv) video formats are transcoded on the fly to a format that can be played by hardware. This technology has been present in the player for a while - ever since Flash Lite. Requires more CPU, but it is not the same as full software playback. Also, asking for mobile phones with battery life benchmarks is bogus, since it's still not officially released, so no proof can exist. It's like saying the next OS X is inherently shit just because you haven't seen it yet.
* Well, I'm not sure what other part of Objective-C that's not "open" you would be talking about, exactly...
* "We're talking about mobile applications like games being good enough, not applications using native components." Except we're not. That whole section was discussing specifically 3.3.1 and why they aren't going to allow cross-compiled apps to run on the iPhone.
* "Comparing video decompression" Oh, that's not gonna have an effect on battery life, nooooo. And so what, you're saying Apple should have included something that isn't even released yet in the iPhone?
I won't blame you for the confusion, as the naming is mixed up, but "Flex SDK" is the command-line Flash (SWF) compiler. It's free and open source. It's used to create SWFs or SWCs. It's the same compiler the Flash IDE has built-in.
I create full, rich Flash content with the Flex SDK, and has been doing it for a while. I don't compile with the Flash IDE. Not because I can't or because it's paid, but because using Flex SDK is better.
Maybe im nitpicking, but mxmlc compiles apps written using the flex sdk to flash bytecode. The flex sdk is open source yes, but the flash runtime certainly is not.
Whether Objective-C is open is a weird discussion.
The Objective-C compiler is fully GPL'd, so that's definitely open.
Objective-C, though, depends on a runtime, and Apple's runtime is proprietary. While the GNU project has their Objective-C runtime, it performs markedly worse, and misses a lot of features that are available in Apple's version, including blocks, GCD-style multithreading, garbage collection, fast iterators, and more.
Really? I consider .net a closed platform, as it is controlled by a single vendor, there is no patent guarantee (as Miguel has mentioned) and the alternative implementations (like GNash does with Flash) always lag behind.
(I happen to like .net, by the way, I just think it's closed.)
.NET is a closed platform — but Mono, which does implement parts of .NET in addition to their own changes, is an open platform. All of Mono's design and implementation is transparent.
There are multiple implementations and Apple can tweak how it runs. It is open enough for their purposes.
> Objective+C++ is not open.
He never said it was. He said Apple has several proprietary products but believed the web should be 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.
Yet Adobe has the only full implementation of Flash and if someone else were to try and implement it, it would always be behind the official release (just like Moonlight). And Adobe got lawyer-happy when open source guys reversed the streaming protocol in Flash so nobody is eager to try this anyways.
> Saying Adobe postponed the release dates of Flash 10.1 for smartphones: bullshit.
The fact is Adobe has been boasting about Flash on smartphones since Android first came out and there have been no working devices out except Maemo which totally sucked in every way Jobs described.
There was spin in this article just like his DRM article but I wouldn't qualify anything as FUD.
> It is open enough for their purposes.
Ok great, so Flash is also "open enough": fully published specs, anyone is allowed to use the format (creating, playing) without royalties. SWF is more open than h264.
> He never said it was
True. But if he wants to make this conversation an open-versus-closed conversation, I fully expect to compare the platforms in general instead of just a tiny bit of it.
> There was spin in this article just like his DRM article but I wouldn't qualify anything as FUD.
Saying Adobe postponed the release date is a lie. Saying they said it would be released before is also a lie, since Adobe never announced a date for public release (it was available for devs as beta). Maybe it's not your definition of FUD, but it's still a lie. I don't expect the CEO of a company this big to be repeating this bullshit.
> Ok great, so Flash is also "open enough": fully published specs, anyone is allowed to use the format (creating, playing) without royalties. SWF is more open than h264.
But does anyone do this? I see no usable reimplementations of Flash Player, and the spec cannot possibly be complete.
H.264 is a real standard with a conformance suite and bit-accuracy, and no scripting languages or multiple versions with different bugs to reimplement.
Flash also includes VP6 and RTMPE, which are proprietary and must be reverse-engineered.
This is clearly not true, though. The only implementation is closed and fully controlled by Adobe. Maybe it is more open in spirit but that doesn't mean crap in practical terms. In fact Silverlight is more open (in practical terms) than flash since at least there is a usable open source project. There exists right now a full featured and heavily developed open source h.264 decoder. You can't say the same for Flash. It is either Adobe Flash or spend a bazillion dollars trying to re-implement open flash that doesn't exist yet Flash. That's a non-starter.
Wait a minute, how is comparing H.264 hardware support for decoding (I think you meant decoding, not decompression) vs. software bullshit? Shipping versions of Flash still use software for video decoding. The only versions that use hardware are unreleased beta versions of 10.1.
Your post sounds like an Adobe apologist making stuff up.
I'm sure it will see the light of day. I'm using the release candidate on my media center PC right now because it is the first version of Flash that can play Hulu content full screen at 1080p resolution without dropping frames.
Running a beta of a Flash Plugin that kinda supports hardware decoding but still crashes occasionally on a Windows PC is much different than running a production quality release of a hardware accelerated Flash plugin on a mobile device.
Hardware decoding of video content has been available since FP version 10, released in October 2008.
I'm not making stuff up. I actually have my history of gripes with Adobe, as if I've been working with their software for more than a decade. If anything, I'm just enraged that this article is making stuff up, and I don't like people taking ideology and fundamentalism into a discussion that should be tech-based only.
Also, Flash does not use any of the multiple hardware decode APIs on linux yet due to it needing readback support which apparently they don't have yet.
'Welcome to the Flash Player preview release, code-named “Gala,” which introduces support for H.264 video hardware decoding on Mac OS X 10.6.3, the most recent release of Mac OS X Snow Leopard... The hardware acceleration functionality in the Gala preview release of Flash Player is expected to be included in an update following the release of Flash Player 10.1.'
Hardware acceleration for h.264 decoding was introduced in the Windows betas of Flash 10.1 in October 2009. It hasn't shipped yet, and probably won't for another 6 months.
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.
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.
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.
Yes, it's stupid. But with Apple, I feel I only need to fear their intention, not their wording. The intent here, it seems to me, is to stop Adobe from making crappy commercial middleware for Apple's platforms. The wording is overly broad and stupid, but I'm no longer as afraid of it.
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.)
I feel I only need to fear their intention, not their wording
I'm leery of their capriciousness. They obviously have no qualms about changing their terms of service on a whim, giving folks only weeks to comply, and not accepting any compromise. That is simply not the type of folk I like to do business with.
The intent here, it seems to me, is to stop Adobe from making crappy commercial middleware for Apple's platforms.
This is actually the biggest part of Job's argument that I don't buy. If their intent was actually to stop crap from being produced, they would just reject apps that are crap from the App Store as they do now.
It's a question of technical vs. subjective evaluation. A lot of apps on the app store are technically acceptable (i.e. they do things right), but do useless or stupid shit (i.e. they're junk). Apple's only lately started to police the actual purpose of apps, rather than their technical merit (or compliance with the HIG).
I suppose making this rule more explicit was the goal. The #1 complaint about the app store rejection system is that it is not transparent or explicit.
Still, 3.3.1 is poorly worded, so it's not a great solution.
"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++"
The rationale that Apple doesn't want developers shackled by third party development tools of which they have no control suggests that if you have control (e.g. you embed a Lua interpreter in an otherwise native app) or you still have full access to all the goodies (e.g. You use some sort of game engine for the guts of your 3D game) then the clause is not intended for you.
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.
Not the parent but the article says: "The most important reason... We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers. becomes even worse if the third party is supplying a cross platform development tool. The third party may not adopt enhancements from one platform unless they are available on all of their supported platforms. Hence developers only have access to the lowest common denominator set of features." Suggesting that the primary reason for the clause is that it will prevent third party apps effectively blocking enhancements made the the development environment; if you are using your own tools this isn't an issue. Not sure I agree that this means apple will be happy with developers using tools outside Objective C, but it certainly could suggest it.
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.
Maybe, but it unfortunately is the way life is in many places, and it serves to make the point pretty good. Selective enforcement of this policy is a real risk.
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).
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.
As a developer who has many times decided not to implement a killer feature that works in a modern browser because I will have to come up with some graceful degradation or alternative implementation in IE6, I can say that it isn't hand waving.
Good, I prefer those features not exist. It's bad for the Web to depend on anything not thoroughly designed enough to gracefully degrade and be usable on all the browsers you don't happen to care about.
I am a professional web developer. IE6 is one of the many platforms I have to support. Between the different versions of Firefox, Safari, IE, Chrome, and Opera its about 10 browsers that reasonably should be tested for a given site.
I guess what I was saying is give developers some credit. We've been working around a lot tougher issues than IE6 for a long time. Its a hurdle, not a brick wall.
Rightly said. If we (can) budget out the development cycle a huge chunk goes into ulterior CSS hacks (JS is handled indirectly by jQuery/<x> fmwk) and an unnecessary manual test cycle dedicated to IE6. It's not without a reason Microsoft sent a bouquet to IE6's funeral!
I agree with you, and that's why we usually decide to support IE6.
But there's some things that just can't reasonably be done in IE6, and I think its OK to drop support in those cases instead of canning the feature entirely.
I'd also justify that by assuming that if they're still running IE6, they're probably not interested in your fancy app anyway. Obviously this isn't 100% true, but I'd bet its close.
There are very large organizations that have tied themselves to IE6-dependent code (or at least, code that their IT staff assumse is IE6-dependent) on their intranets, and they are not eager to commit the resources necessary to bring everything up to HTML5 compatibility.
And IE6 still represents about 20% of browsers on the Web (http://gs.statcounter.com/#browser_version-ww-monthly-200807...). So a business owner hiring someone to design a public-facing corporate Web site doesn’t want to hear the designer dismiss one out of every five potential customers.
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.
And how do you know that Apple didn't tell Adobe well in advance? Adobe pushing to get onto the iPhone platform is every bit as much of a business decision as Apple trying to block them. Adobe may very well have been informed but decided that Jobs was just bluffing (not an unreasonable conclusion, there are very few CEOs with enough arrogance to do what Jobs has done on this particular issue).
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.
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.
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.
What’s wrong about this argument? Would all Flash content that uses rollover just work on mobile touch devices or would some kind of modification be necessary? I’m really curious about that.
If they're based on rollovers only, no. But again -- the argument is bogus because it makes it sound as if EVERY Flash content relies on rollovers alone (they don't - click or dragging is the norm) and that it's a Flash only problem (it's not, as I know plenty of websites that rely on rollovers for menus and as such just don't work on a mobile, touch-based browser).
I think you're reading too much into this. Many flash experiences do rely on rollovers for discovery. Obviously, not all of them do. Some of them do, but have sort-of-workarounds that are not so great. I mean, check out some of the most popular uses of flash, and note that they DO use pointer rollovers (say high to the newest youtube player).
He's making a very reasonable point: Lots of web UI decisions have to be re-evaluated within the scope of touch-based interfaces. Since we're rewriting, why use flash when open standards exist?
I feel like this is the #1 argument that flash-defenders dance around. What justification does Flash, as it stands currently, have to exist on the web in the face of HTML5? What does it bring to the table that HTML5 isn't busy providing a more compatible and open implementation for?
I think you misread Jobs. He thinks of this as a transition of the web from desktop to mobile. He thinks HTML+JS is the future and the gains of supporting “legacy” stuff like Flash are diminutive because it wouldn’t “just run”.
The other problem with this argument is that Jobs is saying that it's just as easy to rewrite the flash app in javascript as it to remove the reliance on rollovers. Whereas for the vast majority of the flash apps, removing rollovers is much easier than a complete rewrite.
Well they are listing every problem that factors into the decision. I think it is about control more than just the bottom line, Apple don't have control of design decisions that are made in Flash, its much more in their interests to push people towards the app store and to a lesser extent open web technologies where they get to set direction.
There are so many things wrong with Jobs explanation I don't know where to begin.
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.
I don't understand why you reacted so strongly to the roll over argument. Jobs didn't state roll overs as the raison d'etre for not including Flash, he simply used it as yet another example why the tools and, more importantly, thinking of the previous generation of web developers will not advance the platform forward. (As an example, I have been frustrated at some sites reliance of roll overs when using my iPhone).
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.
The touch argument just isn't valid. What exactly is it that can't be done with flash just because it's a touch environment. Flash don't care about what the input is. It will listen for what you ask it to listen to.
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)
These are all problems that could be solved, this isn't the argument. The argument here is solving them is not in everyone's best interest and is artificially keeping the platform in the past.
edit: why are you so angry? Apple are providing a beautiful product at a great price to the public. If it doesn't have a feature you want, buy another product that supports it. I never understood being angry at a company because of not putting effort into what you think they should be putting effort into.
"Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover."
Flash don't care. You are not forced to use rollovers in flash you can but you are not forced to do it.
Drag and drop is a historical mouse feature. You have that on the iPad too. So apples touch is not more revolutionary than it still uses these.
Every other mouse metaphor is in use besides rollover.
No — they don't have to use rollover. But the fact of the matter is, particularly with games but also to some extent websites (navigation), that many (perhaps the majority) do. Apple is speaking about the state of things as they are, not how they could possibly be if people so chose for them to be that way.
But that is true for so many HTML/js sites too and nothing absolutely nothing prohibits people from playing flash games with a touch interface. Most flash games are point and click
Making flash opt-in wouldn't solve the problem. The VAST majority of non-technical users will not know about or use that setting and will blame Apple for the poor battery life, not Adobe. It's a lot about saving face here. Apple wants to be in control of their own success, which becomes hard to do when you're allowing proprietary technologies to run on their hardware. Jobs points out his frustration with Adobe taking so long to adopt Cocoa - this is just him trying to avoid a similar situation on the iPhone.
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.
I am speaking for myself, who else do you think I am speaking for?
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.
You know, what draws most of the juice from the battery?
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.
re: battery life, if you want a phone that is infinitely tweakable get a Nexus One. Apple devices are unapologetic about restricting you in ways that Apple thinks provide for a better user experience.
Simple solution: use the accelerometer to aim a mouse cursor for sites with rollovers. I don't suggest Apple implement that, but some app developer could, or maybe Adobe.
I don't care if iAnything supports flash or not. They can ignore Flash, Silverlight, any other third party component other than the pure HTML. Steve might be right and has all the moral rights not to support them.
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.
Actually, he owns the platform (the App Store) and therefore it is very much his business. If you have beef with his policy for his platform, then you can jailbreak — otherwise, feel free to dislike his policies all you want, but you cannot disregard the fact that he's well within his right to enforce them.
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).
Anyone can supply him M&M's as long as they are in predefined colors and size, he refuses some of them by their taste. He is selling all the rest without any concern over the quality of M&M's. He was an ignorant middle-man for all other facts except taste.
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.
I don't buy this at all, although some of the reasoning is sound there's some jaw-dropping rubbish in this statement. esp. around 'openess'. This is one big red herring - Adobe pissed Jobs off, this is his revenge, end of story.
Wow, when did HN become all Apple fanboys, all the time? - I thought this was supposed to be a rational argument but it seems as long as Jobs is destroying Flash he's ok with everyone, even while he's locking down the rest of his platform.
> Wow, when did HN become all Apple fanboys, all the 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.
Maybe most people on this thread are just blind. Blind to he "Treacherous Computing" which is applied to the iPhone and the iPad. Blind to the fact that these devices are fully fledged computers. Blind to the fact they wouldn't like to be locked out of their desktop PC in the same way.
Apple pulled out quite an American dream here: they made a sleek product, and were wildly successful. On top of that, they spurred a new gold rush (the App store lottery).
So, Apple looks great on the short term. On the long term, however, they make steps towards a society few would like. (Did you saw the mention to the "PC era" at the end? This is probably the most dangerous thing in the whole post. Yet it went unnoticed.)
The problem is, few think long term (it is dismissed as "idealism"). Most prefer short term (calling it "practicality"). HN is just no exception. (Opinions like "privacy is worthless" or "the BSD licence is more free than the GPL" are both short term-based, for instance.)
"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.
I was expecting Microsoft to try to scapegoat flash for all of there crashing issues a while back. I would have made sense, and it would have been half true. The bottom line is flash is crappy software, it makes the OS look bad, but the OS gets all the blame.
One of the big reasons I use Safari on Snow Leopard is that when Flash crashes, it doesn't take the whole browser with it.
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.
The only kernel panics I've had on my Macs in the past year have happened while loading or watching Flash videos in Safari. Of course this indicates that both Adobe and Apple have critical bugs to fix, since there's no way Flash should be able to take out the OS no matter how buggy it is.
He said developers (at least those at Apple's mercy) are required to use proprietary APIs, because only those have complete feature coverage. He didn't say they would be permitted to use modern programming languages, which is what most of us (other than those at Adobe's mercy) were offended by.
In what sense? This only addressed 3.3.1 indirectly. It made it clear that Flash was a target, but said absolutely nothing about other targets. Assuming everyone is in the clear from this would be a mistake, I think.
Right, but I don't think you would have the same reactive 'developer' lock-in if 3.3.1 was contextualized toward cross-platform right from the beginning.
For example, EA who uses Lua for scripting wouldn't be worried as they likely were due to this two weeks late press release.
Agreed, but the same can't be said for all concerned parties. The Unity3d guys, for example, allow cross-platform development, and many quality games are already using it. I don't think development addresses their issue at all (in fact, it might have made it worse).
There's a distinct irony that they're talking about openness, while at the same time explaining why they're preventing their own users from running software on their purchased devices.
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.
The article/memo says that Apple are waiting for Adobe to present a ported version of flash that works. It says that they promised early 09, late 09, early 2010, late this year...
I've met a lot of people who bought an Android phone because the iPhone 'doesn't support Flash', on the advice of friends or bloggers who complain endlessly about the issue, only to find that Android doesn't support Flash either.
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.
Reminds me, how long it took Apple to move Finder and iTunes to Cocoa? (Answers for those that don't keep score: 10.6 and not yet).
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.
What promise do you mean? Cocoa has existed for 10 years now. It was never going to go away at any point.
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...
Apple had several failed attempts to establish new APIs/OSes in 90's (OpenDoc, Taligent). Why would anyone rational believe, that another project (OSX) is going to be success?
So during introduction of OSX, Apple had to include Carbon there, if they wanted to have ISV support for their new OS. Nobody was going to put significant effort to port entire codebase for new, unproved OS+frameworks+language put out by someone who has history of failures.
And do not forget, that Adobe CS is much larger project than Finder, iTunes and Quicktime together.
Unfortunately, Adobe's track record of delivering solid Mac software dovetails with Apple's other stated issues. The fact that Adobe didn't step up with Creative Suite and Flash Player on the Mac lends credibility to Jobs' concern that Flash-for-native-apps would leave them captive to Adobe's schedule.
> 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.
Apple purposefully wrote Finder in clean Carbon as an example to developers, to prove that it was possible to make good cross-platform software. iTunes was also written very carefully -- and very cleanly -- in Carbon to be cross-platform.
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's true. Its fine on my MBP, but I can't stand it on Windows. It feels sluggish on a quad core processor. How that is even possible I don't know, but it does.
iTunes wasn't written in Carbon to be cross-platform with Windows--if anything, it would be easier to make a Cocoa app cross platform because you just need to port Cocoa, which is basically just OpenStep.
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.)
"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.
All these facts also apply for desktop/latop PC's.
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 have an extension that blocks flash from any page I visit. I can turn it on by clicking the in the little box where the flash content was supposed to appear.
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 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.
I guess by "standards pertaining to the web" Apple means HTML, Javascript (ECMAScript to be precise) and CSS.
What do you mean by "standards pertaining to what software is allowed to run on your computer"?
Less of an explicit standard and more the previous consensus that the company that sells you your computer shouldn't retain control over what kind of legitimate software you can run on it after it's in your possession, based on some self-aggrandizing notion that they know what's best for you better than you do.
That's exactly the mentality that keeps 'users' stupid.
Apple is basically saying: "users are stupid, let's protect them from thinking." Imagine if we said that about our kids: "Our kids don't know how to handle the real world. Let's protect them from having to deal with it." (never mind that most parents do in fact go through this phase).
The reality is that users are just kids who haven't learned how to use computers. Two factors make this hard: most computer software is generally poorly designed (speaking in terms of the number of poorly designed products vs the number of well-designed products), and most software is not designed to teach users how to use it.
Apple is busy buying fish for starving people. The company that teaches users how to fish is the company that will win big.
That's not about keeping users stupid, it's about not making them worry about stuff they should not worry about.
The user may be the world's best neurosurgeon, does that mean that they have to learn about filesystems?
most computer software is generally poorly designed
You are right about this one. But the thing is that Apple does exactly that: offering well designed software.
It's not about buying fish, it's about hiding unneeded complexity. How do you drive the car: press the gas and it goes, press the brakes and it stops. Turn the wheel to the right and it turns to the right. You need zero knowledge about what's going under the hood.
Now take the iPad: tap an app and it launches, press the home button and it stops. Swipe to the right, swipe to the left…
Turn the wheel and it goes where you want it to. But if you want to go to Google Voice, you'll have to take a long detour few people know of. You see, the road to Google Voice hasn't been optimized for your comfort. Or Apple's profit.
"The user may be the world's best neurosurgeon, does that mean that they have to learn about filesystems?"
There's a bit of a divide as to what 'personal' computers are being used for. The original mainstream use was to create/edit files using programs. The modern use is to interact with other people via the internet. So no, the neurosurgeon doesn't have to learn about filesystems because filesystems are mostly becoming irrelevant.
I don't think software should be designed to educate people about the trappings of decades of computer cruft. I think software should be designed so that using the software teaches the user how to use the software. Apple's method (re: iPhone/iPad) seems to be to design software that doesn't invite learning, and at the additional cost of limiting functionality.
Apple's method (re: iPhone/iPad) seems to be to design software that doesn't invite learning
Could you clarify this, perhaps by comparison to something else? Everything in my experience strongly supports the notion that Apple's general approach leads to much greater levels of competency and independence than anything else out there right now.
Packaging systems and their associated programming languages / APIs. Like Android .apk files, Apple .dmg files, Microsoft's .msi. All open and usable by anyone who wants to build one (though some fees may apply.)
Exactly. Apple vs non-Apple (or more generally, things a company controls vs things a company doesn't control) is the only relevant point here. Everything else about open standards and performance woes is just spin.
Point 1 is talking about websites / web applications. Point 5 is talking about native apps. Two different domains entirely.
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.
I do understand your point about using the right tool for the right job, however Apple is arguing both sides. Either cross platform standards are a good thing, or platform specific features are a good thing.
While web applications and native applications are different domains, they are not different enough to mean different reasoning can be used. An end user doesn't really care if something is built using HTML5, flash, or compiled natively. They just care that it looks cool and does cool things.
Either cross platform standards are a good thing, or platform specific features are a good thing.
This is the classic fallacy of exhaustive hypotheses of the 2nd order, a.k.a. "a false dichotomy" or "the fallacy of the excluded middle".
There is a third possibilty: that both are good, and that which is better depends upon the nature of the app one wants to create. This third missing case also happens to be the reality of the situation — there are tradeoffs, and one selects which is better according to the upsides that one desires versus the downsides one is willing to abide.
(Surely you're not claiming that there are no tradeoffs between the native API and web technologies! I can think of several, not the least of which is the limited rate at which innovation can be brought to the web API.)
Cross-platform standards are a good thing for Apple. Getting people to use Apple's platform specific features is a good thing for Apple. Apple does what is good for Apple. There is no contradiction.
Remember, this is not an essay about why everyone else should support Apple's actions. It is an essay about why Apple thinks its actions are good for it.
"Apple does what is good for Apple. There is no contradiction."
I don't even think Jobs tried to hide this very well. It's pretty clear he is arguing from the perspective of what is best for Apple, and clearly and coherently explaining why.
Point 1 states that ubiquitous Flash co-opts the rate of advancement of the web.
E.g. You can't effectively differentiate, compete and move everything forward by supporting, say, h264 because Flash is already everywhere.
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?
> [Jobs:] "we strongly believe that all standards pertaining to the web should be open."
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?
A reference implementation is a good test suite but a poor substitute for a standard. It's huge and you can't just sit down and read it, you have to simulate it in your head to really understand what it would allow or demand. (This is also an awful problem with the HTML5 spec.)
On the contrary, its a written standard that you "have to simulate in your head". If you have an implementation, you can simply run the code and see what it does!
Is python really a 'standard'? Python's had trouble lately with non-mainline implementations because the grammar keeps changing. There's no standards document laying out how the language should behave, in the sense of 'Jython is compatible with the Python language 2.5'; rather, third-party implementations duplicate features and functionality from CPython based off the PEP they're defined in.
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.
In an important sense I think it is. If I write a program in Python I can be reasonably sure it will run on someone else's system (obviously I have to take into account different Python versions, different underlying OS, etc). If I write a program in C++ or Scheme, what assurances of portability do I have if someone else's system is running a different implementation, with different libraries available, and different underlying behaviour in edge cases.
> rather, third-party implementations duplicate features and functionality from CPython based off the PEP they're defined in.
Yes; CPython is the standard. It's better if the standard is a program rather than a document, because you can run a program and find out what it does, but a document just sits there and does nothing (and may be hard to understand or ambiguous; the spec for Algol 68 comes to mind here).
> Python isn't used 'on the web', it's used on the backend to generate web pages
It is used as an http client as well as a server.
> Are you suggesting that Apple should include a Python interpreter in WebKit?
No, I'm suggesting that Apple should open up their platforms and allow people who have bought iPhones and iPads to run software of their own choosing on them; I'm sure someone would port Python fairly quickly.
> The simple answer would be 'because Python is not a language that is used in client-side scripting anywhere on the web'.
That's factually inaccurate; I personally have written code in Python that acts as a web client. As have some of my friends.
> No other browser supports it, and even if they did it wouldn't be widely used.
You seem to be under the misapprehension that client-side web programming must involve running inside a graphical web browser. This is not the case. Ever heard of wget? Or scraping?
> 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.
Yes it does. For example, I might want to write a program to cache certain web pages so I can read them even if I'm in an area with poor wifi and 3G access. And I might want to write that program in Python.
The sad thing is Steve, along with many others, totally, entirely believes that selling sugar-coated digital handcuffs is changing the world for the better.
"why can't I write web software in Python for the iPhone and iPad?"
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.
If Jobs had said "We strongly believe that you should be able to develop on the iPad and iPhone using all open standards pertaining to the web," you would have a point. Your logic is all twisty.
"We only want to support open standards" does not imply "we want to support all open standards."
"If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?"
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.
521 comments
[ 3.3 ms ] story [ 335 ms ] threadAlso, 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?
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.
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/
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.
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)?
Jobs' point talks about this; the issue is that if Flash CS5 supported what the iPhone can do today, who's to say when it will support what iPhone OS 4 can do tomorrow? Will they update Flash on Apple's schedule, or their own? Or at all?
For one example, look at GameCenter, Apple's new XBox Live-type service. Would Flash support it? Would Adobe go to the trouble of adding full support for GameCenter to their Flash runtime, so that games written in Flash could make use of that feature?
That wouldn't make any sense, because then people would have to write a different Flash app for the iPhone than for Android; either developers use GameCenter on iPhone and nothing on Android, or GameCenter on iPhone and their own solution on Android.
My suspicion is that Adobe wouldn't implement it (because it's a lot of work to just support one platform) or wouldn't implement it well (because they just don't really care), and that if it were available developers wouldn't use it (because it would only work on one platform anyway). This leads to a worsening of the overall experience, as the flood of quickly and cheaply ported Flash apps into the App Store dilutes the value that's there.
Perhaps Adobe would add GameCenter support, but that might be a new feature for CS6, which might come out (for example) August 2011, after Apple's released iPhone OS 5, with more new features Adobe hasn't had time to implement.
Developers using Flash would have a substandard environment, and would produce substandard apps, assuming they even cared at all about doing things right. That's what Apple's trying to prevent.
[Edit: typo, point 6, not point 5]
I think this is a red herring, though. Apple doesn't reject apps for not taking full advantage of the system. People can and will make Objective C apps that don't use GameCenter (or iAds, or the accelerometer/camera). If Apple was most concerned about GameCenter adoption, why not leave out the 3.3.1 change and instead mandate that all games must use GameCenter? That would guarantee Adobe would include it in Flash and then nobody -- not even the native developers -- could produce a "substandard" app.
But even if Adobe made a version of Flash that could target every aspect of the iPhone platform perfectly (maybe by open-sourcing the compiler and allowing Objective C extensions), Apple would find a way to reject it. It's not just a matter of making it easy to port things to the iPhone... it's also a matter of making it hard to port away from the iPhone. Apple currently has the majority platform, and they want to make the choice between platforms expensive, so that developers choose the iPhone first and -- as much as possible -- exclusively.
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 also think he is one of the most levelheaded apple-centric websites out there. Gruber talks a lot about premium products (not just apple) and their success in various markets -- DF is like a premium tech/apple/good taste blogzine and I imagine that his style appeals to a lot of people at Apple, whether they reach out to him or not (and "legally" or not)
The site quality degrades significantly, however, when he latches onto a "scandal", whether it be about stolen iphones or illegitimate wi-fi security claims.
With his recent ad nauseum stolen phone coverage, DF has felt more like an overwrought Entertainment Tonight scandal episode.
I've found the best Gruber reading algorithm is:
if (post < 2 paragraphs) { worth bookmarking } else { mark as read }
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?
His point is that on the mobile web, HTML5 is open, not Flash.
He's trying to come off as an 'open crusader for the web against Adobe' because 'Adobe is not open,' but on the other hand shoving Adobe (and others) off of the i{Phone,Pad} platform because it's not part of Apple's own 'not open' environment. I hate Adobe as much as the next person, but let's not dress Steve Jobs up as a knight in shining armour just because he also doesn't like Adobe.
Neither stated nor implied. The logic doesn't "match up" because it's a separate issue, addressed with different arguments:
"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."
He then goes on about third-party middleware, e.g.:
"We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers."
Jobs does not make the openness argument in reference to Apple's proprietary platform at all. It seems to me that you have to ignore the last third of the article to think that he was.
He's trying to come off as an 'open crusader for the web against Adobe'
Is Jobs lying when he says Apple supports open web standards?
I think one of the main reasons they published this was so they could respond to “iPhone doesn’t even have Flash.”
>"...we leaked the Flash essay to our Chief Apologist John Gruber and told him to start whipping up some buzz on Twitter about it, and he followed orders [http://twitter.com/gruber/status/12988151829]."
Consider too that Steve Jobs replied to an email asking about the restriction of apps to C* with a link to a Gruber post [http://www.taoeffect.com/blog/2010/04/steve-jobs-response-on...].
which was generally interpreted to mean the SCOTUS decided corporations are people.
"This legal fiction does not mean these entities are human beings, but rather means that the law allows them to act as persons for certain limited purposes..." Emphasis mine.
This stuff isn't even on topic, but when people insist on insulting my intelligence with snide pseudo-logical comments, I will insist on correcting them.
Beyond that, I find it incredibly silly that you find your intelligence so easily insulted. Perhaps it's time to take a chill pill.
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.
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...
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.
True, but Flash is a closed standard with a closed implementation. Adobe likes to claim it is open - but the fact remains that not only is it impossible to write an open implementation of their incomplete spec, but Adobe has actively sought to keep core components proprietary even in spec and prevent competing implementations.
That's the part that irks me about Adobe's role in this issue - they're playing themselves and Flash off as this open savior of the web when they've actively been evil in that regard. If you're closed, great, do your thing; if you're open, then actually open your spec - don't open part of it and then go after the other half with lawyers.
Apple is calling the kettle black with the proprietary argument. We can drill down to specific layers but the effects are the same to the developer coding on that layer.
Again, it isn't a case of one vs. another. I wish we didn't need to take a side and finally come to a conclusion that both are good in their own ways. Evolution is key.
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.
We do other things on the iPhone. I don't want to make the choice between watching a video and then restricting my own usage just so my phone has enough juice to make a call. I'd rather watch videos and use my phone, and the more power efficient everything is, the more the user can do this.
To put it in perspective, if Apple's numbers are to be believed, running Flash alone doubles the power consumption of the device. That's insane.
> "With that I answer: a:hover {}"
a:hover is no longer (it certainly used to be) a common tool used for site navigation. Which is to say, rollover dropdown menus are out like parachute pants - it's a non-issue on the web today. Just about every site works with "clicks", which is Apple's primary form of interaction with websites on touch devices.
The most compelling argument made though we've already been aware of for some time: cross-platform toolkits encourage lowest common denominator design. In Apple's world of pixel-perfect mockups and obsessive attention to detail this is abhorrent - and I'm inclined to agree. The iPhone's chief strength is its remarkably polished user interface - which for the most part remains true across its 3rd party app sphere, thanks in no small part to Apple's obsessive HID enforcement.
A Flash-compiled-to-iPhone app destroys this in the same way that a Linux Qt app hastily ported to Windows is the same.
This is precisely what I am talking about. We slice the pear in the middle and somehow end up choosing one side over another. True, a:hover is a deprecated form of menu control in HTML, but it is in Flash, too. Again, how you use the tool. Damning an entire developer base based on miscreant use is not a compelling argument. Sorry, but it isn't.
That's being a bit generous in favor of Adobe - the majority of the Flash development sphere is practically what one would consider "miscreant use".
Here's my impression of the different sorts of Flash use, based on my journeys on the web:
- Videos/Audio: Easily replaced by HTML5, and better too. More readily hardware accelerated, behaves as part of the core browser instead of a hijacking addon (e.g., Ctrl+T while focused on a Flash applet = no new tab), and much better battery life on mobiles.
- Crappy restaurant websites and other crimes against humanity: These should just die, and HTML5 will hopefully inspire better design ethic than this. I don't buy the argument that hovering is no longer common used as a critical navigation feature in Flash - I see it everywhere, especially for crappy restaurant websites. Flash is also impossible to crawl which reduces the usefulness of the web overall. Hell, you can't even LINK to content in a Flash site. IMHO the "full Flash site" (as opposed to Flash being a component of a page) needs to die a fiery, painful death.
- Games: The only place where Adobe has even a remotely legitimate claim that Flash is an empowering product rather than a crutch.
When I think of Flash these keywords come to mind: slow, buggy, crashy, badly designed, usability nightmare, gimmicky, unprofessional, and just plain bad.
The vast majority of websites in general are poor. It would be no surprise to see that the majority of Flash sites would also be poor. Both sides have exceptions, though.
> Videos/Audio: Easily replaced by HTML5, and better too. More readily hardware accelerated, behaves as part of the core browser instead of a hijacking addon (e.g., Ctrl+T while focused on a Flash applet = no new tab), and much better battery life on mobiles.
I don't disagree. I am grateful that HTML5 can handle this, but it took a "standards" committee several years to roll this into a questionably viable model. The immediate fanfare for the slow implementation raises my eyebrow a bit. We're all happy about having something we've needed for years. The company that created the fold so we could have sites like YouTube today? The devil.
> - Crappy restaurant websites and other crimes against humanity: These should just die, and HTML5 will hopefully inspire better design ethic than this.
It won't. Cheese is forever. If HTML5 can accomplish cheese, people will create cheese. We're all hopeful, but the human condition comes into play.
Example: We just wrapped up Restaurant Week here in Seattle where a bunch of local establishments offered up prix-fixe specials for a couple of weeks. The website for this event was done up all in Flash, and made it impossible to crawl for a search engine, or even to link or bookmark a particular restaurant for later retrieval.
What did we exchange for this cheese and gimmicky design? Everything.
There's no regulating for good taste - you're right, most websites in general are poor. They, however, are still accessible - neon green text on black background with an annoying MIDI track in the background is still information that:
- you can link to
- you can bookmark
- you can copy and paste
- you can search for in-browser (doubly important if the website fails at layout, e.g. most Flash sites!)
- you can search for on Google/Bing
Those are pretty important.
I agree that if you don't follow the proper protocol you will end up with an undesirable site. I can't argue that Flash == HTML in terms of accessibility. There are ways within Flash to harness some accessibility but it is up to the developer to implement these. An informational site in Flash is a bad choice. I would never suggest the use of Flash for broad use. A fun site (like http://www.myspace.com/fanvideo) is more appropriate.
> - you can link to
> - you can bookmark
Named-anchors and proper implementation (same as AJAX RIA)
> - you can copy and paste
"Selectable text" is an option in any Flash text field.
> - you can search for in-browser (doubly important if the website fails at layout, e.g. most Flash sites!)
> - you can search for on Google/Bing
Flash exports text within to the container. Google also can search SWF.
> Those are pretty important.
Agree.
Is copying/pasting it to the OS (or app) pasteboard an option? If so, will it use the same UI as native apps have? Or will it force a funky widget of its own in the middle of an app that otherwise looks like the rest of the OS?
I'm only asking because I've never had copy/paste from flash work well on the desktop.
So if you're going to have a Flash-y data visualization component, say, it's easiest and most natural to have the controls for it (buttons adjusting parameters, display of those parameters, navigational controls) made in Flash too -- just expand the content rectangle of your Flash component out and drop in the controls.
In HTML5, the 'environment' of the <canvas> object is that of the surrounding HTML page. Adding buttons and other controls around the edge of your visualizer is most straightforwardly done by using "native" HTML <button>s and other such elements.
So it would be surprising to see <canvas>-using pages end up being done in a way where the <canvas> is essentially the whole page — it would require more programmer effort — whereas in Flash that's by far the easiest way to do it.
I will be the first to admit there are a lot of poorly designed Flash sites, but from an interactive design perspective, Flash still gives you the most freedom to create more innovative ways for user interaction. IMO this isn't something that should be dismissed so quickly.
// note: Deleted this comment and readded it, since I originally replied to the wrong comment. Whoopsies.
What's your battery life playing an intensive game or using a processor intensive app?
If the iPhone can play video for 10 hours, that means a 2 hour movie brings my battery life to 80%.
If the iPhone could play Flash video for 5 hours and I watch a 2 hour movie, my battery life is reduced to 60%.
Given other things I do with my phone battery life is important beyond "how much video can I watch?" If the repercussions of watching a two-hour video are so much less severe, I am more likely to watch the video in question knowing I won't wind up with a dead phone after a half day of traveling.
If a phone can watch 4 1/2 hours of flash in software before the battery is drained this means that watching a two hour movie will eat half of my battery. By comparison I can watch a two hour movie using hardware decoding and still have 80% of my battery left.
In both cases, he's talking about H.264. An end user might not even realize there's a difference. But some encoders produce H.264 that can hardware decode, and some encoders do not. Not all H.264 is created equal, and this is one area that really matters.
You want an H.264 encoder that produces hardware decoder compatible video.
I would argue that that's a reasonable point to make. Steve Jobs doesn't have a vested interest in seeing Flash die, he has a vested interest in seeing the iPhone platform succeed. If he saw any way Flash could help that, I'm sure he'd be all for it, but he's seen how Adobe's behaved in the past (late with PPC versions, late with OS X versions, late with Intel versions, late with 64-bit versions, crashy Flash, slow Flash, etc.), and he has no interest in subjecting the iPhone to the same issues that the Mac platform has had to endure at the hands of a slow-moving corporation who has little interest in being a good citizen.
I would argue that Jobs is 'neutral' in the sense that he's not supporting anyone else's agenda. He's made his choice based on the facts before him, and while you may not agree with how he got there, I would say that he got there from an initial position of neutrality.
No, but you might watch a film and a couple of music videos and then the battery is getting awfully low. My iPhone lasts a day on one charge (with heavy web use & lots of calls). Halving that with a 2 hour film could be a big problem.
If there are issues with Flash, it will hurt every company using Flash, and there is nothing those companies can do about it other than bug Adobe to fix it or drop Flash support.
The argument just suffers from the fallacy of composition. The standoff motif is getting old. We're talking about software, not cold war against another country.
Apple doesn't want you to notice Steve behind the curtain. With Adobe we tend to pick and choose what we agree with and ignore the points that don't support our bias.
To say Flash is proprietary, possibly poorly executed format is a fair thing to say. To say it is completely without merit and has no place is a fallacy. HTML5 video is widely supported today. Flash might be a delivery vehicle for another unrealized idea tomorrow.
And the "death to the plugin arch" circle-jerk logic is almost intolerable. Only create within the confines of the parent layer's imaginative capacity? Sounds more closed than SWF.
kevinh said it best: http://news.ycombinator.com/item?id=1305322
Support to my assertions: http://news.ycombinator.com/item?id=1304353
But the fact that the main use for Flash on the web these days, beside video and unusable websites, are animated flash ads that use up 40% of my much more powerful Macbook Pro's CPU time means I'm in no hurry to have flash on the phone, openness dogma be damned. When Jobs limits my general purpose computers, I'll be angry, but until then, I'm glad he's making the tough design decisions instead of just letting the device be a free for all.
Who says they'll progress at the same rate? That's ridiculous. Flash is at least 10 years old and has been in extremely heavy use, so it's likely plateaued in terms of performance on most platforms. Canvas (and the rendering engines for it) are very new by comparison.
In my opinion, this is moot point. Annoying ads aren't going to be limited to Flash. HTML5 ads aren't going to be more fun.
"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.
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.
Here's all the insight I can muster: non-technical people do not have an accurate mental model of how the computer works. They have a semi-accurate mental model of the steps they take to do routine things on the computer: I click this thing, then I type in this thing, then I click this thing, then the magic happens. Deviations from that routine will almost certainly cause task failure.
Example: you know how Macs have the menu bar at the top of the screen rather than at the top of the window? I have at least one customer whose mental model is that the screen ends where stuff stops getting painted to it, and then that grey gunk above it is scary computer stuff. It took a day to talk her through finding the Help menu -- "It says Help, at the top right of your screen" because she was looking under the grey gunk bar and literally did not notice it until I returned the screenshot she had taken with a big red arrow on it.
All the programs and data in your computer is in files and folders, even windows is just a bunch of files. You understand this and everything else is far easier to understand.
My comment was only intended to be about desktop computers.
http://blogs.computerworld.com/sharky
Is this what you're looking for?
* 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.
I'm willing to bet that there are many, many more games and entertainment apps written in Flash alone than there are on the app store.
Is that a position for or against keeping flash off the iPhone, iPod and iPad?
* "Adobe only wants cross-platform apps, not good apps; generic subjective bullshit." Alright, so point to a single Adobe Air app, for example, that looks & behaves natively.
* "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." Did you read the article? "the video on almost all Flash websites currently requires an older generation decoder that is not implemented in mobile chips and must be run in software" But hey, easy to prove wrong. Point to one mobile phone with Flash (not flash lite) support that has decent battery life. ... Oh, wait... Well, one mobile phone that has Flash support period? No?
* We're talking about mobile applications like games being good enough, not desktop applications using native components. Please don't stray the conversation. Otherwise it's as dumb as me coming and saying iTunes should not be running on Windows.
* "Comparing video decompression" - The article (wishfully) ignores the fact that 'older' (flv) video formats are transcoded on the fly to a format that can be played by hardware. This technology has been present in the player for a while - ever since Flash Lite. Requires more CPU, but it is not the same as full software playback. Also, asking for mobile phones with battery life benchmarks is bogus, since it's still not officially released, so no proof can exist. It's like saying the next OS X is inherently shit just because you haven't seen it yet.
* "We're talking about mobile applications like games being good enough, not applications using native components." Except we're not. That whole section was discussing specifically 3.3.1 and why they aren't going to allow cross-compiled apps to run on the iPhone.
* "Comparing video decompression" Oh, that's not gonna have an effect on battery life, nooooo. And so what, you're saying Apple should have included something that isn't even released yet in the iPhone?
I create full, rich Flash content with the Flex SDK, and has been doing it for a while. I don't compile with the Flash IDE. Not because I can't or because it's paid, but because using Flex SDK is better.
The Objective-C compiler is fully GPL'd, so that's definitely open.
Objective-C, though, depends on a runtime, and Apple's runtime is proprietary. While the GNU project has their Objective-C runtime, it performs markedly worse, and misses a lot of features that are available in Apple's version, including blocks, GCD-style multithreading, garbage collection, fast iterators, and more.
(I happen to like .net, by the way, I just think it's closed.)
http://en.wikipedia.org/wiki/N900
There are multiple implementations and Apple can tweak how it runs. It is open enough for their purposes.
> Objective+C++ is not open.
He never said it was. He said Apple has several proprietary products but believed the web should be 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.
Yet Adobe has the only full implementation of Flash and if someone else were to try and implement it, it would always be behind the official release (just like Moonlight). And Adobe got lawyer-happy when open source guys reversed the streaming protocol in Flash so nobody is eager to try this anyways.
> Saying Adobe postponed the release dates of Flash 10.1 for smartphones: bullshit.
The fact is Adobe has been boasting about Flash on smartphones since Android first came out and there have been no working devices out except Maemo which totally sucked in every way Jobs described.
There was spin in this article just like his DRM article but I wouldn't qualify anything as FUD.
> He never said it was True. But if he wants to make this conversation an open-versus-closed conversation, I fully expect to compare the platforms in general instead of just a tiny bit of it.
> There was spin in this article just like his DRM article but I wouldn't qualify anything as FUD. Saying Adobe postponed the release date is a lie. Saying they said it would be released before is also a lie, since Adobe never announced a date for public release (it was available for devs as beta). Maybe it's not your definition of FUD, but it's still a lie. I don't expect the CEO of a company this big to be repeating this bullshit.
http://www.webkitchen.be/2010/04/19/flash-player-10-1-for-an...
Is he going to post a correction? Somehow, I don't think so.
But does anyone do this? I see no usable reimplementations of Flash Player, and the spec cannot possibly be complete. H.264 is a real standard with a conformance suite and bit-accuracy, and no scripting languages or multiple versions with different bugs to reimplement.
Flash also includes VP6 and RTMPE, which are proprietary and must be reverse-engineered.
This is clearly not true, though. The only implementation is closed and fully controlled by Adobe. Maybe it is more open in spirit but that doesn't mean crap in practical terms. In fact Silverlight is more open (in practical terms) than flash since at least there is a usable open source project. There exists right now a full featured and heavily developed open source h.264 decoder. You can't say the same for Flash. It is either Adobe Flash or spend a bazillion dollars trying to re-implement open flash that doesn't exist yet Flash. That's a non-starter.
Your post sounds like an Adobe apologist making stuff up.
Running a beta of a Flash Plugin that kinda supports hardware decoding but still crashes occasionally on a Windows PC is much different than running a production quality release of a hardware accelerated Flash plugin on a mobile device.
I'm not making stuff up. I actually have my history of gripes with Adobe, as if I've been working with their software for more than a decade. If anything, I'm just enraged that this article is making stuff up, and I don't like people taking ideology and fundamentalism into a discussion that should be tech-based only.
http://blogs.adobe.com/penguin.swf/2008/05/flash_uses_the_gp...
Also, Flash does not use any of the multiple hardware decode APIs on linux yet due to it needing readback support which apparently they don't have yet.
http://blogs.adobe.com/penguin.swf/2010/01/solving_different...
'Welcome to the Flash Player preview release, code-named “Gala,” which introduces support for H.264 video hardware decoding on Mac OS X 10.6.3, the most recent release of Mac OS X Snow Leopard... The hardware acceleration functionality in the Gala preview release of Flash Player is expected to be included in an update following the release of Flash Player 10.1.'
Hardware acceleration for h.264 decoding was introduced in the Windows betas of Flash 10.1 in October 2009. It hasn't shipped yet, and probably won't for another 6 months.
We should not NEED flash for reproducing video on the Web, no matter what codec or platform are involved.
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.
Show me a better-integrated set of editors, compilers and (most important) debugging/performance analysis tools on any platform.
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.)
I'm leery of their capriciousness. They obviously have no qualms about changing their terms of service on a whim, giving folks only weeks to comply, and not accepting any compromise. That is simply not the type of folk I like to do business with.
This is actually the biggest part of Job's argument that I don't buy. If their intent was actually to stop crap from being produced, they would just reject apps that are crap from the App Store as they do now.
Still, 3.3.1 is poorly worded, so it's not a great solution.
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.
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.
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.
I'm not in any way arguing that IE6 isn't a PITA. I suppose its the "holding back" part of it that I don't understand.
I guess what I was saying is give developers some credit. We've been working around a lot tougher issues than IE6 for a long time. Its a hurdle, not a brick wall.
We support IE6 wherever reasonable, but if you're building something that needs <canvas>, I'd just do it. What was the feature in this case?
Canvas was to replace a timeline view of comments on blog posts, felt that not enough users would be able to see it to include it on the design.
I'd guess that worldwide there are plenty of neat little things that could be used that aren't because of trying to support IE.
But there's some things that just can't reasonably be done in IE6, and I think its OK to drop support in those cases instead of canning the feature entirely.
And IE6 still represents about 20% of browsers on the Web (http://gs.statcounter.com/#browser_version-ww-monthly-200807...). So a business owner hiring someone to design a public-facing corporate Web site doesn’t want to hear the designer dismiss one out of every five potential customers.
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.
Just say it's a business decision, Apple. Stop pretending you have the consumer in mind.
He's making a very reasonable point: Lots of web UI decisions have to be re-evaluated within the scope of touch-based interfaces. Since we're rewriting, why use flash when open standards exist?
I feel like this is the #1 argument that flash-defenders dance around. What justification does Flash, as it stands currently, have to exist on the web in the face of HTML5? What does it bring to the table that HTML5 isn't busy providing a more compatible and open implementation for?
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?
That’s the argument.
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)
edit: why are you so angry? Apple are providing a beautiful product at a great price to the public. If it doesn't have a feature you want, buy another product that supports it. I never understood being angry at a company because of not putting effort into what you think they should be putting effort into.
Everyone includes the millions of flash sites and flash developers out there that do fantastic work.
Flash isn't a feature it's as ingrained a part of the web as HTML is and surely much more than HTML5.
I like apples products I fully accept that they don't want to put flash on there even though I disagree.
But his answer isn't an answer, it's not a counter argument as many of those problems he states aren't really problems that are flash related.
This is why: http://en.wikipedia.org/wiki/Straw_man
Flash don't care. You are not forced to use rollovers in flash you can but you are not forced to do it.
Drag and drop is a historical mouse feature. You have that on the iPad too. So apples touch is not more revolutionary than it still uses these.
Every other mouse metaphor is in use besides rollover.
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.
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.
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.
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.
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.
Apple pulled out quite an American dream here: they made a sleek product, and were wildly successful. On top of that, they spurred a new gold rush (the App store lottery).
So, Apple looks great on the short term. On the long term, however, they make steps towards a society few would like. (Did you saw the mention to the "PC era" at the end? This is probably the most dangerous thing in the whole post. Yet it went unnoticed.)
The problem is, few think long term (it is dismissed as "idealism"). Most prefer short term (calling it "practicality"). HN is just no exception. (Opinions like "privacy is worthless" or "the BSD licence is more free than the GPL" are both short term-based, for instance.)
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.
http://youtube.com/html5
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.
For example, EA who uses Lua for scripting wouldn't be worried as they likely were due to this two weeks late press release.
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.
"...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...
So during introduction of OSX, Apple had to include Carbon there, if they wanted to have ISV support for their new OS. Nobody was going to put significant effort to port entire codebase for new, unproved OS+frameworks+language put out by someone who has history of failures.
And do not forget, that Adobe CS is much larger project than Finder, iTunes and Quicktime together.
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.
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.)
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.
If I remember correctly, iTunes isn't Cocoa based yet either.
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 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.
Apple is basically saying: "users are stupid, let's protect them from thinking." Imagine if we said that about our kids: "Our kids don't know how to handle the real world. Let's protect them from having to deal with it." (never mind that most parents do in fact go through this phase).
The reality is that users are just kids who haven't learned how to use computers. Two factors make this hard: most computer software is generally poorly designed (speaking in terms of the number of poorly designed products vs the number of well-designed products), and most software is not designed to teach users how to use it.
Apple is busy buying fish for starving people. The company that teaches users how to fish is the company that will win big.
There's a bit of a divide as to what 'personal' computers are being used for. The original mainstream use was to create/edit files using programs. The modern use is to interact with other people via the internet. So no, the neurosurgeon doesn't have to learn about filesystems because filesystems are mostly becoming irrelevant.
I don't think software should be designed to educate people about the trappings of decades of computer cruft. I think software should be designed so that using the software teaches the user how to use the software. Apple's method (re: iPhone/iPad) seems to be to design software that doesn't invite learning, and at the additional cost of limiting functionality.
Could you clarify this, perhaps by comparison to something else? Everything in my experience strongly supports the notion that Apple's general approach leads to much greater levels of competency and independence than anything else out there right now.
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.
Point 1 is in reference to a non-Apple product
Point 5 is in reference to an Apple product
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.
While web applications and native applications are different domains, they are not different enough to mean different reasoning can be used. An end user doesn't really care if something is built using HTML5, flash, or compiled natively. They just care that it looks cool and does cool things.
This is the classic fallacy of exhaustive hypotheses of the 2nd order, a.k.a. "a false dichotomy" or "the fallacy of the excluded middle".
There is a third possibilty: that both are good, and that which is better depends upon the nature of the app one wants to create. This third missing case also happens to be the reality of the situation — there are tradeoffs, and one selects which is better according to the upsides that one desires versus the downsides one is willing to abide.
(Surely you're not claiming that there are no tradeoffs between the native API and web technologies! I can think of several, not the least of which is the limited rate at which innovation can be brought to the web API.)
Remember, this is not an essay about why everyone else should support Apple's actions. It is an essay about why Apple thinks its actions are good for it.
Hidden in that of course is the lack of concern for what's good for the consumer.
I don't even think Jobs tried to hide this very well. It's pretty clear he is arguing from the perspective of what is best for Apple, and clearly and coherently explaining why.
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?
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?
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.
In an important sense I think it is. If I write a program in Python I can be reasonably sure it will run on someone else's system (obviously I have to take into account different Python versions, different underlying OS, etc). If I write a program in C++ or Scheme, what assurances of portability do I have if someone else's system is running a different implementation, with different libraries available, and different underlying behaviour in edge cases.
> rather, third-party implementations duplicate features and functionality from CPython based off the PEP they're defined in.
Yes; CPython is the standard. It's better if the standard is a program rather than a document, because you can run a program and find out what it does, but a document just sits there and does nothing (and may be hard to understand or ambiguous; the spec for Algol 68 comes to mind here).
> Python isn't used 'on the web', it's used on the backend to generate web pages
It is used as an http client as well as a server.
> Are you suggesting that Apple should include a Python interpreter in WebKit?
No, I'm suggesting that Apple should open up their platforms and allow people who have bought iPhones and iPads to run software of their own choosing on them; I'm sure someone would port Python fairly quickly.
> The simple answer would be 'because Python is not a language that is used in client-side scripting anywhere on the web'.
That's factually inaccurate; I personally have written code in Python that acts as a web client. As have some of my friends.
> No other browser supports it, and even if they did it wouldn't be widely used.
You seem to be under the misapprehension that client-side web programming must involve running inside a graphical web browser. This is not the case. Ever heard of wget? Or scraping?
> 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.
Yes it does. For example, I might want to write a program to cache certain web pages so I can read them even if I'm in an area with poor wifi and 3G access. And I might want to write that program in Python.
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:
http://cl.ly/k0t
Apple is putting effort into make web apps first-class citizens on their devices.
"We only want to support open standards" does not imply "we want to support all open standards."
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.