Sun prepping Java for iPhone: your craplet investment is safe

Status
Not open for further replies.

infra_red_dude

Wire muncher!
As for why I hate Java, there are several reasons:
1. It is excruciatingly slow;
Code optimization is always possible, but since it defeats the purpose of being cross-platform its usually not. Java apps rely basically on the VM hence optimization is extremely easy and possible and we haf optimized java apps which beat their native counterparts in terms of raw speed of execution.

2. Java applications are ugly;

3. They are non-native, so all the UI elements look out of place;
Both the points are same and NOT TRUE. Java apps can haf both the default UI as well as native UI. This is something even a fresher who's started learning java would tell you.

4. They don't have any of the awesome features we expect from Cocoa applications; and
Like? How can we come to this conclusion now? This point mebbe true and valid but as of now there are no java apps for iphone, so how can this comparison be made?

5. It's cross-platform.
So?

Looking at those points, I haf not doubt is saying that the guy is NOT a java developer since he doesn't know basic things of java. Or if he is then he's been paid to say that.

I mean.. come on... a person claiming to be a java developer doesn't know about optimizations and native UI?? :lol: makes me feel sorry for him as he'd be mocked upon by the whole world for his stupid and baseless comments!!
 

gxsaurav

You gave been GXified
1. It is excruciatingly slow;

Not on KVM, Nokia N Series, SE P series, K series & iPhone with lots of RAM.


2. Java applications are ugly;

You obviously haven't seen JAVA apps for mobile. Have a look at one of the Concept UI I made for Yahoo Messenger for JAVA.

3. They are non-native, so all the UI elements look out of place;

It can be made to run with native UI.

4. They don't have any of the awesome features we expect from Cocoa applications

Each & every feature of cocoa applications can be given in Java
 

infra_red_dude

Wire muncher!
Not on KVM, Nokia N Series, SE P series, K series & iPhone with lots of RAM.
Even their PC counterparts can be optimized for speed and KVM is the virtual machine used on N series, P series.. A to Z and 1 to 0 series and whatever series. Its not a mobile device.

You obviously haven't seen JAVA apps for mobile
+1

Each & every feature of cocoa applications can be given in Java
Source for your claim, plz....
 

aryayush

Aspiring Novelist
@rayraven and infra_red_dude,

Here's a Java application:

*img260.imageshack.us/img260/9905/limewireri8.jpg

And a native application that does the same task:

*img404.imageshack.us/img404/412/acquisitionp2pex9.jpg


Another example of a Java application:

*img262.imageshack.us/img262/8540/azureuspc6.jpg

And a native one doing the same thing in a much more elegant and resourceful manner:

*img139.imageshack.us/img139/1087/transmissionmp3.jpg


Don't tell me they are even close to being similar. And screenshots don't do justice to cocoa applications. The whole interface is much more refined and a pleasure to use. :)

Using gx_saurav's own example, here's jtunes:

*img212.imageshack.us/img212/9848/dbimagewb1.jpg

And here's a native cocoa application:

*img253.imageshack.us/img253/9489/itunesoo7.jpg
And when I said that Java applications do not have features exclusive to the native applications, I didn't mean important features such as the actual music playing capabilities of jtunes vs iTunes. I meant features such as integration with the operating system and Dashboard widgets, support for the Dictionary and Quick Look, dynamic Dock icons, Alex support, etc..

Java applications never were, and never can be, any match for native applications. Case in point, there isn't a single Java application on Mac OS X that is considered indispensable, or is even remotely famous, unlike native applications like Apple's default set, Delicious Library, NetNewsWire, BBEdit, etc..
 

ray|raven

Think Zen.
^There's always a difference between an app written for a particular os,
and one written to do the job on any os you throw at it.
There's are a lot to consider.
The links you point show almost native widgets,but lack native images ,
this is because , a native app can use images from the os, but a cross-platform app cannot hard-code to use images from one os and hence has to bundles its own.

While i agree, native apps are a lot better than cross-platform ones,
try thinking as a developer, if you had to write an app for three os's ,
would you sit and write the same app thrice, or prefer to write it once?
Java is meant for cross platform apps, and if Java was brought to the iPhone,developers could modify existing apps to work with it, instead of starting one from scratch.

Speaking from my experience, its a joy seeing an app thats already coded, run on multiple os's without needing any kind of recompilation.
 

aryayush

Aspiring Novelist
^There's always a difference between an app written for a particular os,
and one written to do the job on any os you throw at it.
There's are a lot to consider.
The links you point show almost native widgets,but lack native images ,
this is because , a native app can use images from the os, but a cross-platform app cannot hard-code to use images from one os and hence has to bundles its own.

While i agree, native apps are a lot better than cross-platform ones,
try thinking as a developer, if you had to write an app for three os's ,
would you sit and write the same app thrice, or prefer to write it once?
Java is meant for cross platform apps, and if Java was brought to the iPhone,developers could modify existing apps to work with it, instead of starting one from scratch.
Exactly. That answers your own question. This is why cross-platform applications suck and this is why we don't want Java applications on the iPhone. If you've read the article I pointed you to, this is what the developer talks about too. An iPhone is an entirely different platform when compared to computers or other smart-phones. It's somewhere between the smart-phone and the computer and any developer wishing to code for it should whole-heartedly embrace Apple's own SDK and write native applications that look and function exactly like all the other applications on the iPhone. Java applications, no matter which platform they are on, stick out like sore thumbs and we'd prefer quality over quantity any day of the week. :)
 

ray|raven

Think Zen.
...and if Java was brought to the iPhone,developers could modify existing apps to work with it, instead of starting one from scratch.

Donno, if you missed it or ignored it,
But here it is again, a jdk for iPhone would ease development.
like Porting already useful apps present for mobiles, without starting from scratch.

Also, its good to have alternatives,
its not like every person has to know objective-c just to develop apps for the iPhone.
What about existing developers who would just want to port their apps?
 

aryayush

Aspiring Novelist
I thought I answered that when I said that the iPhone is a different platform and we want applications tailor-made for it and from scratch. Either write them well or not at all. Simple as that.

Why do you think Mac OS X and Xcode have been chosen by Apple as the exclusive development environment for the iPhone? It has been done to weed out the Windows, Linux and Java developers from porting their applications onto the iPhone.

It's actually a difference in mentality. Your (and most Java developers') approach is that you should be able to have the functionality, even if it is crippled and looks ugly and doesn't integrate with the rest of the environment. But Apple's and most Mac users' mentality is that you either have the best or don't have it at all. There's no middle ground.

If you're the sort who is satisfied with stuff that isn't the best, then the iPhone is clearly not for you (and by 'you', I don't mean anyone in particular).

Maybe that's why Mac users are called snobs... :p
 

ray|raven

Think Zen.
I thought I answered that when I said that the iPhone is a different platform and we want applications tailor-made for it and from scratch. Either write them well or not at all. Simple as that.
Writing well is dependent on the developer dude, even a great language can be made to turn up crappy programs in the hands of a wrong one.
It's actually a difference in mentality. Your (and most Java developers') approach is that you should be able to have the functionality, even if it is crippled and looks ugly and doesn't integrate with the rest of the environment. But Apple's and most Mac users' mentality is that you either have the best or don't have it at all. There's no middle ground.
I'd rather say give em both, and let them choose what they wanna use.
Like you have on OS X now, you dont like java apps, so you dont use it,
somebody else likes it, they use it.
The end choice likes with the user.
If the app rocks, it'll live, If not , whether its coded in obj-c or java,
its sure gonna die.
You say Azureus is ugly , still its got functionality , which is why its still a very live app.
And yeah, i'd focus on functionality first, Looks later.

Btw, you're talkin bout Mac user's here,
We got loads of folks(i've seen quite a few unlocked ones at my office)
using the iPhone, and though the majority might be mac users,
well they arent the only ones using it.
And did you by anychance use gmail's java client?
If you didnt , try using it, one of the best j2me apps IMO.
*www.google.com/mobile/images/mail/overview_gmail.gif

Btw, Hitboxx, please move this to Chit-Chat.
I dont think this discussion is needed in tech.news
Thanx
 

Faun

Wahahaha~!
Staff member
parallax perception

Dont tell me one can live without JAVA.

have u seen project Glass Fish and Eclipse IDE. They are not in any way ugly.

The thing is that developing anything with JAVA is a cake walk (u got rich set of libraries by developers and users).

I understand its a mentality issue, atleast one in 1000 will go the other way.

Mac users are not snob, they are simply users.

Please dont crib abt JAVA 1.2, talk in terms of 1.6
 

aryayush

Aspiring Novelist
Writing well is dependent on the developer dude, even a great language can be made to turn up crappy programs in the hands of a wrong one.
Which is why Apple will be screening them before they reach the user. The iPhone will have no crappy applications, and while that may sound like a bad thing to some people, it's good news to me.

I'd rather say give em both, and let them choose what they wanna use.
Yeah, that's what we call the "Microsoft mentality". Throw your platform out, make it super easy to get onto it and super hard to get out of. Grow in size, become riddled with problems and then blame the size.

I'd much rather see Apple allowing only good stuff onto the phone. Sure, it will mean less choice, but it will also mean people not making any of the wrong choices.

Your average user cannot differentiate between a Java application and a native one when choosing one of them to download and they'll often download the crappy Java one instead.

Also, when given the choice between using your existing application and coding a new one from scratch, most developers will obviously choose the former. The only way to prevent that is to not give them that option at all. Sure, it will mean that the developer who might have released three applications will now only have time for one, but that one will be an application of the finest quality, and that's all I want.

Make no mistake, there is not going to be any dearth of programmers releasing all sorts of cool applications for the iPhone. Every developer worth his salt wants to see his application on the third great platform. The only difference between Symbian phones and the iPhone will be that while they will enjoy thousands of applications, with several options for each task, all ranging from moderate to pathetic quality – the iPhone will only have hundreds of applications with maybe one (or two) choices for each task, but all of them will be top-notch quality.

Which leads me to my main point, and this is another statement gx_saurav will keep bandying about in his debates with me for a long time to come – choice is not necessarily good. Less is more. Even the most geeky users in the world have little idea about what is actually good for them. Apple is ensuring that people make only good choices, because there aren't any bad choices available.

Sure, we'll have a couple thousand less applications, but we don't want it any other way.

Way to go, Apple. Keep Java away from the iPhone.

And did you by anychance use gmail's java client?
If you didnt , try using it, one of the best j2me apps IMO.
*www.google.com/mobile/images/mail/overview_gmail.gif
But the iPhone's native Mail client beats it any day of the week. That's the whole point. :)

Look at Apple's Google Maps application on the iPhone and compare it to any of the several Java based iterations available on several platforms. None of them even comes close.
 

infra_red_dude

Wire muncher!
@rayraven and infra_red_dude,

Here's a Java application:

*img260.imageshack.us/img260/9905/limewireri8.jpg

And a native application that does the same task:

*img404.imageshack.us/img404/412/acquisitionp2pex9.jpg


Another example of a Java application:

*img262.imageshack.us/img262/8540/azureuspc6.jpg

And a native one doing the same thing in a much more elegant and resourceful manner:

*img139.imageshack.us/img139/1087/transmissionmp3.jpg


Don't tell me they are even close to being similar. And screenshots don't do justice to cocoa applications. The whole interface is much more refined and a pleasure to use. :)

Using gx_saurav's own example, here's jtunes:

*img212.imageshack.us/img212/9848/dbimagewb1.jpg

And here's a native cocoa application:

*img253.imageshack.us/img253/9489/itunesoo7.jpg
Thats coz all the screenshots you showed are for apps which are NOT built with the native UI.

Sun has docs for this job: *java.sun.com/developer/technicalArticles/JavaLP/JavaToMac2/

The green bar you see in the last screenshot is there coz the app has it. I can be made to blend completely with OS X UI.

Also the iTunes-like UI is limited to mostly apple endorsed software, afaik (correct me if I'm wrong). I think all 3rd party apps haf only the title bar as dark itunes like gray and the rest in light gray.

And when I said that Java applications do not have features exclusive to the native applications, I didn't mean important features such as the actual music playing capabilities of jtunes vs iTunes. I meant features such as integration with the operating system and Dashboard widgets, support for the Dictionary and Quick Look, dynamic Dock icons, Alex support, etc..
Obviously, you need to use specific APIs for that and if Apple hasn't opened them up nobody can do anything!

Java applications never were, and never can be, any match for native applications. Case in point, there isn't a single Java application on Mac OS X that is considered indispensable, or is even remotely famous, unlike native applications like Apple's default set, Delicious Library, NetNewsWire, BBEdit, etc..
Thats true coz Mac does provide good out of the box exp. and bundles most of the apps. FYI, I've never needed Java apps too.

And for that matter, we are talking about iphone here.
 

ray|raven

Think Zen.
Your average user cannot differentiate between a Java application and a native one when choosing one of them to download and they'll often download the crappy Java one instead.

If he finds out its crappy after he downloads it he can as well as dump it,
Also, there was the apple filtering apps to make sure of quality too , wasnt it?

Also, when given the choice between using your existing application and coding a new one from scratch, most developers will obviously choose the former. The only way to prevent that is to not give them that option at all. Sure, it will mean that the developer who might have release three applications will now only have time for one, but that one will be an application of the finest quality, and that's all I want.

And you were saying something abt apple screening apps?
There's also possibilty of making half-baked native apps coz they wanna be first on the iPhone.

Which leads me to my main point, which is another statement gx_saurav will keep bandying about in his debates with me for a long time to come – choice is not necessarily good. Less is more. Even the most geeky users in the world have little idea about what is actually good for them. Apple is ensuring that people only good choices, because there aren't any bad choices available.

Sure, we'll have a couple thousand less applications, but we don't want it any other way.

Way to go, Apple. Keep Java away from the iPhone.
I havent much to say on this,
except that , if apple kept os x locked the way you say iphone is gonna be,
in terms of apps, well you guys would've missed a hell lot of apps , most of which you could'nt live without.

Also, i'd rather think any average joe, would like selecting his own apps,
than ask apple to do it for him.

But the iPhone's native Mail client beats it any day of the week. That's the whole point. :)
The whole point of showing you the screenshot was to let you know that, j2me clients can look good and offer functionality too.
And if thats what can be offered for the lowest of mobiles,
imagine what can be whipped up for a mobile having specs like the iPhone?

One more new scenario here:
Imagine , i just got an iPhone, its got wifi and the supposedly best browser on a mobile.So, i figure i wanna do some banking ,
But wait, the site uses a java applet and hence wont let me login without a working kvm.
Now dont go off telling me that you need the site to change.
 

aryayush

Aspiring Novelist
Thats coz all the screenshots you showed are for apps which are NOT built with the native UI.
When no one bothers to do it on Mac OS X, what makes you think that Java developers writing for the iPhone would be any more interested?

Also the iTunes-like UI is limited to mostly apple endorsed software, afaik (correct me if I'm wrong). I think all 3rd party apps haf only the title bar as dark itunes like gray and the rest in light gray.
Umm... nope. If you're using Xcode and Interface Builder, your applications can look and behave exactly like Apple's own. :)

Obviously, you need to use specific APIs for that and if Apple hasn't opened them up nobody can do anything!
How come native developers do then? Almost all cocoa applications have those features I mentioned.

And for that matter, we are talking about iphone here.
Yes, which has its own set of user interface elements and animations. How, for example, would a Java developer integrate core animation into his applications? I'm no developer but I've seen several Java applications on Mac OS X, Windows and Symbian devices and I don't think there is any way you can have core animation enabled Java apps.

How would it look like if you hit the Safari button and it zooms into the screen, Google Maps revels more options by curling away from the lower right corner, all other third-party applications keep flying across the screen and then comes LimeWire, resplendent in all its ugly glory, slowing down the whole phone, perhaps even crashing it and performing all its actions in static movements?

The whole point of showing you the screenshot was to let you know that, j2me clients can look good and offer functionality too.
The Gmail application offers functionality – yes.
It looks good – Hell, no!

And if thats what can be offered for the lowest of mobiles,
imagine what can be whipped up for a mobile having specs like the iPhone?
Better hardware specifications won't change the mindset of Java developers. Plus, the crappiness of Java applications has little to do with hardware limitations (LimeWire on a Mac Pro is just as crap as on a Mac Mini) and more to do with the inherently flawed nature of the cross-platform APIs.

One more new scenario here:
Imagine , i just got an iPhone, its got wifi and the supposedly best browser on a mobile.So, i figure i wanna do some banking ,
But wait, the site uses a java applet and hence wont let me login without a working kvm.
Now dont go off telling me that you need the site to change.
Now, I'm no expert with all these technologies so don't start pointing fingers if I make any mistake here :)p) but don't most websites use Javascript and not Java? Safari Touch does support JavaScript.

Also, even when the iPhone has a tiny user base like today, there are already banks that offer iPhone-specific webapps for their online banking users. As the iPhone grows in popularity, you can only expect this number to increase.

And my whole point is that, like with every decision the company makes, there are going to be some compromises and a few disappointed users but, for the most part, it's going to be smiles all around. If Apple can deliver a platform that has a truckload of awesome, native applications that look good, function well and are responsive, the phone itself never hangs or crashes or slows down, I wouldn't mind not being able to access the occasional website. That's what my Mac is for. :)
 
Last edited:

ray|raven

Think Zen.
Well , I guess there's no convinving you,
We'll see whether java comes to the iPhone or not.
And as for the websites needing java,most banks do.
try loggin in here, without java :*www.onlinesbi.com/login.html

And the iPhone specific stuff being offered , IMO is more to do with the hype than anything else.
 

infra_red_dude

Wire muncher!
When no one bothers to do it on Mac OS X, what makes you think that Java developers writing for the iPhone would be any more interested?
iPhone is iPhone! Mac is Mac!!! While I can't say for sure that developers will choose the native UI for iPhone but its very much a possibility since its SDK won't be the same what other Java-based cellphones use.

Umm... nope. If you're using Xcode and Interface Builder, your applications can look and behave exactly like Apple's own. :)
Aaah, I see. I didn't know that.

...and then comes LimeWire, resplendent in all its ugly glory, slowing down the whole phone, perhaps even crashing it and performing all its actions in static movements?
While I agree that the present PC version of Limewire is by no means a Miss Universe contest winner but there is surely no slowing down or crashing the system! This is a myth and FUD; and 99.99% of the times I've heard these 2 things, its from ignorant Apple fanboys who know nothing about Java, absolutely!

The Gmail application offers functionality – yes.
It looks good – Hell, no!
Thats just a simple J2ME sample app which you see on most of your cellphones today. You can't haf all those glitters and pompous UI on the small screen. But iPhone is a different category and all the tweaks/enhancements are very much possible.

Better hardware specifications won't change the mindset of Java developers.
And did the Java Developers secretly mailed and told you that?? :rolleyes:

Plus, the crappiness of Java applications has little to do with hardware limitations (LimeWire on a Mac Pro is just as crap as on a Mac Mini) and more to do with the inherently flawed nature of the cross-platform APIs.
Can you elaborate what exactly is crap and inherently flawed nature of cross-platform APIs instead simply talking BULLSH1T here??

I'm no Java Developer but I know the internals of Java.

Well , I guess there's no convinving you,
+1

We'll see whether java comes to the iPhone or not.
It will surely come, if not today then tomorrow!
 

aryayush

Aspiring Novelist
Simon Brocklehurst Asks: ‘Did Apple Make a Mistake Choosing Objective-C for iPhone SDK?’

Short answer: No.

Longer answer: (a) Most developers suck. Apple doesn’t care if they “can’t” or “won’t” write iPhone apps because they can’t or won’t learn Objective-C, because any developer who would say that is unlikely to write a worthwhile iPhone app. Picking up a new programming language is not hard. Picking up a language like Objective-C, which is only slightly expanded from regular old C, is even easier. I have never once met a good programmer who wasn’t willing and able to learn new languages. (b) Apple didn’t choose Objective-C for the iPhone arbitrarily; it’s inextricably tied to Cocoa Touch, and Cocoa is the entire foundation of the iPhone UI. (c) Apple doesn’t want existing “mobile” apps written in other languages recompiled for the iPhone any more than they wanted command-line DOS apps recompiled for the original Mac.

[Via Daring Fireball]


[Emphasis mine.]

Exactly the same three reasons that I gave. Exactly the same.

See? You guys should leave the Apple critiquing on people who get what the company is all about. :p
 
Status
Not open for further replies.
Top Bottom