PDA

View Full Version : java broken on leopard?




X1Lightning
Nov 1, 2007, 08:33 AM
I just read an article on javalobby that said there is no java 6 on leopard, and java 5 is broken and very slow compared to tiger....

can anyone confirm this?



decksnap
Nov 1, 2007, 08:53 AM
java 5 in apparently greatly improved, but 6 is not there yet.

Phil A.
Nov 1, 2007, 11:10 AM
No Java 6 yet but I haven't seen any problems at all with Java 5: it seems to work faster if anything. This is both for developed apps and IDEs such as Zend Studio, Eclipse and JBuilder (all of which are Java apps)

X1Lightning
Nov 1, 2007, 12:42 PM
This is what the guy at javalobby was saying

So Long Apple. The Party's Over
You only have to spend a few minutes at JavaOne to know that Apple is popular with Java developers. Everywhere you look, you will see someone carrying around a shiny brushed metal MacBook Pro, or a gloss black or gloss white MacBook. Rick, Matt, and I, all have MacBook Pros. In addition, I have a dual core G5 PowerMac on my desktop, and Rick has a MacPro. Between company purchases from Apple, and our own personal purchases, we've spent tens of thousands of dollars with Apple on computer products. I think we've been quite loyal to Apple. But as of today, that's all changing for me. Today I am saying "so long Apple. The party's over."
What party do I mean? I mean the free ride that I as a Java developer have been giving Apple for way too long now. And as we have remained loyal to Apple, Apple has basically spit in our face. Not only did Leopard not ship with Java 6, but Apple, in typical fashion, apparently thinks it has no obligation to its customers to inform them about why the plans changed, and when (or even if at this point?) Apple will ever have a working copy of Java 6. Apparently, Apple has even been just deleting threads in their forums where people are complaining that Java 6 doesn't exist, rather than actually respond to them and let them know if there is any kind of time line for Java 6. But wait... It gets worse...
Java 5 on Leopard is broken out of the box. I recently tested an application I wrote that uses Java2D for image zooming. On Linux, Windows, and on Java 5 in OS X Tiger, it worked fabulously. The scaling and zooming are very smooth. On Leopard, it was not even usable. It's slow, and manages to rescale during zooming at about 1 frame every 5 seconds.
As a few people pointed out to me, it turns out, that the reason for the slow image performance is that Apple, for whatever reason, decided to stop using the Quartz pipeline as the default pipeline for Java2D rendering. You can turn it back on by setting the property apple.awt.graphics.UseQuartz=true, and that fixes the slow rendering problem. However, this is probably of little comfort to developers of desktop Java applications who are going to have to field all the support calls from customers complaining that their application stopped working correctly in Leopard. You can read more about the Java2D pipeline change in Fabrizio Giudici's Blog.
Working with IntelliJ IDEA in Leopard has been no picnic either. On a fairly regular basis, it will seem to just hang for 10 seconds or more and then start working again. I suspect the garbage collector is having problems, but once again, these are problems that did not exist in Java 5 with the previous version of OS X.
As most know by now, Apple has yanked the Java 6 developer previews. No sign or trace of them left on the ADC site. Apple gave no indication as to why it yanked them, if and when there would be new ones, etc. So effectively, we are currently left with Leopard having NO fully working version of Java available for it. You can't get Java 6, and Java 5 is so broken that parts of it are flat out unusable on Leopard. As a Java developer, this is a situation I obviously cannot live with.
As James Gosling mentioned in a blog entry a couple of weeks back, he has already given up on Apple. "As several people have noticed at my talks over the past few months, I no longer carry a Mac laptop. As much as I love the Mac's eye candy, it really hasn't been keeping up as a developer's machine - their attention has clearly been elsewhere." Gosling also says "Apple's JDK support is a part of my problem, and yes, I have their JDK6 from the ADC. I've met the folks on the JDK team and they're trying real hard. It's hard to tell what the fundamental issue is, but it keeps feeling like the big problem is that developers aren't the "Target Demographic"."
I decided to give them until they actually released Leopard before I gave up on them. Although given how silent Apple has been recently about Java on Leopard, and how their developer technology pages on Leopard prior to the release did not say even one word about Java on Leopard, I held out very little hope that Leopard would actually ship with Java 6. But I never expected that it would be so bad that Apple would have broken Java 5 on Leopard.
Now that Leopard is out though, and there is no Java 6, I'm finally giving up on Apple and putting my PowerMac up for sale. Furthermore, my MacBook Pro will become a dual boot machine, and will spend most of its time running Windows.
The lack of a fully working Java for Leopard at this point is bad enough. The fact that Apple apparently backed out on Java 6 shipping with Leopard is also bad. But once again, the part I have really had it with, is the unprecedented arrogance of Steve Jobs and company, and the fact that they seem to feel they have absolutely no obligation to communicate to their customers why they changed their plans, why they yanked software that used to be available, and when or even if they will remedy that. Well, here is my response to that attitude:
Sorry Steve Jobs, but since you've got no time for your customers, and you've got no time to explain to them why plans changed, and when or even if the situation will be remedied, I've got no time for your products anymore.
So long Apple. The party's over.
Kind Regards,
Mike Urban
mike@dzone.com

Blacky
Nov 3, 2007, 07:21 PM
Yes java is pretty borked at this moment.

I've wasted about a week investigating problems, writing bug reports, reading blogs, communicating with other developers, etc ...

The problems?

Well there are a couple:
1) SWT, the window toolkit for eclipse, azureus, etc uses the carbon api, which as most of you known has been marked deprecated when tiger was released, but apparently bugs have been fixed in the carbon api that changes some behaviour.
2) window builder pro plugin, has to run in headless mode to even just start, doing that gives errors about not being able to get to full headless mode and well it usually crashes your eclipse ide after a few minutes of use, this could be due to the fact of swt, or the swt_awt bridge that is notoriously problematic on mac, or because I used it for gwt that there are webkit changes that effect stability.
3) a sun2d pipeline was introduced for graphical rendering, dunno what the exact problems are with this, heard it was slower but more consistent over all platforms but currently doesn't have hw rendering acceleration.
4) it's possible that there are garbage collector issues.

So yeah, java 6 is not on leopard but java 5 is less than perfect, especially if you touch the underlaying api's, not even directly, just the tools.

I can't afford to loose any more time, so I'm bad on a windows xp box for the time being ...
Do I blame apple? yes! definitely, they should release their final build a little bit sooner to big parties like the eclipse team so they can take the precautions necessary to make sure all plugins, even 3th party at least have a heads up about what's going to happen, now when leopard got released not even adc members had it and well **** hit the fan ...

Things that need to happen on the short term: fix swt implementation, fix couple of jdk things, make everything run sane.
Long term: swt needs to move to cocoa, there are some difficulties because oo api's are harder to abstract through jni, and the event model differs a lot from that of carbon and swt. And apple should make more documentation/api's available before big releases instead of after.