One of the big benefits of Java software is that it facilitates the
ability to deliver the same content and services across multiple Java
technology-enabled devices (mobile phones, PCs, and set-top boxs).
The Sun Java team has announced that they plan to use the to use
the new iPhone SDK to create a JVM for the iPhone and iPod Touch. Here's a
video featuring Eric Klein, vice president of Java marketing discussing
the news:
This would allow the 10s of thousands of existing Java-based mobile
applications to run on iPhone and iPod Touch. And also for
new Java applications to be created specifically for the iPhone, which
could leverage the unique capabilities of the device.
Developers would also be able to use their existing Java tools, including the productivity-enhancing features
of NetBeans and the NetBeans Mobility Pack, to easily create, test, debug and deploy
applications that would then run on the iPhone & iPod Touch - in addition to
literally billions of other devices.
After Sun announced our intent to create a JVM for iPhone and iPod Touch, there were questions raised in some blogs & forum
posts about whether Apple's iPhone license agreement allows us to
deploy the JVM.
"Our announcement was based on our excitement to build a JVM for the
iPhone and the iPod Touch, as well as our assessment of Apple's publicly
available information on the SDK and related business terms. If there
are clauses in the iPhone beta SDK license agreement that potentially
limit third party application distribution, then these are items that
we want to have a positive discussion with Apple about. Sun and Apple
have an ongoing relationship around Java SE on Mac OS X and we look
forward to further discussions with Apple about a JVM for iPhone and
iPod Touch. Sun definitely plans to deliver a JVM for iPhone and iPod Touch if
at all possible!" said Eric Klein, vice president of Java marketing at Sun.
We'll be talking more about our plans, as well as our overall Java
strategy, at the 2008 JavaOne conference May6-9 in San Francisco.
Comments:
What community involvement is foreseen for this development? Is it going to be a JCP activity?
How do you plan on circumventing the fact that the iPhone SDK terms explicitly state that:
“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)”
Posted by
Chris
on March 13, 2008 at 09:22 AM PDT
#
This is wonderful news! Now we have the opportunity to see hundreds (if not thousands) of applications for the iPhone and Touch which behave nothing like normal iPhone and Touch applications. I can hardly wait to see how the lack of "Touch OS" functionality in the JVM will translate to a UI like the iPhone that has no physical keyboard. This may actually be more fun than on-screen typing with a WiiMote (except much slower to load)...
Posted by
John
on March 13, 2008 at 10:07 AM PDT
#
How the tables have turned!
In the Mac OS 8, Mac OS 9, and Mac OS X Apple did all the porting of Java to their platform at their expense.
Now Java has lost a lot of momentum and the iPhone is the new hot thing. Sun is willing and excited about porting Java to Apple's platform at their expense.
Posted by
Marcos
on March 13, 2008 at 10:27 AM PDT
#
I think that what Sun realizes is that SDK licenses don't decide what gets sold at the App Store. Apple decides. The license is just a piece of paper written by lawyers.
Look at Apple's track record following their own human interface guidelines, and you'll see that they don't pay that much attention to rules they've written.
Posted by
Richard
on March 13, 2008 at 01:45 PM PDT
#
I have extensive experience developing for both Mac OS X and Java, and I can tell you that I will cringe if Java is allowed to run on the iPhone. While excellent for server apps, Java is absolutely horrid for User Interface. And that's what the iPhone's all about.
Posted by
Eric Brunstad
on March 13, 2008 at 05:55 PM PDT
#
“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)”
Is that clause enforceable? Does bytecode, like java class files or p-codes count as interpreted code? What if my app has to lex, parse and “interpret” a user provided file? Or user provided input? What if I write a calculator?
Pretty much every program has, at some point, a loop waiting for input, some state variables and some sort of case statement. That's really all it takes to write a basic interpreter. It's not that I'm defining interpreter broadly, it's that it's such a fundamental concept in computer science.
Of course, if Apple really puts up a stink and won't negotiate, Sun can just deliver a compiler for Java, like gcj, that produces machine code targeting iPhone.
Apple is the enforcer here, it's their platform, they can enforce anything they wish. If they don't want java on the phone, it's not going on the phone.
Also, I'm sure they're using "interpreted code" in the compiled vs. interpreted definition. Java, needing the JVM as it's interpreter counts as interpreted code.
"It's not that I'm defining interpreter broadly..."
Yes you are.
"Of course, if Apple really puts up a stink and won't negotiate, Sun can just deliver a compiler for Java, like gcj, that produces machine code targeting iPhone."
Again, if Apple allows it. You can't put any old code on the iPhone, this is a "gated community" type of platform. Also, the compiler for iphone? Really? Wouldn't that require lots of changes in existing code to run with the iPhone widgets and interface? Why wouldn't I just develop my app with the SDK?
Posted by
Chris
on March 17, 2008 at 05:30 AM PDT
#
What community involvement is foreseen for this development? Is it going to be a JCP activity?
Steve
Posted by Stephen Winnall on March 11, 2008 at 05:46 AM PDT #
How do you plan on circumventing the fact that the iPhone SDK terms explicitly state that:
“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)”
Posted by Chris on March 13, 2008 at 09:22 AM PDT #
This is wonderful news! Now we have the opportunity to see hundreds (if not thousands) of applications for the iPhone and Touch which behave nothing like normal iPhone and Touch applications. I can hardly wait to see how the lack of "Touch OS" functionality in the JVM will translate to a UI like the iPhone that has no physical keyboard. This may actually be more fun than on-screen typing with a WiiMote (except much slower to load)...
Posted by John on March 13, 2008 at 10:07 AM PDT #
How the tables have turned!
In the Mac OS 8, Mac OS 9, and Mac OS X Apple did all the porting of Java to their platform at their expense.
Now Java has lost a lot of momentum and the iPhone is the new hot thing. Sun is willing and excited about porting Java to Apple's platform at their expense.
Posted by Marcos on March 13, 2008 at 10:27 AM PDT #
I think that what Sun realizes is that SDK licenses don't decide what gets sold at the App Store. Apple decides. The license is just a piece of paper written by lawyers.
Look at Apple's track record following their own human interface guidelines, and you'll see that they don't pay that much attention to rules they've written.
Posted by Richard on March 13, 2008 at 01:45 PM PDT #
I have extensive experience developing for both Mac OS X and Java, and I can tell you that I will cringe if Java is allowed to run on the iPhone. While excellent for server apps, Java is absolutely horrid for User Interface. And that's what the iPhone's all about.
Posted by Eric Brunstad on March 13, 2008 at 05:55 PM PDT #
“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)”
Is that clause enforceable? Does bytecode, like java class files or p-codes count as interpreted code? What if my app has to lex, parse and “interpret” a user provided file? Or user provided input? What if I write a calculator?
Pretty much every program has, at some point, a loop waiting for input, some state variables and some sort of case statement. That's really all it takes to write a basic interpreter. It's not that I'm defining interpreter broadly, it's that it's such a fundamental concept in computer science.
Of course, if Apple really puts up a stink and won't negotiate, Sun can just deliver a compiler for Java, like gcj, that produces machine code targeting iPhone.
Posted by ben on March 16, 2008 at 05:36 PM PDT #
"Is that clause enforceable?'
Apple is the enforcer here, it's their platform, they can enforce anything they wish. If they don't want java on the phone, it's not going on the phone.
Also, I'm sure they're using "interpreted code" in the compiled vs. interpreted definition. Java, needing the JVM as it's interpreter counts as interpreted code.
"It's not that I'm defining interpreter broadly..."
Yes you are.
"Of course, if Apple really puts up a stink and won't negotiate, Sun can just deliver a compiler for Java, like gcj, that produces machine code targeting iPhone."
Again, if Apple allows it. You can't put any old code on the iPhone, this is a "gated community" type of platform. Also, the compiler for iphone? Really? Wouldn't that require lots of changes in existing code to run with the iPhone widgets and interface? Why wouldn't I just develop my app with the SDK?
Posted by Chris on March 17, 2008 at 05:30 AM PDT #