And they all agreed it was the merriest Christmas ever

God rest ye merry gentlemen
Let nothing you dismay
Remember Flash and Java won’t run by Christmas day

No Java, Flash for iPhone this Christmas

Oh, tidings of comfort and joy,
COMFORT AND JOY!
Oh, tidings of comfort and joy.

Ah, InfoWorld’s Paul Krill. You’ve got it backwards.

But no one seems to know why Flash and Java aren’t available for the iPhone.

Ooh! Ooh! Pick the Macalope! Pick the Macalope!

Uh, because they blow?

There has been some conjecture that the intermediary nature of Flash and Java, which lets applications run in the Flash Player and on the Java Virtual Machine, might stifle Apple’s control over what goes on the iPhone. But an industry analyst offered a less cynical theory:

C’mon, Paul. Bring it on home.

“Part of the problem, as I understand it, is the ARM processor” that powers the iPhone, says Rob Enderle, principal analyst at the Enderle Group.

YES!

WE HAVE ENDERLE. REPEAT: WE HAVE ENDERLE.

Although the processor has the advantage of low power consumption, it also has slow performance. As a result, “neither Flash nor Java work on it very well,” Enderle says.

Rob is an obfuscation machine.

An ARM representative declined to comment on the iPhone but did note that the ARM processor can run Flash.

An ARM representative declined to comment on the iPhone but did note that Rob Enderle was dropped a lot as an infant.

iPhone developer Christopher Allen, founder of the iPhoneWebDev community, concurs that full Flash support on the iPhone “probably is beyond what the processor can do.” He notes that the Flash Lite runs on less powerful processors than what the iPhone uses but on those slower processors does not run most Web content.

But Allen believes that the iPhone could run Java today.

And here we have the real issue. Sure, the iPhone could run Flash, but — particularly given the already unoptimized state of Flash on OS X — it would probably have to run some stripped-down, crappier version of Flash.

Wait, there’s a crappier version of Flash? Dear god.

And Java? Well, Java’s just more about security, marketing and asthetics.

But who’s the loser here? Apple’s customers? The ones lining up to buy iPhones? Somebody should alert them because they don’t seem to know.

17 thoughts on “And they all agreed it was the merriest Christmas ever”

  1. You know, I have not missed flash on my iPhone, no not one little bit. In fact, I really hate flash any time I have to deal with it. It’s slow and crappy. It represents everything that is wrong with the modern world wide web. I sure hope as we move ahead with AJAX, and beautiful HTML and CSS, that the future of the internet does not include flash!

    Nice article Macalope, as always (hey, it’s always fun when Enderle is in the mix anyway right?).

  2. I believe it was Gruber who first said, “The lack of flash on the iPhone is a feature.” Great take down as usual, Macalope. Am I the only one who read the headline (“No Java, Flash for iPhone this Christmas”) and thought it was going to be an article about how Apple is giving us a wonderful Christmas present by keeping that garbage off of our iPhones?

  3. [quote]An ARM representative declined to comment on the iPhone but did note that Rob Enderle was dropped a lot as an infant.[/quote]

    That explains sooooo much

  4. My only christmas wish is that all tech reporting be written by the macalope, or one of his prodigous offspring!!11 It’s guys like Rob Enderle and Paul Thurrott who put the “anal” in “analyst”, like clowns who somehow got men in suits for an audience instead of the invited 6-year olds.

  5. ” particularly given the already unoptimized state of Flash on OS X” – I agree with this completely. I’ve got a MacBook Pro that howls on almost all sites that have flash.

    The last thing I need is my iPod Touch burning my hand as it tries to chug through a flash video.

  6. @Church of Apple
    Pandora is written in OpenLaszlo which runs in the Flash player

    Not flamebaiting here, but what precisely blows about Flash? I don’t mean the implementation – no one likes annoying ads or “click to skip intro” – but the technology itself?

    Being able to watch video in the browser seems to appeal to some people. File transfer is a bit nicer when you can see the progress of the upload. Some online games work well in 3D. There are ways to do these things without Flash but not nearly as easily.

    Put another way, somebody should alert the 98% of people who have it installed on their machines that it sucks / blows because they don’t seem to know.

  7. @Oliver,

    Did you read the other comments? Flash under Adobe has become a slow resource-hungry, buggy nightmare. It’s a misbegotten piece of detritus. It renders browsers into Norwegian Blue Parrots.

    Flash can sure do a lot but the implementation of the technology — not just the sad flashy websites and stupid ads that use it — sucks donkey balls (and not in a loving sensual way either).

  8. @Huxley
    Perhaps the fact that I responded to another poster would give some indication as to whether I had read any of the comments.

    Moving on, and accepting that I lack your expertise on how donkeys like to have their balls sucked, all that seems to be being said is that Flash doesn’t perform well under OS X… which makes me wonder whether maybe Apple has at least some share of the blame?

    You say that it’s a slow resource-hungry, buggy nightmare but right now I’ve got Eclipse, Flash CS4, Traktor, Path Finder and NetNewsWire running concurrently on my MBP and I’m getting around 58 FPS (60 FPS being the browser-imposed limit) on a fairly complex RIA I’m developing. No howling, no parrot impressions… just decent solid performance. None of my Mac-based clients seem to have the issues you speak of either.

    Could it be that you’re mistaking the performance of badly-written applications for the quality of the technoilogy as a whole?

  9. @Oliver
    True, a lot of Flash’s bad rep comes from banner ads and animations by people who aren’t exactly high-end developers, nor should they need to be. But also consider the system. Like any good dev, you’ve got a high-end workstation, that can crunch the numbers with ease, because who wants to wait on compiling?

    Imagine that flash playing, but first, let’s remove one of the cores. And remove half it’s power (ARM is 32bit, not 64 bit), and underclock it down to a fifth of its CPU (The iphone ARM is less than 500Mhz (iPod touch, 2nd gen reaches a blazing fast 600Mhz)). In all fairness, this is probably still faster than the ARM, simply because of the fancy tricks Intel does.

    Fair enough, you know someone with an 8-year-old iBook which is comparable to the iPhone and they can play flash on their computers. At least, the old flashes. The new stuff runs slow, but it’s theoretically possible. Now, let’s further amend that macbook pro. You’ve probably got it maxed at 4GB RAM. Obviously, the 16GB of the iPhone is treated as RAM. No, that’s all hard drive. The iPhone has 128MB.

    Okay, you say, so it’s only 128MB. It might cause some thrashing at times, but it’s doable. But that’s 128MB total. Your app only gets 42MB or so of it, if you’re lucky. If it’s an iPhone, and Safari or the phone’s doing work, that number can get into the low 30s.

    Okay, so it’ll run slow, and cause thrashing, but it’s theoretically possible. But there’s no thrashing allowed. The memory system on the iPhone doesn’t allow for any virtual memory (mapping files to memory is allowed, but that’s different). And if the system starts to run low on memory, a message is sent to make your app desperately try to free up ram. If not enough is freed, the app is forced to quit (kill -9 style).

    This seems rather strict, almost impossible, given that the iPhone plays videos and music. But the secret is that it’s not the CPU that does it. There’s a dedicated sound chip to do most of the audio work, and there’s a video accelerator chip that does H264 decompression. Because of this, the iPhone can’t play flv files, or even many quicktime’s own formats! The youtube app only works because Google’s converted the videos to H264 for the iPhone.

    Now, a lot of iPhones are 3G. And there’s wifi. So as long as you’re in a city or at home, you will have download speeds faster than dialup (Okay, twice the speed of dialup on EDGE). But given the carriers, and prices, you shouldn’t have any download larger than 10MB (That’s the limit of iPhone apps through the app store via EDGE or 3G). Oh, and actively using the network is a massive drain on the battery, almost as much as fully using the CPU. So you should keep the network communications down to half or a third of the time the program’s running, at most.

    So. A fifth the clock, half the cores, half the bus width, a tenth the RAM, and touching the page file is an automatic crash. Only twice dial-up, an upper bound of 10MB apps, and network communications should be more limited than that. Since the point of flash support is compatibility with websites out there, (IE, you won’t be able to talk people into redesigning their stuff for flash lite) can you see why Apple doesn’t even bother with Flash, especially when there’s still a lot of work to be done on the native API?

  10. @Blain – Thank you for a very comprehensive response: that’s *exactly* what I was looking for. It’ll be interesting to see how the vendors overcome the limitstions of the platform.

    (My basic objection about mindlessly bashing Flash – Gruber’s The lack of flash on the iPhone is a feature is just “zomgbbq – flash is teh suxxor!1!one!” run through Babelfish for literate people – remains the same though.)

  11. A Skyfire-type solution for playing Flash video would be very useful. In this type of solution, a back-end server actually performs all of the processing and a browser running on the device only has to display sequences of images. Although it has limited resources, the iPhone could do this very well. However, I am sure that Apple would never allow the Skyfire browser, if it was ever ported to the iPhone, to be distributed via the App Store. Apple would claim that Skyfire duplicates the functions of Safari, which it doesn’t, of course.

  12. @Oliver
    If only my responses weren’t so typo-ridden, but yes, the assumption that the iPhone is comparable to a modern laptop is the source of a lot of misunderstanding. That was the pure technical performance reason.

    I myself am not fond of flash, and can see Gruber’s POV on this in some ways. But since this topic is about the iPhone, the situation is that it’s better for Apple to focus on the technologies that flash competes with. This arises because Apple has a moderate amount of control about these others’ performance and quality, as opposed to being at Adobe’s mercy. Adobe has very little incentive to optimize Flash for the ARM chip. For video, they can focus on H264 decompression. There’s a cheap and common chip to run H264. For games and the like, they can focus on the Cocoa API (Pandora for the iPhone is an example; it’s rewritten in Cocoa). It’s already there, it’s low-level enough where necessary, and they can change it to their liking. For web app interface, focusing on AJAX is best. Apple can come out with significantly-faster engines for javascript.

    This also does not address the issue that the user event model for flash is incompatible with the iPhone. How do you indicate a mouseover? And how’s it different from a click-drag? How do you trap keyboard events, short of always having a keyboard open? And even if it is, what do you do for the arrow and tab keys, which aren’t on the iPhone keyboard? These same issues are at the heart of Java not being on the iPhone as well. And if pure, un-lite flash or java is not an option on the iPhone, what reason* is there for an incompatible version?

    * For the users. The fact that there’s developers familiar with the API ‘in general’ does not help Apple’s bottom line, compared to focusing on one API.

    @Jay
    That’s a neat solution, but I fear that it again collapses to a non-flash solution to flash. If the flash is simply an animation, then converting it to H264 or .gif seems the shorter path. If it were something interactive, the lag from event interaction would be prohibitive, and converting it to cocoa would be the best option. And in all cases, the constant communications necessary would make short work of the battery.

    Re: Flash in general, and explaining part of the reason for such.
    Yes, as you mentioned before, a lot of Flash’s bad rep comes from buggy apps written by others. But while the sentiment’s aim is slightly off, the target remains struck. An OS which is bug-free, but designed such that a single app can bring it down, is considered bad. Remember MacOS 9.1 and Windows 3.1’s flaws. Flash may not be a resource or crashy, but it facilitates apps that can be such. And as a result, its mere presence becomes a threat to other web pages on the same web browser; I best not visit a flash-heavy site when filling out an important form, for fear of losing data if a flash app locks up the program.

    Re: Flash as a desktop app platform.
    My biggest beef with Flash is that it’s cross-platform. “That’s a feature!” one might cry. The problem is that it’s always someone else’s platform. I’ve seen too many apps with the close box on the right as opposed to Mac’s left, buttons that resemble XP’s instead of Aqua, and other practices that are frowned upon for a real Mac app. Added to that, by its very nature, it can’t take advantage of the OS-specific features.

    Open up textedit. Type a word. Let’s go with “shoen”. Yes, I know it’s not a real word. Right-click it. The Spell-checker suggestions you see are OS-wide, and it’s functionality a Mac cocoa app gets for free. Okay, choose “Shoe”. Right-click again. Under “Speech”, choose “Start speaking”. This is also something OS-wide, and you get it for free with a cocoa app. Now, with the mouse over the word shoe, hit Command-Control-D. A pop-up window will appear under the word, with the definition and a way to launch the dictionary app with that word. Again, for free in Mac Cocoa. These are very cool, and very useful.

    None of these standard, Mac-like features will make it into a flash-based RIA, even if it was so desired, because such features aren’t opened up in the flash API, because they’re not cross-platform. And in that aspect, Mac users get a significantly lower quality of app compared to a native version.

Leave a Reply to Blain Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.