After receiving access to the iPhone and iPod touch through Apple's SDK, Sun Microsystems says it will release a version of Java for the two Apple devices.

The decision was made just a day after Apple announced its SDK plans and after an investigation which suggested that a Java virtual machine environment would be feasible, according to Sun's Java marketing VP, Eric Klein.

Initially, the software will be a variant of Java Micro Edition, a mobile version of the software most often used for cellphone games as well as some specialized business apps, such as CRM (customer relations management) or ERP (enterprise resource planning) tools. However, the Sun official also said that the software would hopefully be optimized for the iPhone and allow access to features specific to Apple's mobile platform.

"We're going to work to make sure that the [virtual machine] offers the Java applications as much access to the native functionality of the iPhone as possible," Klein said.

The executive also said his company wouldn't rule out more advanced developments. JavaFX, a second mobile version of Java built partly to substitute for Flash and other web animations, was possible. Over time, the company could also write a version of Java Standard Edition if its initial experience proves worthwhile.

While a release of Java for the iPhone and iPod touch would not appear until sometime after Apple's June launch of its version 2.0 firmware and the App Store needed to download the program, the announcement represents an end-run around Apple's own resistance to implementing Java on its own. Apple chief executive Steve Jobs said no Java was coming from his own company as late as this week and last year described a full Java engine as a burden to the phone that was unlikely to be used by developers.

hok posted on another forum that this might be prohibited by the
SDK user agreement:

Apple iPhone SDK Agreement: No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apples Published APIs and builtin interpreter(s) An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise.

Realising how big the iPhone and iPod touch is going to be in terms of a development platform, Sun and probably Adobe (god bless them) are shitting bricks right now seeing that all their efforts in mobile land may be threatened by a new force coming to the fore, namely OS X "Mobile" (or whatever one may call it)..

On the desktop and laptop, I still believe Flash is good and important. Mobile, not sure about that.

As for Java, will it please frickin' die already !!! DIE!!! Bloated piece of garbage. Always has been.

As for Java games and other mobile stuff, even on my Sony Ericsson, I have no idea what the big deal is with Java on the mobile. Not saying it is entirely Sun's fault, however, it has always been slow and unimpressive.

Realising how big the iPhone and iPod touch is going to be in terms of a development platform, Sun and probably Adobe (god bless them) are shitting bricks right now seeing that all their efforts in mobile land may see a new force coming to the fore, namely OS X "Mobile" (or whatever one may call it)..

No kidding. It could even result in more development for Mac if developers use Xcode tools
for the first time to make iPhone apps and really like it.

No kidding. It could even result in more development for Mac if developers use Xcode tools for the first time to make iPhone apps and really like it.

That's the brilliance of the iPhone and iPhone SDK. It's specifically intended, in a large part, to bring even more people to the Mac and develop for the Mac.

That said, Apple is hedging its bets by spreading to two major platforms. The "conventional" OS X, and the "ultralight" OS X that will lead to the "MacBook Touch" or something like that by the end of the year maybe...

hok posted on another forum that this might be prohibited by the
SDK user agreement:

Apple iPhone SDK Agreement: “No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple’s Published APIs and builtin interpreter(s)… An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise.”

That could be limiting. I wonder if that would prevent the building of useful third party web browsers. They use, even need, plug-ins and at least Firefox has it's own interpretive API for extensions.

The naysayers quickly moved past the lack of a PPC port to complain that there is no Win32 port. And have predicted that iPhone apps will be few and far between because of this.

The lack of PPC is a bit odd, though I think is probably reasonable, the newest PPC development machine owned by a developer is probably getting close to retirement. I see no reason to expect a W32 port. If anyone really cares, then they'll make their own.

I can expect that a very disproportionate number of iPhone users are Mac users, so I don't see a problem there either. Heck, the cost of certifying an app for a competing phone is about that of a new Mac.

Whatever! Some people like myself purchase a computer to be able to use for over 3 years, especially one that is being trumpeted as "lasts longer than a PC". Using the latest OS is not a problem, but having to buy new hardware is. Especially when $6,000+ were already spent on a Powermac G5 and a Powerbook G4.

The PPC platform is quickly dying. It's much cheaper to just develop on one platform than to develop on both. If your software is to run the same on both, then you can only use features available on both. For something like this, Apple calculated that most serious developers for the mac will already have an intel mac, so going through the effort to make a PPC version wasn't worth it.

As far as the W32 support, it makes sense NOT to do that. People that have never touched a mac don't understand the way macs work. If they just opened up a Windows programming option, you're going to have developers that never ever used a mac developing for this thing. They won't understand how things are supposed to work.w

Realising how big the iPhone and iPod touch is going to be in terms of a development platform, Sun and probably Adobe (god bless them) are shitting bricks right now seeing that all their efforts in mobile land may be threatened by a new force coming to the fore, namely OS X "Mobile" (or whatever one may call it)..

On the desktop and laptop, I still believe Flash is good and important. Mobile, not sure about that.

As for Java, will it please frickin' die already !!! DIE!!! Bloated piece of garbage. Always has been.

As for Java games and other mobile stuff, even on my Sony Ericsson, I have no idea what the big deal is with Java on the mobile. Not saying it is entirely Sun's fault, however, it has always been slow and unimpressive.

Quote:

As for Java, will it please frickin' die already !!! DIE!!! Bloated piece of garbage. Always has been.

This attitude is completely disjoint from reality. A modern Java VM is an extremely fast environment based on a very advanced set of libraries that handle everything from massive parallelism to hardware abstraction very well. It's probably faster than the Objective-C runtime on which the MacOS X is based. Objective-C has the worst of both worlds-- static compilation with dynamic linking. Since Java is dynamically compiled, it has runtime information available to the optimizer which means it can optimize the wazoo out of the code and cache the optimized version. Objective-C's extreme bent towards dynamicism means almost nothing can be inlined and everything turns into these huge stack calls in assembler. It was a great choice for the late 80's, but the state of the art has moved way beyond it by now.

The problem with a modern JDK's perceived performance is not so much its speed, but its size. Since they didn't break it down into little pieces that could be loaded individually, it takes potentially dozens of MB just to start executing line 1, so it takes even the tiniest applet many seconds to get going while flash starts almost immediately. Sun is fixing that in JDK6u10, due out in a few months. Java applets will start just as fast as Flash. And since Java is a very deep, well-architected system (unlike Flash) it will make a very compelling case for developers.

It's no coincidence that Java is everywhere from your Blu-Ray player to your set-top box to the servers running a website. The only place Java HASN'T gained traction is in front of users eyes. Personally I think that's because Swing made some bad choices and Sun hasn't prioritized the desktop.

Besides, the chipset Apple chose for the iPhone/Touch has some native support for Java. It's likely that Java will run faster on it than anything else you've tried.

Whatever! Some people like myself purchase a computer to be able to use for over 3 years, especially one that is being trumpeted as "lasts longer than a PC". Using the latest OS is not a problem, but having to buy new hardware is. Especially when $6,000+ were already spent on a Powermac G5 and a Powerbook G4.

Abster2core thank you for your bigoted response.

Whatever? You can still use your G5 and G4 for a lot of other things and most likely for a many years to come.

Currently, the competition is proclaiming superiority over the iPhone and that their newer iterations to come will make the iPhone seem like an ancient rotary. As such, now is not the time for Apple build, code or structure an SDK, just so one can play or create applications on older systems and hardware. The iPhone with its special Leopard OS demands the latest in technology to maintain its superiority. Anything else would be a waste of time and thus money.

And besides, how did my response exude any form of chauvinism, partisanism, sectarianism; racism, sexism, homophobia, dogmatism or jingoism?

The mechanics aside, Sun is trying to reassure people that Java apps of some sort from websites, etc. will be able to run on the iPhone/iPod Touch.

However, the implementation will probably be clunky, by any stretch of the imagination. Given various legal loopholes they have to jump through.

Sun "Java Player" for iPhone. Coming soon to lag up your iPhone.

Sun has a massive investment in mobile Java gaming. Probably in the consumer space their real cash/ mindshare cow.

Don't overdo it.

I'd rather have the interest of Sun, than have them ignore it. They are well aware of the limitations of both the phone, and what they will be allowed to do. If, after looking over the SDK, they feel this is possible, and considering that Apple and Sun are close, I don't see this as being all that farfetched.

I always would rather have the option, than not have something at all. If performance is bad, then it won't be used, but if it is good, then it will be used. It's really pretty simple.

The lack of PPC is a bit odd, though I think is probably reasonable, the newest PPC development machine owned by a developer is probably getting close to retirement. I see no reason to expect a W32 port. If anyone really cares, then they'll make their own.

I can expect that a very disproportionate number of iPhone users are Mac users, so I don't see a problem there either. Heck, the cost of certifying an app for a competing phone is about that of a new Mac.

apples lack of good head less system in the $700-$1900 price range is keeping some people on PPC.

hok posted on another forum that this might be prohibited by the
SDK user agreement:

Apple iPhone SDK Agreement: No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apples Published APIs and builtin interpreter(s) An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise.

I wonder what lawyer came up with that one. I mean basically any data a program pulls off the Internet/filesystem/etc. is "interpreted code". Say a text file? ... well that's just a bunch of bits until some program interprets it and turns it into the characters you see on the screen.

apples lack of good head less system in the $700-$1900 price range is keeping some people on PPC.

For what it's worth, I just bought a dual G5 for $330.

But I would expect that a new Mac mini would be perfectly adequate for developing for the iPhone, but the cost of the machine is insignificant in view of what it costs to develop software. The cost of the machine shouldn't be an issue for anyone making a living developing software.

apples lack of good head less system in the $700-$1900 price range is keeping some people on PPC.

the current minis are faster than pretty much any PPC machine. and they are headless, and under $700.

i dropped my 2x2 ghz G5 when i realized the 2x2 ghz CoreDuo macbook out performed it. while i was using PCI slots for more internal storage, i also realized that a decent NAS on a gigabit enet setup gave me basically the same performance, and i really didn't need the PCI slots for anything then. Now i have realized that 802.11 n give me enough performance to keep my work on a wireless NAS, and i have little need to have the wired gigabit.

I just can't see the fact that the SDK only runs on Intel Macs as a huge limitation. Maybe Apple could have written a PPC version, maybe even a Windows version (if you wanted to wait another few months.) I think not writing a Windows version is a good strategy. The iPhone runs on OS X. Windows developers who have never even used a Mac are not going to know what they're looking at anyway.

As far as the cost of new hardware goes, This isn't hardcore video or photographic work. A Mini would do the job--heck, a used Core Solo Mini would do the job! If you think you have a really good idea for an iPhone app, I bet you can afford to buy (or borrow) one of them. (Maybe you've got one running your entertainment center.)

I don't believe that running Java, in any form, would be impossible, if the speed of the iPhone increases, as anyone who isn't living under a rock would know, it will.

As for the allowing of it, well, let's just say that Apple changed their mind on this sort of thing before. For those who didn't think that Apple would have an SDK at all, that should be obvious.

I think that both Adobe and Sun are close enough to Apple, that no matter what Jobs has said, it's open to this.

I can see Jobs on another platform, exclaiming that both Adobe and Sun did what was thought impossible, having their software work in the iPhone/iTouch really well, and bravo to them for all their hard work, etc.

After all, who though that Apple would license Exchange ActiveSync, as well as Cisco's IPsec; and two-factor authentication, certificates and identities?

Whatever! Some people like myself purchase a computer to be able to use for over 3 years, especially one that is being trumpeted as "lasts longer than a PC". Using the latest OS is not a problem, but having to buy new hardware is. Especially when $6,000+ were already spent on a Powermac G5 and a Powerbook G4.

Abster2core thank you for your bigoted response.

Are you a developer? If you aren't, then you're not losing anything by Apple limiting the SDK to Intel only.

The mechanics aside, Sun is trying to reassure people that Java apps of some sort from websites, etc. will be able to run on the iPhone/iPod Touch.

However, the implementation will probably be clunky, by any stretch of the imagination. Given various legal loopholes they have to jump through.

Sun "Java Player" for iPhone. Coming soon to lag up your iPhone.

Sun has a massive investment in mobile Java gaming. Probably in the consumer space their real cash/ mindshare cow.

I pray that, if these apps make it to the App Store, they're required to be labled 'Java Inside' so that I can avoid them like the plague... maybe even their own little boutique so that anyone interested in ground-up apps that use a proper multi-touch interface can ignore them.

This attitude is completely disjoint from reality. A modern Java VM is an extremely fast environment based on a very advanced set of libraries that handle everything ...
1. The problem with a modern JDK's perceived performance is not so much its speed, but its size. Since they didn't break it down into little pieces that could be loaded individually, it takes potentially dozens of MB just to start executing line 1, so it takes even the tiniest applet many seconds to get going while flash starts almost immediately.
...
2. Sun is fixing that in JDK6u10, due out in a few months. Java applets will start just as fast as Flash. And since Java is a very deep, well-architected system (unlike Flash) it will make a very compelling case for developers.
...
3. It's no coincidence that Java is everywhere from your Blu-Ray player to your set-top box to the servers running a website. The only place Java HASN'T gained traction is in front of users eyes. Personally I think that's because Swing made some bad choices and Sun hasn't prioritized the desktop.
...
4.Besides, the chipset Apple chose for the iPhone/Touch has some native support for Java. It's likely that Java will run faster on it than anything else you've tried.

Quote:

Originally Posted by melgross

Don't overdo it.
...
5. I'd rather have the interest of Sun, than have them ignore it. They are well aware of the limitations of both the phone, and what they will be allowed to do. If, after looking over the SDK, they feel this is possible, and considering that Apple and Sun are close, I don't see this as being all that farfetched.
...
6.
I always would rather have the option, than not have something at all. If performance is bad, then it won't be used, but if it is good, then it will be used. It's really pretty simple.

Quote:

Originally Posted by melgross

I don't believe that running Java, in any form, would be impossible, if the speed of the iPhone increases, as anyone who isn't living under a rock would know, it will.
...
7.
As for the allowing of it, well, let's just say that Apple changed their mind on this sort of thing before. For those who didn't think that Apple would have an SDK at all, that should be obvious.
...
8.
I think that both Adobe and Sun are close enough to Apple, that no matter what Jobs has said, it's open to this.
...
9.
After all, who though that Apple would license Exchange ActiveSync, as well as Cisco's IPsec; and two-factor authentication, certificates and identities?

1. Thanks for the clarification. In terms of size issues then, for the iPhone, Java is not a viable option for a few months at least.

2. Sounds promising, but perhaps it is until the end of the year before this really becomes widespread?

3. It's good that it is everywhere. However, honestly, I don't really like a lot of these embedded thingys. The interface is usually clunky, the architecture is somewhat laggy. Again, I am not blaming Java totally in this case, but given how retarded my set-top hard disk recorder (Pioneer) and my Satellite TV box (proprietary from the provider) is, in comparison to AppleTV...

4. However the Java at this stage probably can't access the iPhone/Touch at the native level/speeds?

5. I am alright with Sun having some involvement. It is just that currently they are not a high-value partner for where Apple is going.

6. Yes, with the SDK there will be many options. Performance is not the only thing. GUI is also important. How is Java going to support gestures effectively? In the Macbook Touch?

7. & 8. I know I have been ranting and raving. It is possible that by middle of the year there will be decent Flash and Java support.

9. An interesting observation. However might I say that these have to do with the "connectivity" aspect of things, without really affecting the "core OS" aspect of things?

IMO, overall, in terms of the apps used, it is going to be most likely iPhone OS native apps through to the end of this year.

Most of the popular, dominant apps will be those that take the best advantage of native OS elements eg. Core Animation etc, deliver compelling user interface interaction eg. Bento or Delicious Library on the Mac, and provide instant and seamless Intarweb connectivity.

For Java developers, having to work through the Cocoa Touch "translation" through their Java apps is a big headache, I would imagine.

I just know that waiting in the wings are tons of Java mobile phone game developers that think they can have an entirely new platform to start raking in the cash. They assume just port their stuff, voila, 'whole new market to access with 10 million iPhones and millions more iPod Touch's by the end of this year.

Like the ringtone phenomenon, this will have some impact on the iPhone OS, but I feel it is not a long term successful endeavour. Just like the game Portal on PC, new thinking, new approaches, and true innovation will deliver some really interesting gaming and other experiences on the iPhone OS.

For Java developers, having to work through the Cocoa Touch "translation" through their Java apps is a big headache, I would imagine.

I just know that waiting in the wings are tons of Java mobile phone game developers that think they can have an entirely new platform to start raking in the cash. They assume just port their stuff, voila, 'whole new market to access with 10 million iPhones and millions more iPod Touch's by the end of this year.

Like the ringtone phenomenon, this will have some impact on the iPhone OS, but I feel it is not a long term successful endeavour. Just like the game Portal on PC, new thinking, new approaches, and true innovation will deliver some really interesting gaming and other experiences on the iPhone OS.

Think about the Wii and PS3. (Now I've started it...)

Don't forget that Java is not entirely absent from the iPhone/iTouch right now. Javascript is not "Java", but then, it's not "not" Java either, if you know what I mean.