PDA

View Full Version : Sun Still in Discussions with Apple for Java on iPhone




MacRumors
Apr 25, 2008, 07:04 PM
http://www.macrumors.com/images/macrumorsthreadlogo.gif (http://www.macrumors.com)

Despite early claims (http://www.macrumors.com/2008/03/08/sun-bringing-java-to-iphone/) that Sun was planning on introducing Java to the iPhone with the SDK, it appears Sun is still in discussions with Apple regarding this plan.
But Sun still wants to put a JVM on iPhone through the iPhone SDK. "[Apple is] well aware of what we're doing, and we're in discussions," Klein said.In the meanwhile, Sun is working with a company called Innaworks who is offering (http://toucharcade.com/2008/04/16/alchemo-instant-java-mobile-to-iphone-converter/) an system that will port Java games into standalone iPhone SDK-based applications. This way, individual Java apps can be compiled into true iPhone applications, which will allow them to be considered individually for Apple's iTunes App Store.

Article Link (http://www.macrumors.com/iphone/2008/04/25/sun-still-in-discussions-with-apple-for-java-on-iphone/)



Telp
Apr 25, 2008, 07:09 PM
Well its good that they are still in talks with Apple about this. With any luck they will come to a nice compromise. I think Apple will help them, atleast, i think they should. It would make the phone more appealing to looking customers.

Me1000
Apr 25, 2008, 07:10 PM
Please... NOOOOOO!!!

Yuppi
Apr 25, 2008, 07:31 PM
While I strongly support Java on mobile devices, I fail to see how SUN could provide a way that satisfy the needs for a platform such as the iPhone. I would rather put my bets on the Dalvik VM which at least allows to use "real" java, and not this annoying "baby" J2ME java.
And I think that even SUN can't be stupid enough to make java Apps not look/behave like real Applications.
The problem for SUN is that they will loose the biggest market for Java that currently exists if they fail to address the new Android, iPhone platforms.

elppa
Apr 25, 2008, 07:57 PM
Sounds like Apple said “Thanks, but no thanks” and Sun said “we're not giving up that easily”.

Echoing the thoughts of others, Java on iPhone is more important to Sun than Apple. Same as Flash on iPhone is more important to Adobe than Apple.

How about both companies get Java 6 on the Mac first (not a 64bit intel only beta), though it is Apple who should take the can for this.

sebastianlewis
Apr 25, 2008, 07:59 PM
Please... NOOOOOO!!!

I second this... Java disgusts me (from an end user standpoint, it eats too much system resources and I just don't like Java, end of story).

Sebastian

yeroen
Apr 25, 2008, 08:12 PM
I second this... Java disgusts me (from an end user standpoint, it eats too much system resources and I just don't like Java, end of story).

Sebastian

Thirded (is that a word?)..

The last thing any iPhone needs is to bear is the bloated Java tit upon which the java-weenies find their suck.

Shadowriver
Apr 25, 2008, 08:14 PM
Major problems here are how to upload Java app in such secured 3rd party apps system ;> two possibilities in my head:

1. Apple set java apps in to AppStore and... check them like a native apps? ;p
2. Reduce API permissions to minimum (Boo!)

Web applets need a Java SE (it's for desktop) implementation first, but first we need simpler Java ME to think about it.

paulyras
Apr 25, 2008, 08:56 PM
At first glance, to me the Innaworks solution seems best, in some respects as all of the hardware is equivalent, so compiling each time is wasteful (for the moment, but I won't start a 3g lobby here). The problem then becomes distribution. Do you limit it to web sites with the Innaworks version along side normal Java code? Do you limit people to itunes downloadable Java apps?

I'd rather not compile on the fly, every time I want a java app, but there are still a lot of things I'd like to know better, before committing myself to a camp...

divabimbers
Apr 26, 2008, 01:48 AM
Honestly, I think something like this would be a boon to casual users/gamers though they wouldn't necessarily realize it. I'm thinking of those that like playing at sites like Pogo.com which uses Java. I don't know if it'd help increase sales but it certainly couldn't hurt if the iPhone could play games like these, making it a more appealing device to casual users/gamers.

Eraserhead
Apr 26, 2008, 06:39 AM
I'd rather not compile on the fly, every time I want a java app, but there are still a lot of things I'd like to know better, before committing myself to a camp...

That'd hit the battery life to something awful.

dr_lha
Apr 26, 2008, 06:45 AM
Do you limit people to itunes downloadable Java apps?
Apple does exactly that, yes. They're specifically limiting any iPhone app to those downloaded from the iTunes store, the "compile as native" solution to java would have to work that way too.

cube
Apr 26, 2008, 07:03 AM
No compromise. It should be possible to download Java apps from anywhere, like with any common phone.

I will never buy a phone which does not include an open Java platform.

clevin
Apr 26, 2008, 08:43 AM
I second this... Java disgusts me (from an end user standpoint, it eats too much system resources and I just don't like Java, end of story).

Sebastian

Thirded (is that a word?)..

The last thing any iPhone needs is to bear is the bloated Java tit upon which the java-weenies find their suck.

im not sure if you guys really understand java beyond the little animation in the webpage, its actually a essential underline part of OSX.

http://www.usenix.org/events/lisa05/tech/full_papers/schultschik/schultschik_html/sys_overview.gif

PS, OperaMINI will have chance to land if JVM is allowed/.

Sayer
Apr 26, 2008, 10:00 AM
Silly Sun people. Getting emails announcing the new SDK is not "discussions with Apple." So funny.

Maybe when the Touch OS X platform matures and expands beyond very power/CPU and memory limited devices we will see Apple open up to JVM, but not Flash, Apple won't lose another video content-delivery platform again.

cube
Apr 26, 2008, 10:09 AM
There are 1.8 billion Java phones as of 2007. You don't think the iPhone hardware is more powerful than most of them?

Rocketman
Apr 26, 2008, 10:11 AM
im not sure if you guys really understand java beyond the little animation in the webpage, its actually a essential underline part of OSX.

http://www.usenix.org/events/lisa05/tech/full_papers/schultschik/schultschik_html/sys_overview.gif

PS, OperaMINI will have chance to land if JVM is allowed/.

Your image noted, Classic has been deemphasized, Java is being debated with the anti-crowd ahead right now, cocoa is the leading edge forward, and carbon has also been deemphasized.

That chart shows several API's are compatible with OSX. That does not mean they are all installed in the palmtop implementation. If they were installable I would want to install MacDraw on an iPhone right away. :)

I think more people would want OS 4-9 compatibility than Java. Look at all those apps designed to run on crippled hardware and small screens! OS 4.2 users untie!

Okay, maybe a recompile instead.

Rocketman

elppa
Apr 26, 2008, 10:45 AM
im not sure if you guys really understand java beyond the little animation in the webpage, its actually a essential underline part of OSX.

http://www.usenix.org/events/lisa05/tech/full_papers/schultschik/schultschik_html/sys_overview.gif

PS, OperaMINI will have chance to land if JVM is allowed/.

As the Cocoa - Java bridge was deprecated with Leopard, I don't think that 2001 OS stack is particularly relevant.

Sure Java apps still run on OS X, but this idea Apple once had of having lots of java apps with cocoa GUIs sitting on top of them has died a death.

Apple is encouraging applications written in:
Objective C
Ruby
Python

Of course Java apps will always be able to run on the JVM is OS X, but they will be a long way from looking native.

And Opera Mini is not so relevant on the iPhone, as it already uses Safari, which at present offers the best mobile web browsing experience.

Also: Where is java used for animations on webpages? Javascript is used extensively for adding animation/dynamic behaviour to webpages. Java Applets are barely used.

J@ffa
Apr 26, 2008, 11:02 AM
Java sucks. Blunt, maybe, but not untrue. Just because it's on a lot of phones, doesn't mean it's any good. The vast majority of end users who use the java games or calculator bundled with their phone's OS don't know what powers it, and don't much care (as evidenced by the piles of .exes collected by new Mac users). Java on OS X is a joke: apps written in it are notorious memory hogs, their UIs almost always self-contained and ugly, and totally counter-intuitive. Whether this is Apple's implementation or endemic to Sun doesn't matter. It used to be REALbasic apps that were #1 in the comical stakes, now it's Java apps. If modern day desktops, with their processing power and oodles of memory have trouble running them, why should anyone have to tolerate it on a handheld device?

cube
Apr 26, 2008, 11:07 AM
Obviously you don't know Java. The only thing that sucks about it is that it's not Lisp.

Rocketman
Apr 26, 2008, 11:41 AM
Apple is encouraging applications written in:
Objective C
Ruby
Python


And this is the real point, isn't it? Apple is not going to disclose a product roadmap or discuss unreleased products. But they WILL tell developers what course to take so they are not stranded IF the product line itself survives.

It seems the iPhone has legs and also follow-on products, so my advise is to listen to this advise and enjoy the ride. Stop barking at shadows, whether they be Java, Carbon, Flash, or whatever.

Rocketman

elppa
Apr 26, 2008, 11:50 AM
my advise is to listen to this advise and enjoy the ride. Stop barking at shadows, whether they be Java, Carbon, Flash, or whatever.

Rocketman

Like the advice/pressure to move to Xcode a couple of years back. Apple wouldn't say why at the time, but their reasons became very apparent later.

cube
Apr 26, 2008, 11:51 AM
I will enjoy the ride on Nokia with Symbian, Java, WiMax and DVB-H.

maxjg
Apr 26, 2008, 02:14 PM
Quite frankly, I don't want every crappy win developer attempting to port their poorly designed app to the iPhone using Java. That's what's going to happen if this goes through. Java apps are slow, generally ugly, and not what Apple wants.

EagerDragon
Apr 26, 2008, 03:01 PM
Java is very important for Sun, so they will not give up easily. The iPhone does not need Java to succeed.

Please help me understand why people feel they need java in the iPhone?
Apple is providing a full fledge and free programing environment that generates fast native applications.

What makes java on the iPhone attractive for you?

As to flash ... I do not see it happening either, unless it is changed so all it can do is play videos. Out of the box flash is a programing environment. So not very likely it will happen either.

mikey.f
Apr 26, 2008, 06:20 PM
I certainly hope they could manage to come to an agreement :cool:

winterspan
Apr 26, 2008, 08:03 PM
I think if anything, they should just use a bridge/wrapper to allow a Java language interface to the mobile OSX libraries and Cocoa Touch through something like a customized Dalvik VM. I'm sure Google has done a ton of work on optimizing the Java runtime for their Android initiative, and that should be open source.
What I FOR SURE do NOT want to see is ANY kind of java GUI/windowing system and any way to easily port old java interface apps to the iPhone. What a travesty that would be!

Besides, java blows and is a waste of time. A much better idea would be an optimized CLR runtime on the iPhone and corresponding wrapper for .NET/C# to connect with the native libraries...

clevin
Apr 26, 2008, 10:38 PM
Quite frankly, I don't want every crappy win developer attempting to port their poorly designed app to the iPhone using Java. That's what's going to happen if this goes through. Java apps are slow, generally ugly, and not what Apple wants.
I don't understand why you even oppose the idea since you absolutely have 100% control of not installing any JVM or using any Java app. Why oppose giving other ppl who want it a chance? It doesn't affect you at all.
Java is very important for Sun, so they will not give up easily. The iPhone does not need Java to succeed.
.
Its not about iPhone being successful, its about to make users' experience better. Why so many people putting apple's $$$ ahead of end-users' benefit when they reasoning?

PS. JAVA will be 100% OSS soon, SUN won't get $$$ from it. Not everybody is closing things up and locking their eyes on money like APPL.

John.B
Apr 27, 2008, 12:25 AM
With any luck they will come to a nice compromise.
With any luck Apple will tell Sun to take a long walk off a short pier.

The only people who want this either own Sun stock or are (for whatever reason) unwilling to recode their apps to Cocoa. That means the apps will look and behave like Java applets or Java UI apps. Ugh. No thanks.

Note to Sun: Apple's just not that into you. ;)

EagerDragon
Apr 27, 2008, 09:41 AM
I don't understand why you even oppose the idea since you absolutely have 100% control of not installing any JVM or using any Java app. Why oppose giving other ppl who want it a chance? It doesn't affect you at all.

Its not about iPhone being successful, its about to make users' experience better. Why so many people putting apple's $$$ ahead of end-users' benefit when they reasoning?

PS. JAVA will be 100% OSS soon, SUN won't get $$$ from it. Not everybody is closing things up and locking their eyes on money like APPL.

You still have not given us a reason why it is important to add java to the iPhone. There are other languages and also there is a very complete iPhone SDK that Apple released.

Why in your mind is Java important?
What would we gain that otherwise we would loose?

Eraserhead
Apr 27, 2008, 09:55 AM
Apple is encouraging applications written in:
Objective C
Ruby
Python

Although you can use the latter two, they really want you to use the former option.

clevin
Apr 27, 2008, 10:29 AM
You still have not given us a reason why it is important to add java to the iPhone. There are other languages and also there is a very complete iPhone SDK that Apple released.

Why in your mind is Java important?
What would we gain that otherwise we would loose?
i think the starting point of that thinking is not right.

you would lose operamini, gmail java app, for two.. easily portable platform independent java apps which are already out there for three.

there is no one stop apple from allowing other environments, but that does not mean java isn't useful.

if java is indeed useless, why do you think it is still alive and kicking?

there is no conflict in allowing multiple environments. no one even asked for pre-installation.

Why oppose offering a powerful options that user can install if they want to? Why you, or me, or apple, should dictate what OPTIONS users should have?:confused:

Eraserhead
Apr 27, 2008, 10:32 AM
But you can use Safari and Mail respectively, so does it really matter?

Seriously I think the problem with Java is more that it might be difficult to force distribution with the AppStore more than anything.

clevin
Apr 27, 2008, 10:37 AM
But you can use Safari and Mail respectively, so does it really matter?

Seriously I think the problem with Java is more that it might be difficult to force distribution with the AppStore more than anything.

for some, no, for others, yes. see, really not about everybody want/need it, just an option.

Eraserhead
Apr 27, 2008, 10:43 AM
for some, no, for others, yes. see, really not about everybody want/need it, just an option.

What does Opera Mini offer that Safari mobile doesn't?

What does GMail mobile offer that Mail mobile doesn't?

Both of them are good apps, and some of the most useful applications out there, but are they really so much worse than Apple's.

clevin
Apr 27, 2008, 10:49 AM
What does Opera Mini offer that Safari mobile doesn't?

What does GMail mobile offer that Mail mobile doesn't?

what safari offers firefox doesn't?

what thunderbird offers mail.app doesn't?

what openoffice offers iwork doesn't?

what windows offers OSX doesn't?

Its about competition...

To say one thing, operamini always connect through a proxy server, so if your local internet provider has filter for some content (:D), opera mini will be able to connect while mobile safari will not.

Finally, I think its more about apple worries that java will open too many doors to 3rd party apps and difficult to control. Opera mini and gmail app are only a tiny, tiny, tiny fraction of those java apps.

cube
Apr 27, 2008, 11:00 AM
You don't understand that there are a lot of little J2ME apps that work on most cheap phones which were made by companies which are not tech giants like Goggle and have no interest in developing them multiple times.

And don't confuse Java developers with Windows developers.

EagerDragon
Apr 27, 2008, 12:13 PM
i think the starting point of that thinking is not right.

you would lose operamini, gmail java app, for two.. easily portable platform independent java apps which are already out there for three.

there is no one stop apple from allowing other environments, but that does not mean java isn't useful.

if java is indeed useless, why do you think it is still alive and kicking?

there is no conflict in allowing multiple environments. no one even asked for pre-installation.

Why oppose offering a powerful options that user can install if they want to? Why you, or me, or apple, should dictate what OPTIONS users should have?:confused:

You are completely missing the point, nobody said Java is useless. Java has its place.

The question in front of you is very simple ..... Why do you feel it is necessary to have java in the iPhone?

and the second question is: What do we have to gain that otherwise we would not have?

All other devices and systems aside, stick to the iPhone please.

I never said I oppose it, I asked for your view of why it is needed in the iPhone, It is not a challenge, it is a way to educate me as to why some people are pro the idea. Not looking to shutdown your points, I am here to learn about your thinking.

clevin
Apr 27, 2008, 12:15 PM
You are completely missing the point, nobody said Java is useless. Java has its place.

The question in front of you is very simple ..... Why do you feel it is necessary to have java in the iPhone?

and the second question is: What do we have to gain that otherwise we would not have?

All other devices and systems aside, stick to the iPhone please.

did I mention the tiny operamini's beat the filter function? or somebody else mentioned tiny small java apps that would be fun and sometimes very useful for some people?

Also due to the fact Java being platform-independent, the intra-platform developing will greatly benefit all mobile device users.

roisin and mac
Apr 27, 2008, 01:57 PM
I second this... Java disgusts me (from an end user standpoint, it eats too much system resources and I just don't like Java, end of story).

Sebastian

Thirded (is that a word?)..

The last thing any iPhone needs is to bear is the bloated Java tit upon which the java-weenies find their suck.

Java sucks. Blunt, maybe, but not untrue. Just because it's on a lot of phones, doesn't mean it's any good. The vast majority of end users who use the java games or calculator bundled with their phone's OS don't know what powers it, and don't much care (as evidenced by the piles of .exes collected by new Mac users). Java on OS X is a joke: apps written in it are notorious memory hogs, their UIs almost always self-contained and ugly, and totally counter-intuitive. Whether this is Apple's implementation or endemic to Sun doesn't matter. It used to be REALbasic apps that were #1 in the comical stakes, now it's Java apps. If modern day desktops, with their processing power and oodles of memory have trouble running them, why should anyone have to tolerate it on a handheld device?


OK, I'm confused as heck :) I thought Java was a Good Thing--I often see it mentioned in the cons for the iphone, that it doesn't 'have Java', so I'm surprised to read this--I didn't know java was so loathed, lol!

But I don't quite know what it is, and though I tried wikipedia, the article is still too much for me! Can you explain it for me at all?

Thanks!!

cube
Apr 27, 2008, 02:01 PM
It's just a fanboy thing. If the iPhone had Java from the get go or OSX emphasized it, they would be gloating all over it.

elppa
Apr 27, 2008, 03:03 PM
OK, I'm confused as heck :) I thought Java was a Good Thing--I often see it mentioned in the cons for the iphone, that it doesn't 'have Java', so I'm surprised to read this--I didn't know java was so loathed, lol!

But I don't quite know what it is, and though I tried wikipedia, the article is still too much for me! Can you explain it for me at all?

Thanks!!

Ok, I'll do my best!

Java is a programming language (with its associated class libraries for things like parsing XML, writing files, handling dates and time etc.), but it is much more than another programming language:

Point #1 — Cross Platform Conundrum
Most computer programs are compiled to run on a single processor. Windows programs are compiled to run on the x86 (Intel/AMD) architecture, Mac programs were traditionally compiled to run on the PowerPC architecture (although now most Mac programs are compiled to run on both, these are called by Apple “universal binaries”). iPhone programs are compiled to run on the ARM architecture.

Problem: If you want to write for PC and Mac, you need to write two separate applications. Want to write for iPhone? That will be another application. Want to write for Symbain? Guess what? Another application. Oh dear.

Solution: Java. Java provides a method of writing applications which target multiple platforms.

Point #2 — Java Virtual Machine to the Rescue!
Java programs are not compiled to run on x86, PowerPC, ARM or any other processor. They are compiled to run on the Java Virtual Machine (or JVM, for short). This virtual machine sits on top of a real processor. This means that (providing an implementation of the JVM exists for the platform you are targeting) your Java program will work without changing a single line of code.

Advantages: Write once, run anywhere. PC, Mac, Linux, Symbain etc.

Disadvantages: Because the code is running on the virtual machine, it is abstracted one layer further away from the hardware, which means it will execute slower. How much slower depends from program to program, sometimes it is not noticeable, sometimes it is very noticeable (this was particularly the case in the past, not so much now) sometimes the portability benefits outweigh the performance issues.

Point #3 — Does a cross platform look and feel suffice?
Java programs need a way to display a graphical user interface (windows, menus, textboxes etc) to the user.

Problem: Java runs on many different platforms, each with their own separate windowing systems and interface guidelines.

Solution: Java solves this problem with the SWING and AWT libraries, which allow for the creation of Graphical User Interfaces which work the same across platforms. They will look different. For example, a JButton on Windows will look like a standard Windows Button, a JButton on Mac will look like a standard Mac Button. There are some inconsistencies though (a button is a very simple example).

Disadvantages: Java application often look “out of place” and feel “non-native” to the platform they run. For example, even if a Java application looks very Mac like, it cannot use the standard Mac toolbars used in iWork, Preview etc. and it cannot access the services menu. So even if it looks the same as all you Mac applications, it will never work the same as your Mac applications, as it will work like a Java application.

Summary
So it's more than just “fanboy” thing. The disadvantages which I have outlined above are often summed up in one phrase “slow and ugly”. Whilst the real issues are a good deal more complicated than that there is a thought that Java programs will never ever work as well as native applications targeted at a single platform.

Google have used Java to build most of their services and they make a little bit of money! All of WebObjects is written in Java (iTunes Store, Apple Online Store etc.). It is also I believe the most popular programming language in the world. So it does have a lot going for it.

Footnote: I've not told the “whole story” above in order to keep it simple. Of course there are different types of Java, J2SE (Standard Edition), J2ME (Mobile Edition) and J2EE (Enterprise Edition) and different versions as well: Java 5, Java 6 etc.

The responsibility of maintaining the JVM varies from platform to platform. Sun are responsible for the Windows JVM, Apple is responsible for the Mac JVM. Apple lag behind Sun, they only have Java 6 in beta on the Mac, whereas Java 6 has been available on other platforms for over a year now.

Because of the differences in JVM from platform to platform, the “Write once, run anywhere” mantra isn't always accurate.

Where I use the phrase “standard Mac application”, it should be taken to mean an Application built in Xcode, using the Cocoa frameworks.

John.B
Apr 27, 2008, 04:15 PM
Advantages: Write once, run anywhere. PC, Mac, Linux, Symbain etc.
That's the spin from Sun, anyway... The reality can be just a little bit trickier.

Disadvantages: Java application often look “out of place” and feel “non-native” to the platform they run. For example, even if a Java application looks very Mac like, it cannot use the standard Mac toolbars used in iWork, Preview etc. and it cannot access the services menu. So even if it looks the same as all you Mac applications, it will never work the same as your Mac applications, as it will work like a Java application.
'Zactly!

EagerDragon
Apr 27, 2008, 04:43 PM
Ok, I'll do my best!

Java is a programming language (with its associated class libraries for things like parsing XML, writing files, handling dates and time etc.), but it is much more than another programming language:

Point #1 — Cross Platform Conundrum
Most computer programs are compiled to run on a single processor. Windows programs are compiled to run on the x86 (Intel/AMD) architecture, Mac programs were traditionally compiled to run on the PowerPC architecture (although now most Mac programs are compiled to run on both, these are called by Apple “universal binaries”). iPhone programs are compiled to run on the ARM architecture.

Problem: If you want to write for PC and Mac, you need to write two separate applications. Want to write for iPhone? That will be another application. Want to write for Symbain? Guess what? Another application. Oh dear.

Solution: Java. Java provides a method of writing applications which target multiple platforms.

Point #2 — Java Virtual Machine to the Rescue!
Java programs are not compiled to run on x86, PowerPC, ARM or any other processor. They are compiled to run on the Java Virtual Machine (or JVM, for short). This virtual machine sits on top of a real processor. This means that (providing an implementation of the JVM exists for the platform you are targeting) your Java program will work without changing a single line of code.

Advantages: Write once, run anywhere. PC, Mac, Linux, Symbain etc.

Disadvantages: Because the code is running on the virtual machine, it is abstracted one layer further away from the hardware, which means it will execute slower. How much slower depends from program to program, sometimes it is not noticeable, sometimes it is very noticeable (this was particularly the case in the past, not so much now) sometimes the portability benefits outweigh the performance issues.

Point #3 — Does a cross platform look and feel suffice?
Java programs need a way to display a graphical user interface (windows, menus, textboxes etc) to the user.

Problem: Java runs on many different platforms, each with their own separate windowing systems and interface guidelines.

Solution: Java solves this problem with the SWING and AWT libraries, which allow for the creation of Graphical User Interfaces which work the same across platforms. They will look different. For example, a JButton on Windows will look like a standard Windows Button, a JButton on Mac will look like a standard Mac Button. There are some inconsistencies though (a button is a very simple example).

Disadvantages: Java application often look “out of place” and feel “non-native” to the platform they run. For example, even if a Java application looks very Mac like, it cannot use the standard Mac toolbars used in iWork, Preview etc. and it cannot access the services menu. So even if it looks the same as all you Mac applications, it will never work the same as your Mac applications, as it will work like a Java application.

Summary
So it's more than just “fanboy” thing. The disadvantages which I have outlined above are often summed up in one phrase “slow and ugly”. Whilst the real issues are a good deal more complicated than that there is a thought that Java programs will never ever work as well as native applications targeted at a single platform.

Google have used Java to build most of their services and they make a little bit of money! All of WebObjects is written in Java (iTunes Store, Apple Online Store etc.). It is also I believe the most popular programming language in the world. So it does have a lot going for it.

Footnote: I've not told the “whole story” above in order to keep it simple. Of course there are different types of Java, J2SE (Standard Edition), J2ME (Mobile Edition) and J2EE (Enterprise Edition) and different versions as well: Java 5, Java 6 etc.

The responsibility of maintaining the JVM varies from platform to platform. Sun are responsible for the Windows JVM, Apple is responsible for the Mac JVM. Apple lag behind Sun, they only have Java 6 in beta on the Mac, whereas Java 6 has been available on other platforms for over a year now.

Because of the differences in JVM from platform to platform, the “Write once, run anywhere” mantra isn't always accurate.

Where I use the phrase “standard Mac application”, it should be taken to mean an Application built in Xcode, using the Cocoa frameworks.


Well put.

In an environment like that, one ends up programming for a common environment, so one can not normally take advantage of the uniqueness of the platform.

Java is great for applications that have no GUI interface and for HTML based environments. When you try to create a FAT client with a sophisticated interface you end up with a compromise. This write once run everywhere causes the issues that most people here cause as ugly or unnatural interfaces.

I think java is great, while I may want to run a web client on my phone, I do not normally want to run a web application server like WebSphere on my phone. Java is great for creating server side web applications, not for client side applications.

As to all those free apps written in java ..... If they are so great they should be re-written using the iPhone SDK so they can be better and take full advantage of the hardware and the multi-touch interface.

elppa
Apr 27, 2008, 04:50 PM
That's the spin from Sun, anyway... The reality can be just a little bit trickier.

Read the footnote! ;)

It was already long enough, I had to leave some bits out.

cube
Apr 27, 2008, 04:59 PM
How many of you anti-Java people have actually used Java on a phone? It's a completely slimmed-down environment.

There's even much smaller Java for smart cards.

EagerDragon
Apr 27, 2008, 06:25 PM
How many of you anti-Java people have actually used Java on a phone? It's a completely slimmed-down environment.

There's even much smaller Java for smart cards.

Not anti-java, not anti-java on iPhone, I just see that there is no real value given that there is a perfectly good SDK that takes full advantage of the hardware.

IMHO, java does not bring anything to the iPhone that the SDK does not already bring. iPhone does not need "run anywhere" and while there is a lot of java for phones out there, none takes advantage of the features of the iPhone, so I see no reason to run it on the iPhone.

I had several java apps in my old Treo 650 and they were ok, but not great. There maybe 300 to 400 java for phone apps out there, some are real crap, so lets say 200 good java apps, there will be 1,000 iPhone specific apps by December, why worry about apps not made for the iPhone?

At work we do a lot of web applications in Java to the tune of about 25 million lines of code a year, so I am very familiar with what it can do. Java needs to forget its run anywhere and instead run for iPhone specifically to be useful.

The iPhone is a game changer with a very sophisticated interface that is still evolving, to be useful, Java needs adapt, not the other way around.

It has nothing to do with being a fan, it has to do with vision and recognizing that the iPhone is a computer and not your typical phone.

Java needs the iPhone, the iPhone does not need java.

Give me a good reason why the iPhone needs java other than to run the generic programs for phones that exist out there which a lot of people are going to find that they do not use the features that make the iPhone an iPhone.

Make a believer out of me.

200,000 SDK downloads, at 10% real programmers with full intention to develop, that is 20,000 programmers, if you assume 5 programmers per team, that is 4,000 iPhone apps being worked-on. Some will come from smaller groups of 1 to 3 programmers so I am being very conservative, I expect the number to be closer to 5,000.

Why do we need java on the iPhone?

John.B
Apr 27, 2008, 11:13 PM
Read the footnote! ;)

It was already long enough, I had to leave some bits out.
Missed that! Perfectly summarized!

How many of you anti-Java people have actually used Java on a phone? It's a completely slimmed-down environment.
That's fine for phones that don't have another programming environment, but what would be the point with Java on the iPhone? There is already a killer Cocoa-based UI for the iPhone, Java would just dumb that down for apps that may (or may not) "run anywhere™" but won't take advantage of specific iPhone features.

Remember, if the experience on the current crop of phones was so l33t there wouldn't even be an iPhone or SDK. Nobody is waiting in line for any other phones, are they?

BTW, I'm an ex-Java coder. Java is fine for the server, but the promise for Java on the client is just a tad oversold.

batchtaster
Apr 28, 2008, 04:14 AM
How many of you anti-Java people have actually used Java on a phone? It's a completely slimmed-down environment.

I think the word you're looking for is "crippled". Otherwise they'd use that environment everywhere. They don't, for good reason.

clevin
Apr 28, 2008, 08:41 AM
I think the word you're looking for is "crippled". Otherwise they'd use that environment everywhere. They don't, for good reason.
I would consider that word if you would admit OSX on iPhone is crippled, and safari on iPhone is crippled as well.

Rocketman
Apr 28, 2008, 11:40 AM
The iPhone does not need Java to succeed.

Please help me understand why people feel they need java in the iPhone?


A large debugged code base immediately compatible with any platform Java itself lives on.

Rocketman

blybug
Apr 28, 2008, 11:51 AM
JPlease help me understand why people feel they need java in the iPhone?
Apple is providing a full fledge and free programing environment that generates fast native applications.

What makes java on the iPhone attractive for you?


Citrix applications can run in a Java environment though my university hospital's Citrix web interface, including MS Office, remote desktop, and a few Windows-only apps such as the electronic medical record and patient scheduling systems. It would be very handy to have access to these Citrix applications via the iPhone.

Of course maybe Citrix will create a native iPhone client app and then there would be no need to run this through Java. :rolleyes:

pseudonymph
Apr 28, 2008, 12:13 PM
Citrix applications can run in a Java environment though my university hospital's Citrix web interface, including MS Office, remote desktop, and a few Windows-only apps such as the electronic medical record and patient scheduling systems. It would be very handy to have access to these Citrix applications via the iPhone.

you SERIOUSLY think running excel/remote desktop through citrix through java through your web browser ON THE IPHONE would be a good experience? You actually would PAY for this?

The iphone is a small computer but it really shouldn't try to do everything a normal computer does. the use cases are very different for most things, like spreadsheets

clevin
Apr 28, 2008, 12:15 PM
you SERIOUSLY think running excel/remote desktop through citrix through java through your web browser ON THE IPHONE would be a good experience? You actually would PAY for this?
you can skip browser part if JVM can be supported natively.

and when did you ever see a remote desktop being smooth anyway?

pseudonymph
Apr 28, 2008, 12:17 PM
you can skip browser part if JVM can be supported natively.

and when did you ever see a remote desktop being smooth anyway?

That's my point. Remote desktop sucks enough when you're in a high bandwidth location like an office network on a regular computer. Why make that experience even worse by using remote desktop on a 480x320 screen over a spotty cell connection?

My guess is that 99% of people asking for stuff like this will never use it, or when they do use it they'll find the experience so bad that they don't do it more than once. And I'm not sure how much of that remaining 1% would actually pay for the privilege of jumping through all those hoops.

blybug
Apr 28, 2008, 12:38 PM
That's my point. Remote desktop sucks enough when you're in a high bandwidth location like an office network on a regular computer. Why make that experience even worse by using remote desktop on a 480x320 screen over a spotty cell connection?

My guess is that 99% of people asking for stuff like this will never use it, or when they do use it they'll find the experience so bad that they don't do it more than once. And I'm not sure how much of that remaining 1% would actually pay for the privilege of jumping through all those hoops.

I'm quite certain my hospital will never make a native iPhone version of our EMR. Remote desktop of one form or another is the best I can ever hope for. Currently I've been using iPhone VNSea to remote to my home Mac, then going into the Citrix web site through Safari, to access the EMR or my office computer.

I use it occasionally when I need to, and it works, even over EDGE. I'm not suggesting that I would do my taxes or write the great American novel this way. I guess I'm that 1% of people asking for this sort of thing that would (and already do) use it. And since it would mean one less hoop to jump through than what I'm currently doing, I'd definitely pay for it.

Is it that disturbing to you that other people have needs different from yours that you must write replies full of sarcastic capital shouting letters? :(

cube
Apr 28, 2008, 01:07 PM
Not anti-java, not anti-java on iPhone, I just see that there is no real value given that there is a perfectly good SDK that takes full advantage of the hardware.


If you don't like Java on the iPhone, just don't use it. But denying the right of other people to access essential applications is simply fascist.

pseudonymph
Apr 28, 2008, 02:54 PM
I'm quite certain my hospital will never make a native iPhone version of our EMR. Remote desktop of one form or another is the best I can ever hope for. Currently I've been using iPhone VNSea to remote to my home Mac, then going into the Citrix web site through Safari, to access the EMR or my office computer.

I use it occasionally when I need to, and it works, even over EDGE. I'm not suggesting that I would do my taxes or write the great American novel this way. I guess I'm that 1% of people asking for this sort of thing that would (and already do) use it. And since it would mean one less hoop to jump through than what I'm currently doing, I'd definitely pay for it.

Is there not another device out there that would make accessing this data on the go easier? I just think going for that device instead of going for the iphone would work out better in your case.

Is it that disturbing to you that other people have needs different from yours that you must write replies full of sarcastic capital shouting letters? :(
No, I just think the desktop experience is a terrible thing to replicate on a small phone. And there are plenty of devices outside of the iphone (I know we all tend to have iphone blinders on here) that do other things better, the iphone shouldn't really try to do all things for all people or else it won't do anything well (see: windows).

cube
Apr 28, 2008, 03:07 PM
Nobody said Sun wants to bring Java SE to the iPhone.

The point here is Java ME.

blybug
Apr 28, 2008, 03:22 PM
Is there not another device out there that would make accessing this data on the go easier? I just think going for that device instead of going for the iphone would work out better in your case.
Of course my MBP and PowerMac (even the Dell box in my office at work) are vastly superior devices for accessing this data. They are also better for web browsing, contact and calendar management, watching YouTube, getting directions...

But short of carrying my laptop everywhere I go and finding WiFi access, then the next best device I can think of (distant 3rd or 4th to be sure, but nice to have when I need it) would be the phone I already carry with me everywhere with Java support as an option...are you suggesting I should get an additional mobile device/phone/PDA for this purpose? I doubt there is one that can do better than what I am already doing with the iPhone. :confused:

EagerDragon
Apr 28, 2008, 06:20 PM
If you don't like Java on the iPhone, just don't use it. But denying the right of other people to access essential applications is simply fascist.

I don't make the decision, Steve does. Send him an email, call him Fascist and lets see how well he listen to the rest of your email.

A large debugged code base immediately compatible with any platform Java itself lives on.

Rocketman
Rocketman, I always love your posts, you are one of my favorites in this forum, however you did state the same thing (large body of pre-existing work). You did not state what makes those particular applications important given that they do not take advantage of the iPhone features that make the iPhone an iPhone. I do not believe there is a single person here that does not understand that there is a huge body of java applications out there, however not every one is going to want to run them all. There is always a handful that one thinks nobody should do without. What is your handful and why? Elaborate.

Citrix applications can run in a Java environment though my university hospital's Citrix web interface, including MS Office, remote desktop, and a few Windows-only apps such as the electronic medical record and patient scheduling systems. It would be very handy to have access to these Citrix applications via the iPhone.

Of course maybe Citrix will create a native iPhone client app and then there would be no need to run this through Java. :rolleyes:

Now that is very interesting .... For one I was not aware that Citrix had a java client, and second it never occurred to me that one would want to be able to interact with windows applications. It just never occurred to me, great point and very valid.
---

To all, I am not against it, I am just trying to understand for my own education and for the education of others that may want to keep an open mind, what java would bring to the table that is missing if all applications are created only by using the Apple SDK.

This is a friendly discussion / exchange of ideas.

Help me and others see the way. People here are very passionate about this issue, lets discuss as friends, I and others should have an opportunity to see the light.

John.B
Apr 28, 2008, 11:38 PM
A large debugged code base immediately compatible with any platform Java itself lives on.
You believe the JVM implemented on the iPhone will be bug-free? And the UI differences will be compatible out-of-the-gate? I don't have that impression at all. :shrug: Its moot anyway, as a native JVM isn't coming to the iPhone any time soon.

knightlie
Apr 29, 2008, 08:50 AM
Thirded (is that a word?)..

No.

The last thing any iPhone needs is to bear is the bloated Java tit upon which the java-weenies find their suck.

Gee, that's a shame, because all the "Java-weenies" (note Java is a name, and starts with a capital letter) were planning on forcing you to use it. Now what are they going to do to specifically offend you and your friends?

Leaving aside the offensive rhetoric, Java being available on the iPhone will help in the corporate sector. Existing J2ME apps might well just go straight on.

knightlie
Apr 29, 2008, 08:54 AM
That's my point. Remote desktop sucks enough when you're in a high bandwidth location like an office network on a regular computer. Why make that experience even worse by using remote desktop on a 480x320 screen over a spotty cell connection?

My guess is that 99% of people asking for stuff like this will never use it, or when they do use it they'll find the experience so bad that they don't do it more than once. And I'm not sure how much of that remaining 1% would actually pay for the privilege of jumping through all those hoops.

No-one is advocating doing a full days work on an iPhone using remote desktop, but for those situations where you need to dive into your desktop machine to do something - look something up, or upload a file - it would be very useful. Logmein.com uses a Java client and works very well indeed, even in a browser.

roisin and mac
Apr 30, 2008, 07:19 PM
Ok, I'll do my best!

Java is a programming language (with its associated class libraries for things like parsing XML, writing files, handling dates and time etc.), but it is much more than another programming language:

Point #1 — Cross Platform Conundrum
Most computer programs are compiled to run on a single processor. Windows programs are compiled to run on the x86 (Intel/AMD) architecture, Mac programs were traditionally compiled to run on the PowerPC architecture (although now most Mac programs are compiled to run on both, these are called by Apple “universal binaries”). iPhone programs are compiled to run on the ARM architecture.

Problem: If you want to write for PC and Mac, you need to write two separate applications. Want to write for iPhone? That will be another application. Want to write for Symbain? Guess what? Another application. Oh dear.

Solution: Java. Java provides a method of writing applications which target multiple platforms.

Point #2 — Java Virtual Machine to the Rescue!
Java programs are not compiled to run on x86, PowerPC, ARM or any other processor. They are compiled to run on the Java Virtual Machine (or JVM, for short). This virtual machine sits on top of a real processor. This means that (providing an implementation of the JVM exists for the platform you are targeting) your Java program will work without changing a single line of code.

Advantages: Write once, run anywhere. PC, Mac, Linux, Symbain etc.

Disadvantages: Because the code is running on the virtual machine, it is abstracted one layer further away from the hardware, which means it will execute slower. How much slower depends from program to program, sometimes it is not noticeable, sometimes it is very noticeable (this was particularly the case in the past, not so much now) sometimes the portability benefits outweigh the performance issues.

Point #3 — Does a cross platform look and feel suffice?
Java programs need a way to display a graphical user interface (windows, menus, textboxes etc) to the user.

Problem: Java runs on many different platforms, each with their own separate windowing systems and interface guidelines.

Solution: Java solves this problem with the SWING and AWT libraries, which allow for the creation of Graphical User Interfaces which work the same across platforms. They will look different. For example, a JButton on Windows will look like a standard Windows Button, a JButton on Mac will look like a standard Mac Button. There are some inconsistencies though (a button is a very simple example).

Disadvantages: Java application often look “out of place” and feel “non-native” to the platform they run. For example, even if a Java application looks very Mac like, it cannot use the standard Mac toolbars used in iWork, Preview etc. and it cannot access the services menu. So even if it looks the same as all you Mac applications, it will never work the same as your Mac applications, as it will work like a Java application.

Summary
So it's more than just “fanboy” thing. The disadvantages which I have outlined above are often summed up in one phrase “slow and ugly”. Whilst the real issues are a good deal more complicated than that there is a thought that Java programs will never ever work as well as native applications targeted at a single platform.

Google have used Java to build most of their services and they make a little bit of money! All of WebObjects is written in Java (iTunes Store, Apple Online Store etc.). It is also I believe the most popular programming language in the world. So it does have a lot going for it.

Footnote: I've not told the “whole story” above in order to keep it simple. Of course there are different types of Java, J2SE (Standard Edition), J2ME (Mobile Edition) and J2EE (Enterprise Edition) and different versions as well: Java 5, Java 6 etc.

The responsibility of maintaining the JVM varies from platform to platform. Sun are responsible for the Windows JVM, Apple is responsible for the Mac JVM. Apple lag behind Sun, they only have Java 6 in beta on the Mac, whereas Java 6 has been available on other platforms for over a year now.

Because of the differences in JVM from platform to platform, the “Write once, run anywhere” mantra isn't always accurate.

Where I use the phrase “standard Mac application”, it should be taken to mean an Application built in Xcode, using the Cocoa frameworks.

Wow, what a fantastic explanation! I especially liked the problem/solution, advantages/disadvantages bits. I think I'm going to bookmark this page so I can come back to it when I need a refresher on it. So basically, java is something you use to make something else. Right, I think I got that one down. Is there anyone to tell me what flash is, then (again, more or less). It's just that I take it the iphone doesn't support that either, and I once saw someone say that it was dumb that it didn't because, '90% of what's worth it on the Internet is Flash'.

Personally, I've come across flash (that I know of, because it said so somewhere :P) on some brand websites, and have found it kinda irksome. For instance, sometimes I check out the site for Kipling bags, but I always give up after a couple of clicks because it takes longer to load, I have to go find little arrows and stuff on the screen to scroll, I can't save images or print easily to take with me to the store, and it doesn't make it more fun to look at after the novelty of the automatic changes wears off. But that may be just an idiotic way to use flash, so I'd love to know more about what flash is! Again, I tried wikipedia, but I'm in way over my head here :( I guess I'm one of those people who learns about computers from the outsied in; first we get familiar with the user interface (that's the right word I think?), then we begin to get interested in what's underneath and how it all works :D

elppa
May 3, 2008, 09:44 PM
Jonathan Schwartz, CEO of Sun Microsystems has a phone without Java ME.

Any guesses which one?

Hint: At least one other Silicon Valley CEO carries one daily.
Hint Hint: It begins with “i” and ends in “Phone”.

;)

[source] (http://www.engadgetmobile.com/2008/05/02/the-engadget-mobile-interview-jonathan-schwartz-ceo-of-sun/)