Sun Is Porting Java To the iPhone
krquet notes an InfoWorld article on Sun's plans for the iPhone. After studying Apple's newly released SDK docs for 24 hours, Sun decided it was feasible to develop a JVM, based on Java Micro Edition, for both the iPhone and the iTouch. An analyst is quoted: "I think going forward, with the SDK, it takes out of Apple's control which applications are 'right' for the iPhone." The article doesn't speculate on how Apple might to react to such a loss of control. "Apple had not shown interest in enabling Java to run on the iPhone, but Sun plans to step in and do the job itself... The free JVM would be made available via Apple's App Store marketplace for third-party applications."
Oh the irony
If Apple hasn't been proactive in trying to port Java to the iPhone I expect they must have a good reason, whether it be security or performance concerns. I really question how much of a blessing this independent push for porting is.
What Loss of Control? They've got final right of refusal on everything that goes up, and they hold the only means of distribution. If that's a loss of control, I don't want to know what it'd be like when Apple is totally in control.
whatcouldpossiblygowrong
Now, this is certainly lawyer speak and probably covers more than they'd like - I very doubt they'd care if you used some of your own library code to script custom UI elements in, say, LISP. But it is certainly their intent to stop people from just republishing all the iPhone APIs under a new wrapper, then selling an "Interpreter App" that downloads and runs "jPhone Apps" (aka "data" for your special iPhone app), thereby bypassing all their controls. It certainly seems to rule out a JRE in the sense that we've used to, and from Apples point of view, this is correct (no judgements from me on whether this is a good thing or not).
Great, just what we need, more Java crapplets, but for the iPhone.
I don't see what Java can really add to the iPhone, aside for making it go slower, and potentially crash more.
Java is great for students, and other beginner programmers, but it has no place in embedded hardware.
Now that the Mac is overrun with terrible ports of Java apps with Windows interfaces and menus at the top of windows instead of in the menubar, we can send the iPhone down the same road! Horray for inefficient power wasting slow ports! But at least it's easy to go cross platform with Java, as long as you don't want it to look right or run fast. Ok, I'm a tad cynical. We can hope that iPhone users will demand a higher standard of usability than the "hey, I bet we could make this run on Macs with a few hours of work" that are fairly common in the software market. Otherwise it's going to be overrun with bad versions of apps thrown over from other java capable mobile platforms.
It seems like the iPhone is fully-featured enough to completely support a full, first-class JVM. Why are they porting a crappy pared-down Micro Edition version? That limits a lot of developers in what they're able to do. Maybe that's all they could get Apple to agree with?
Dlugar
Computer Go: Writing Software to Play the Ancient Game of Go
Why won't this bitch die?!
(Note: I love the idea of Java. The implementation, however, is... uh... yeah. The phrase "dead crackwhore" comes to mind.)
"The fight for freedom has only just begun." - Geert Wilders
I strongly respect anyone's right to do anything they want. However, I don't see the logic behind this move - or equally, behind anyone writing free apps for the iPhone via a jailbreak app.
The outcome is that they are making a platform with a high degree of Apple lock in more attractive to consumers. When version two comes along with more effective control mechanisms users will be tied to Apple's integration services, and the tenuous foundations of a business model standing on some else's shifting sand will be destroyed.
So why do it? It's bad enough choosing to write apps for Windows, but at least there is some logic given the size of the user base. The iPhone user base isn't very big (compared to, say, s60) but it _will_ be if it becomes the best option in town because everyone has helped Apple make it the best tool around by writing software for it. Then a later version can close you out and bang, lay off time is here again.
Beep beep.
is that Apple is off the hook for anything that fucks up with Java Apps (and Sun knows it so look for very conservative Java apps to get rolled out first.)
That opens up the iPhone (and iPod Touch but who cares about that minority,) for corporate deployment and all those goodies without exposing Apple at all.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
Fuck the iPhone.
All I have to say about that.
I wonder how fast java's going to be on the iPhone... I mean, well, you know... java... speed... those two combined...
Java ME is already part of the default platform for DVB/ATSC (European / N American cableTV clients), most mobile phones, and Blu-Ray (so all HD videodiscs). When it's on the iPhone, JME will get high visibility as a development platform (DVB/ATSC/BD-J and even most mobile phone development is nearly all done by a small niche of developers).
The same JME applets will run on any of those devices. In fact, the Java classloader lets any running Java program load a class from any other Java device connected by the network, load it and run it (safely) locally.
I wonder whether having lots of developers targeting a very featureful terminal that can be used as a "universal remote" for all these personal devices will finally offer some good applications for Java's ability to transmit the same objects around all the devices. Like the GUI objects installed in each device being available on any other device, to control the "home" device in familiar terms. Or any other of these.
And if that "mobile objects" platform does indeed come of age, will even Sun's "JavaSpaces" finally have a use for its far-out platform?
Will all of Sun's "useless" Java platforms from the past decade+ eventually be recognized as "visionary"?
--
make install -not war
I wish Adobe would port Flash to the iPhone. Also, I haven't looked at the SDK, but how can Apple prevent folks from installing this newly built Java thang on their iPhone? Granted, Apple can control which apps are for sale in their fancy app store, but if you have the SDK, doesn't that mean you can build and install things on the phone?
...third-party apps can't run as a background process? From the documentation: "Only one iPhone application can run at a time, and third-party applications never run in the background." Limited resources or not, it seems like this is going to end up like the older versions of PalmOS.
Here's a short section of the interface design guidelines as released by Apple:
So when the JVM is used by an application, it'll be launched/terminated each time the app is switched to? I'm willing to bet that will make apps that leverage the JVM almost unbearable to use.
With all this new porting and the release of iPhone SDK, wont this make the iphone even more insecure than it already is.
"It certainly seems to rule out a JRE in the sense that we've used to, and from Apples point of view, this is correct (no judgements from me on whether this is a good thing or not)."
No, no it is not. It's a Bad Thing.
But I'm sure it will stop viruses and malware on the iPhone, seeing as that is such a huge problem with Windows Mobile, Symbian, PalmOS and portable Linux installations. Oh, wait.
Okay, it will ensure that only the highest quality software that fits Apple's guidelines, including possibly design guidelines, and thus provide the user experience that Apple holds so high, will be available.
Well I guess that's true enough, but if I want to install CrashOTron2000 with a godawful UI on my iPhone, then who are Apple to tell me I cannot? Who are Apple to tell the developer that they cannot even offer it?
Don't get me wrong, I wouldn't want Random Application X messing around with the radio either. And, from Apple's point of view, VOIP over the cellular network may indeed be unwanted (by the telcos). Any other application that could, most certainly, render the thing useless or degrade its performance in standard use is not very nice either. I can even see a ban on the first one, and a moratorium on the second one, but to blanket-ban any application willy-nilly when they don't like it - even if the end-user may very well love it - is, imho, a Bad Thing.
If the only way to get around Apple is to provide a wrapper for the APIs, which they very well could code so that calls to the radio etc. are -not- exposed (not even implemented. Then again, are they even implemented and exposed in Apple's own SDK/APIs?), then I think it would be a Good Thing for it to be available. Any end-user complaints would have to go to Sun, and not Apple, for support / I-bricked-my-iPhone-you-buy-me-a-new-one crap.
Is java the best solution for Iphone? Seems like a step back, gluing feathers on an airplane.
It's vulnerable enough without a hackneyed java client, thanks. Slow enough also.
Wasn't really designed for business either, if that's what they're pushing it towards.
If there's one area iPhone really doesn't need more options, it's attack vectors.
And it voids your warranty, right? Sure, every business has an in-house iPhone reflashing service.
Dunno, take another 24 hours and think about it.
How long before Amiga, Inc announce that they'll have the next AmigaAnywhere running on the iPhone...
Karma Whoring for Fun and Profit.
I've seen a lot of speculation about the iPhone being somehow insecure, but most of the "security issues" I've seen have been from companies who want to sell security software, or that want to lock down company owned phones. The former can be dismissed as sales material, and the latter are at BEST irrelevant to most users.
Unless you're talking about jailbreak? That's not a security hole, that's an advantage. I wish I could jailbreak my own cellphone, since Sprint has locked out most of the functionality that led me to pick the model I did.
If Apple hasn't been proactive in trying to port Java to the iPhone I expect they must have a good reason
Control.
Apple wants to control application access to the iPhone.
I've never been a huge fan of the iPhone, and Apple's continual foot-dragging over opening it up is getting increasingly old.
Here's how it works:
* Take something the press has forgotten about because it basically gets no press. Find a product that the press is buzzing about.
* Somehow tie the thing the press has forgotten about to the hot new thing.
* Remind the world your old forgotten thing is relevant and still exist.
* Fade back to obscurity shortly thereafter.
Just note that Azureus uses a non-standard Java UI API called SWT. This was developed by IBM for the Eclipse project and it is significantly biased towards Windows, and is more of a fish-out-of-water on other OSes.
${YEAR+1} is going to be the year of Linux on the desktop!
That's great and all, but a lot of us are still waiting for a decent JDK 6 and Java SE 6 releases for Leopard!
- Aetheral Research -
I'm sure there is some overhead, but this is the micro editon which is optimized for small devices. It's a sub-set of the language, no garbage collection, no floating point, etc. and a much reduced standard library. All of this will greatly simplify the runtime environment.
Also, JME doesn't do some of the ridiculously complex runtime optimizations that standard java does, most of which are about improving execution speed at the expense of... everything else. This includes startup time and memory usage which is rather impressive on standard java (but sort of getting better with time).
Logi - I can do anything, but not everything.
It could have been EMACs. :D
There's already a port of Java to the iPhone. To run it on a jailbroken iPhone, first install Cydia (http://www.saurik.com/id/1) and then install iPhone/Java.
It even comes with a simple demo Java app that uses the iPhone frameworks!
Admittedly it's pretty primal, and there's a long way from "JVM runs" to being able to run J2ME app's (like, for example, a GUI layer). But it's still really cool!
Enable 3D printed prosthetics!
then how is it going to get on AppStore? They are the gatekeeper.
If you are talking about some sort of hack, then how is that different than all of the other hacks? I suppose it might make the iPhone easier to hack, but how hard will it be for Apple to put out a firmware update every three months or so that wipes out anything related to Java on the phone because it violates terms of service? Will serious users put up with that kind of instability?
If Apple doesn't want it to happen, it ain't gonna happen.
This is a non-issue.
sorry but you are wrong.
if you have a java application and want the menu bar to appear at the top of the desktop (like all other OS X apps), then simply invoke the jvm/java app and pass the following system property as a JVM arg:
-Dcom.apple.macos.useScreenMenuBar=true
as described here
its not that complicated....
to see if apple lets this pass. as i understand, they have final say as to whats made available in the appstore, freeware or not.
should be a nice test of how control freak apple wants to be about the store.
comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
Thank god, now I can run Opera Mini on the iPhone. That's why I haven't made the leap yet.
SCRABULOUS here I come!
Wow. Your post got me thinking. I could write a remote-control interface for my iPhone that would send commands via TCP/IP to my MythTV box. Change channels, play / record, etc. over wi-fi.
Seth
$5 / month hosted VPS on linux = awesome!
Not only does Apple ship a descent JVM with OSX, they even customized its Swing so that apps look just like native apps. Yes, Swing is a crummy GUI toolkit, but you can't say it's ugly. The rest of Java is actually pretty fast, you just don't notice it because your window has to go through 20 levels of abstraction to draw itself. On the plus side, you'll never see a Swing dialog box with an itsy bitsy input field that you can't make bigger *caugh* win32 absolute placement *caugh*
boldly going forward, 'cause we can't find reverse
People of feeble and creative minds everywhere in the world went into deep comas, the mental institutions survived a major influx of patients.
For now, Steve Jobs dreams again in R'lyeh.
That's funny, because very little you said responded to it - in fact you're more guilty of using his posts as a springboard for tangential rants than he is.
Not from where I'm standing - your points are orthogonal to his central argument, and mostly to do with how great Java is for everything.
eh?
The only people asking for Java on the iPhone will be phone developers who want to make a quick buck with a port of their existing J2ME app, and corporate developers who follow the religion - customers will avoid it like the plague because it will suffer from the same mediocre mongrel interface as Java on the desktop does on every platform, and the apps won't feel like they belong, because there won't be proper integration with things like the touch screen, native UI transitions etc etc.
Java on phones is not dead, it just deserves to die, and roping J2ME to the new hot platform is not going to make it magically better. There's an interesting post further up this thread about the mediocrity which is Java as a language, but all that doesn't matter to the users; the ultimate arbiters in this matter, all they care about is the UI and user experience, which is historically Sun's weakest point.
Maybe that's why phone UIs almost universally suck - I know the ones using Java for apps that I have used do, not really because of Java the language, but because of the libraries and UI conventions used, which are presumably closely tied in with the framework itself. I'm sure it's *possible* to do anything, but developers will tend to do what is easiest with a given framework.
Maybe he just felt it was irrelevant and of more interest to Java aficionados than anyone else. Sounds like a solution looking for a problem to me - I'm sure it would be neat and all, but ultimately as a user I don't really care if you use the same objects on several different interfaces, it _might_ even end up a horrible kludge if they have different screen sizes and UI control schemes and the views aren't appropriately tailored. By the by, this facility (distributed objects) has been available in Objective C since the mid 90s, even if it's not available on the iPhone. Java really isn't as original as you seem to think it is. It's just as derivative as Objective-C for example, and if it ever was visionary, it isn't now.
Well the future will tell all (including maybe even telling you you're wrong, if you're willing to listen), but if it's anything like the acceptance by consumers of Java on desktop OS X, you'll have a hard time convincing someone to use your J2ME app over a native one, that's if Sun even manages to get a credible solution supported on the iPhone.
Frankly I find his arguments more convincing that yours, because they're grounded in an understanding of what the *user* wants, not a Java developer's hopes.
My guess, because it's not about the *iPhone*, it's about the entire cellphone market: Sun want Java to become the standard language/platform for cellphone app development, and Java ME is already commonly used and has an application base - it's most useful to have all those apps be easily portable to the iPhone, and vice versa for new iPhone apps.
If iPhone app developers code for the full version, their apps won't run on Java ME devices and will be even harder to port to (non-ME) Android, which is the other important 'prong' in their strategy --- with Android on the way, Java looks set to become "the" future platform for mobile devices, and then quite possibly later to basically all computers due to eventual convergence of cellphones/laptops - after nearly dying, Java may be truly getting a 'second chance at life' here, but only if Sun can make it a kind of de facto standard platform.
You Microsoft trolls never learn do you. Go and waste your time on a Silverlight port for the iPhone. Better yet, make it run on a Zune.
If Sun make a JVM for the iPhone, then an iPhone + JVM could be considered as a jPhone.
Is basically Java on the desktop done right.
At least grandpa can use unsigned types.
Yeah good for phones, crap on desktops if you have real big desktops 1920 wide or 3 screens, i prefer localized menus, and hate to drag
all the way to the top to see the menu, its crap.
Liberty freedom are no1, not dicks in suits.
If you compare the languages, Objective C and Java, odds are that Java really can't bring anything to the table that is going to make it stand out from the crowd. Java works if Java can stay in memory, or be the entire application interface so it's always in memory, that's how is can make a decent application for phones -- be the application. That isn't the case here. Apple has their own OS that they are running and it's pretty good. They won't get rid of it. So now you are going to run two on tandem. Which will be very bad for Apple.
JVM based widgets will suck ass and everyone will want to blame Apple for their shitty phone that doesn't run Java apps really fast. Well, it wasn't designed to. But there are like a million little programmers running around saying "Go Java" and banging out every kind of widget they can think of anyways. And still people will blame Apple for making a shitty iPhone because Java widgets don't run fast. Recall that it still isn't designed to do that.
I have a very strong dislike for Java because of what Sun did with it. They lowered the entry barrier to Java by making is really easy for someone to get a certification in a week and then start programming at a job. Problem is you end up with a lot of programmers who are stupid shits and can't code their way out of a paper bag. The really amazing programmers still exist, but they've been diluted by the thousands of overnight contractors that have no experience.
So the net effect is that you end up with a lot of bad programmers making a lot of bad programs on a code base that is very sub-optimal for the applications and platform that they are going to be developing. And even the really good programmers are going to struggle because it's not a native Java machine and they'll have to fight against that one.
I guess I forgot to say, I don't think that there is any problem with what Apple is doing with their SDK and their product development model. They have a different approach to their products. They release what they can and need to in order to ensure functionality. This is contrary to Windows and others who release crap for everything all on the same day and then have a lot of people pissed off with things not working. It is the quality of their products that has been a corner stone in their success in the market.
Opening up the iPhone like this is going to mess that their perception of quality in the market and that is probably one of their most valuable selling points.
When apple owns the portable phone market, then, yes, this would become subject to anti-trust measures.
Why can't people tell the difference between a monopoly in the market for brand X of product B of product category Q and a monopoly in the market for the entire product category.
iPods are kind of close to the borderline, but not really approaching the degree to which MSWindows/MSOffice has become the market for general purpose computers except for mainframes. And, yes, Apple has used various things to keep control of their own products, but have done nothing approaching what Microsoft has done to establish and maintain their monopoly. Give it a break.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Well, I remember, back in the 80s, fans of FORTH who claimed it was faster than compiled C.
Some of those who made those claims understood that the FORTH interpreter was a better run-time execution model than the model that many C compilers for microcomputers back then implemented. So, FORTH interpreted code could be faster than a bad compiler's compiled code.
But some didn't seem to understand the fundamental behavior of an interpreter. I heard one guy talk about, if your program was too slow, just make parts of it words of their own, and then those words would be fast. (Didn't seem to understand that a call to a routine still had to execute the body of the routine. Or maybe he was confusing size optimization with speed optimization. I've done similar things, said "It does cool thing A." when I meant "It does cool thing B".)
There's no way an interpreter can run without putting at least a branch/jump between every primitive executed.
Well, I know the JIT is supposed to solve that, but why not just unroll the invariant primitives? If the code itself is final, it ought to be possible to just pick up everything to the last branch and insert it in the stored instruction stream without the branch. Large primitives aren't going to be helped much, but small primitives would. And, at compile time, you could dredge the unrolled code for things like a move to the parameter stack followed directly by a move from the stack to an accumulator.
Anecdotes: My Mac Mini (1.2G PPC, 512M RAM, slow frontside cache) runs Java about half the speed of my Linux box (1.7G Sempron 2700+, 768M RAM, frontside about half CPU speed). The pause between double-click and application coming up on screen is a bit longer than with native code on both machines, which is not surprising considering the pre-flighting Java does for security and other purposes. You see the effects of the branch being in there, speed-wise, but, as you say, it's fast enough.
On my clamshell iBook, however, rendering of html is seriously slow. Makes the help screen I'm rendering that way more or less useless.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
apple.laf.useScreenMenuBar
Can be set on the command line or programmatically. Or in the plist in the bundle, of course.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Do you customize your Mac UIs very much?
By the way, the reason the first item in the bookmarks bar is a menu is because it's a menu of bookmarks. That is not the same as a file menu and you probably at least subconsciously know this, so you are just playing semantics games to try to defend your arguments that everyone should be a poweruser just like you.
I'm a poweruser of sorts, but I'm not a poweruser just like you, thankyouverymuch. I don't really appreciate having to hunt for a safe place to click non-foreground windows to bring them front.
Oh, and the first item on the left in the bookmarks bar (which you can get rid of if arguing about it is going to distract you from real work) is not a menu, I think.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Yeah, Javadoc should have a place for that stuff. Oh wait, it does! It even has a style guide for information about your fields, methods, classes, and packages. They even describe how to embed (wonder of wonders) diagrams and other images into your source documentation.
It's not like Javadoc (or any other documentation tool) can magically create annotated code samples and training tools on its own. Don't blame Javadoc, blame the lazy bums who never bother to actually document their stuff.
- I don't need to go outside, my CRT tan'll do me just fine.
Please cite where Smalltalk is shown to be anywhere near the speed of Java. A quick Google search reveals this language comparison where Smalltalk gets its ass handed to it, and that was written in 2004. Say what you will about Smalltalk's elegance, but speed was never truly its forte.
- I don't need to go outside, my CRT tan'll do me just fine.
I have to laugh at the histrionics coming from some quarters. Apple sell a hardware device which runs its own software, and so they restrict what third-party software can and can't run on that device. Why is this such a bad thing? I don't hear screams of 'no fair' being aimed at Sony, Nintendo and Microsoft for their similar behaviour in the console industry, so why should this be so maligned here? Frankly, I'm glad they've put this restriction in place, as it means we as iPhone users won't be subject to this kind of crap. Java applications have long been the absolute worst where UI is concerned, and Apple wants the iPhone to be considered the pinnacle of the mobile interface, not the sloppy bottom of the barrel that Java ME represents.
As a professional Java programmer I think Sun has pretty much lost the game already on the mobile platform. They have had years to get the J2ME core sorted out and j2me on mobiles is pretty much a car crash for any serious development: massive fragmentation, excessive Network Operator and Manufacturer restrictions on even basic functionality, no push back to the aforementioned manufacturers and operators, vested interests resulting in the code signing shambles, extraordinarily complex builds due to optional JSRs, and a load of useless new jsrs when the basic ones are not really implemented properly have all but crippled the market for any serious applications.
Although there a few good ideas in J2ME like background apps and remote activation mechanisms that Apple could usefully incorporate, mostly developing for these devices is just an exercise in frustration and Apple and Google in the space of less than a year have achieved what Sun could not in more than 5. They have produced enough of a perception shift so that the stupid situation we have now with Operators restricting OS upgrades, software installation and this walled garden obsession (AOL or Compuserve anyone?) is starting to break down. Apple is focussing on Cocoa and once they garbage collection sorted out on the iPhone then they will have full Objective C 2.0 support (and who needs Java then?) and Google has trumped Sun with its Dalvik Java variant which Sun has little influence on.
Adding Java to the iPhone sounds good but in reality what are we going to have - either another J2ME variant (with even some basic JSRs unable to be implemented unless Apple gives them more access to the hardware than other third party developers - and I don't think that will happen given Apple's declining interest in Java on OSX with a move away from the Java-Cocoa bridges) or yet another set of APIs to develop in that are slightly different to the current Desktop or mobile. Either way I think that Sun is going to be pushed out of the upcoming revolution in the mobile game and they really have no one to blame but themselves.
The jailbreak apps are broken by updates because they use security exploits to install. Apple closes those exploits (as they should) to improve the security of their product.
When it comes to officially supported development environments, Apple is no more likely than any other platform company to shoot themselves in the foot by choking off existing apps.
In fact, Apple has a recent history of legacy platform support that is pretty good. The switch to OS X included the Classic environment to support older software for a time. Cocoa and Carbon had equal status as development environments for years. Rosetta transparently handled PowerPC code when they switched to Intel.
An iPhone JVM implemented by Sun through the official SDK can't escape Apple's notice. If it's allowed to released, I see no reason to believe that it would be choked out later.
Build a man a fire, he's warm for one night. Set him on fire, and he's warm for the rest of his life.
http://wickedpsyched.com/iphone/perl
But you don't need Java to do that. A native iPhone app can send TCP/IP commands to MythTV.
Actually, I'd probably code the app in Objective C. The part of your post that gave me the inspiration was your idea of different pieces of furniture (appliances) communicating with one another. I'd love to have a nice touch-LCD remote for my MythTV box, and my phone is always with me when I'm watching TV, so making an iPhone tv remote is a no-brainer. I like the idea of having the wifi-TCP communication, because then it'd be a remote that wouldn't depend on IR hitting the MythTV box. Much like a radio wave remote.
Additionally, it could be used for remote programming of the MythTV recorder.
seth
$5 / month hosted VPS on linux = awesome!
The MIDP profile already supports touch screens - after all Sony Ericsson has touch screen phones for years now.
Martin
"... Apple's continual foot-dragging over opening it up is getting increasingly old."
What's getting really old is this kind of hyperbolic comment. I am so tired of hearing about how Apple "wants to keep the iPhone closed" (when they have never actually said anything of the sort), and that it's "taking them forever" (or words to that effect), to open it up.
Fact 1 - they never explicitly ever said it would be closed
Fact 2 - they opened it up to web apps quite quickly
Fact 3 - it's LESS THAN A YEAR since the device has been in existence.
Any statement of the form described above is pure hyperbole plain and simple.
Can't we just stick to the facts and leave the emotions at home?
Am I right in thinking that no one would care about an iPhone JVM port (including Sun) if Apple wasn't being an overprotective nazi mom in reguards to what kind of application can be installed on the phone that I bought? I have "unlimited" data access as long as it's the right kind of data... Fantastic!!! I for one have not been drinkning the Apple Coolaid...
While the Java folks are "going to port it" the Mono project is already running C# applications on the iPhone. Check www.go-mono.org/monologue