Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why the Apple iPad has no Java or Flash (teppefall.com)
34 points by jp on Feb 5, 2010 | hide | past | favorite | 36 comments


I'm sure the technical and emotional arguments that Flash sucks had an important role to play in why Apple didn't include it, but I like to think it's almost simpler than that: Flash expects (and often requires) the traditional keyboard and mouse interfaces. The iPad has neither.

Sure, the big Flash sites like YouTube could easily get away with translating touches to clicks and it'd probably "just work" for them, but how do you handle the millions of sites that depend on rollovers to reveal menus or full keyboards to control game characters? You can't. There's just no elegant way to translate that to the iPad.

HTML/CSS was designed to degrade gracefully in the face of changing client capabilities. Apple can more freely create a new environment that can still acceptably display HTML/CSS content because of that core design decision. Sure, some sites will do things that break even on an iPad (or iPhone or Android - there's no right click, still no ever-present keyboard or mouse, unusual screen resolutions, etc.) - but for the vast vast majority of HTML/CSS sites, the necessary information is still conveyed or available in some useful way almost by default.


I'm pretty tired of hearing reasons about why Flash isn't included ... and while I'm happy for HTML5, it's pretty sad that Apple doesn't give this choice to its customers. To make matters worse, I don't think Apple allows modifications to Safari on the App Store.

The web was built on top of such technologies (Java, Flash, ActiveX) and while all of them where a PITA in the long run, back then it was the only way to work-around the browser's limitations ... competitive third-parties are driving innovation, not standards, and definitely not monopolies.

Imagine if Microsoft controlled what software gets installed on people's computers ... today we wouldn't have had neither Java, or Flash, or Firefox, or HTML5 for that matter, and AJAX would have been a second class citizen.

I don't want such a future. Of course, I trust the market enough to make the proper choice when the time comes. People aren't stupid, and unfortunately for control freaks, the genie is already out for openness.

But it saddens me to see such positive reactions from people that benefited so much from openness (like DHH). Even with all the viruses, spyware and spam flying around, it's still a better present that what could've been if the PC was locked.


The web was built on top of such technologies (Java, Flash, ActiveX)

Must be some different web you ar talking about…


Care to explain?

From what I remember, Java and then Flash were used extensively for games (ever since Netscape incorporated Java applets), and XmlHttpRequest originated in ActiveX, which was and is still is used extensively for corporate-intranet apps. The kindergarten my wife works for uses web-cams with an ActiveX app that's transmitting live images to parents (in 2010).

And streaming audio/video really happened with Flash, although it was possible with Java applets and ActiveX.

In my country we have saying ... it's like you haven't eaten garlic, and your mouth doesn't stink.


I'm fairly sure this problem of traditional inputs has nothing to do with Apple's exclusion of Flash. Many web-sites also use ui interactions like mouseovers and there are many bad designers that fail to make their sites degrade gracefully. Following your logic, Apple would ban web sites as well because they might not just work.

Now let me check-off 'Dead horse thoroughly kicked' from my list of things to do today.


Personally I wonder why these people are still employed in the technology sector...

Really? This is the second line of the article, and you are questioning the professional competence of your readers?? What do you hope to accomplish here?

...but why not write down all the reasons before I get too arrogant and annoying.

Too late.

Okay, well... I read the article anyway, because I am actually interested in the subject. Unfortunately, the content was little more than a personal rant that would have been more accurately titled "Why Adobe Flash (and btw Acrobat) sucks".


Bingo. I stopped reading right there.


This is fantastically good, it explains with convincing specifics why Flash is a bad idea on the iPhone OS ecosystem (and less so for Java, but that's much less of an issue).

Also points out how the insanity of Blueray DRM plus Apple's installed base of hardware makes Blueray a non-starter for them.

See also this invaluable essay on Vista and DRM: http://www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.html; it's what convinced me that Microsoft had turned against the users of its operating system.


Flash, perhaps. But considering the Nexus one runs on Java, as do many devices with even less powerful hardware, he's dead wrong on that point.


Errr, it doesn't run a JVM, it runs the register based Dalvik VM, which is tuned for lower power consumption.

For those smart phones that do run a real JVM (as real as Java ME is right now...), the battery drain is I assume a debatable point.


I wonder why no-one seems upset that Android, which is written in Java, doesn't let you use Java applets?


Well, it doesn't have a JVM per se, its VM is the register based Dalvik, which requires a translation phase to convert compiled Java/whatever bytecode to it.


I was aware of that, but if they can include a seperate Flash VM, then they can include a seperate Java VM just as easily, if not more so.

It also raises my other often unaswered question about Android. At what point are they going to just use a standard JavaVM? The two main theories are A) that it was a licensing dodge because (like Adobe Flash did till recently) Sun gave Java away on the desktop and charged for mobile and set-top boxes, or B) it was necessary to get performance on low power hardware.

I didn't believe the latter reason at the time, and it's only getting less true as phones get better processors and people talk about putting it on tablets and netbooks. The former reason is apparently toast since Oracle has announced the merging of Java ME and SE which I'm guessing includes licensing terms.


You're ignoring that Moore's law doesn't apply to batteries. It's not so much the crunch required (although non-Apple products have suffered here in comparison), it's the battery drain.


there's also the fact that phones have relatively limited memory. I suspect the Dalvik VM runtime memory footprint is much lower than that of the JVM.


I know that was a design goal, e.g. the bytecodes after translation from JVM to Dalvik are smaller. I also seem to remember hearing that not all of a JVM's library is supplied with Dalvik.

Also, hasn't Java ME stagnated? I.e. it's stuck in at Java 1.3 (which Oracle has promised to address).


And moving Photoshop to Cocoa took so long that Apple lost all faith in Adobe's ability to deliver a good experience on Cocoa Touch.

This is bloody hilarious and looks like the author has no experience writing real applications. He seems to think a re-write of a complex app like PS is a trivial task.

BTW, before Apple can claim to lose faith in Adobe, it needs to port it's own Pro app, not consumer apps, like Final Cut Pro etc. to 64 Bit Cocoa. Apple itself hasn't migrated it's own Pro apps to 64 bit. Even Gruber seems to be relatively neutral on this: http://daringfireball.net/2008/04/64000_question

The one and only reason for no Flash and Java on iPad, and iPhone for that matter, is Apple likes closed system where they can control everything and don't want to give up their 30% cash cow. All other reasons are excuses IMHO.


Why should Apple care about what it takes to re-write a complex app? If Apple can go without the pain, why shouldn't they?

Sometimes it sucks having a huge portfolio of hard to repurpose application code. Eventually the programming world will figure out how to write compact, easily refactorable code. But why should everyone wait till then.

This blog is harsh but logical.

The one and only reason for no Flash and Java on iPad, and iPhone for that matter, is Apple likes closed system where they can control everything and don't want to give up their 30% cash cow. All other reasons are excuses IMHO.

I don't think the author is saying much different in the end. It's just there are certain advantages to having locked-down platform - especially quality control.

I'm totally down with open source alternatives but we need to understand that there's no reason for Joe average to tolerate the standard bullshit that the programming world has gotten used to.


"Flash cookies are pure deep evil and in use every single day."

LSOs in Flash are not strictly cookies. It so happens that many advertisers like to use them that way, but the usefulness for tracking across multiple websites can be easily curtailed by disabling 3rd party LSOs (so only swfs served from the website you're visiting can have access to LSOs). LSOs allow flash games to auto-save and let you pick up where you left off later. We use them to make the site faster for returning users and diminish load on our servers by storing certain information a user is likely to request on return visits in the LSOs.


In re to Java -- GOOD. I've never used a Java app I've particularly liked. Heck, is it even possible to code a decent GUI'd, non-sluggishly-responsive Java app?


I have no complains about SmartCVS/SmartSVN. They have SmartGit now, but I did not try that command line/GitX is fine for me.


Yes - see QT Jambi. Unfortunately not many Java devs are interested in it.


Oh god. Here we go again. I think this dude should read a bit about Flash Player frame rates and how the Flash Player actually behaves inside the browser. http://www.kaourantin.net/2006/05/frame-rates-in-flash-playe...


There is one reason, and one reason only, Apple won't let Flash or Java on the iPad or iPhone.

It's competition to the App Store and they don't want you circumventing that cash cow.


There is rarely, if ever, one and only one reason for anything Apple does. Their holistic approach to product design is integral to the success of their products.


I really don't think it has anything at all to do with the App Store. I really think it is all about control of the base code for the OS. The performance issues are real, but looking at the Flash problem Snow Leopard had (old flash with security holes), I get the strong feeling that Apple seriously wants to control all the iPhone OS source code.


Free Flash games directly compete with the iTunes App Store. Apple could loose thousands of paying iPhone developers, with Apple hardware, if they added Flash support. And suddenly the exclusivity is lost since the Flash game runs everywhere else as well.

Would any flash games really compete with stuff in the app store? Games in the app store are made for the iPhone's touch interface, the flash experience would most likely suck in comparison. The only thing free flash games could compete with is free app store games.


I have not heard of this Blu-Ray/Apple issue before, anyone care to elaborate?


Amen !


Because: 1. This crap can't be compiled for ARM-based cpu. 2. Even if it could (it won't), it won't run fast enough. 3. Both technologies are outdated, even while still in use.

btw, each down-vote should decrement your karma =)


Does your (1) point refer just to Flash? It's certainly possible to get a JVM to run on an ARM-based CPU.

As regards (3), Java the language may be outdated (possibly a debatable point) but Java the virtual machine probably isn't. Both Scala and Clojure are written by seemingly bright people who chose to use the JVM rather than another alternative (Scala code can in theory be compiled to run on the .NET runtime but in practise I understand that's somewhat difficult to achieve). It's easy to write Scala apps for Android phones and I don't see any reason why they wouldn't run just fine on an iPad/iPhone.


1. Show me url where I can get JRE for ARM-linux-gnu.

2. Show me #ifdef ARM_XXX in JRE source code.

Thank you!

btw, Clojure is a brilliant marketing move - an attempt to reuse existing JVM and the java class library to create something which looks like lisp. That's why there are so much hype - one buzzword and one magic world were put together. =)



That is just a PR. If something was named flash player 10.1 (assuming the same product as on x86) it is just a marketing move. ARM is a complete different architecture, so ti should be a complete different product.

I agree, that there is something which could be installed on certain devices to view some video clips, but to call it the same name as x86 product (read sse3 plus directx acceleration) is total bull crap.


I don't know what you're talking about, and I'm not entirely sure that you do either. Adobe Flash on ARM processors runs the exact same swfs (with stricter memory limits, obviously) as Adobe Flash on the desktop. Adobe Flash 9 has also been on the Nokia N800 for a very long time, which is another ARM powered device.


Ok. I will try. It's true, that there is an libflashplayer.so on my Ubuntu, however it is a 32bit blob. You can check it with ldd. It is 32bit blob because reasonable performance (along with near 100 CPU utilization) could be achieved with high CPU optimization. There is also libflashplayer.so on N8x0 (with comparable ldd output), but I think it's all they have in common. =)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: