Back in 2007 when Apple released Mac OS X 10.5 Leopard, a much-heard criticism was the lack of support for Java 6. Leopard shipped with an older version of Java, 1.5, even though 1.6 had been released by Sun almost a year prior. Sun had already released Java 1.6 for Linux and Windows, but did not do so for Mac OS X, since Apple insists on developing their own version of Java, according to Sun. Now, 6 months later, Mac Java programmers can rejoice.Apple has released Java 6 for Leopard, but as was already known, the package only works on the 64bit Intel version of Apple’s operating system, so users of early Intel Macs or PowerPC machines will not benefit from this update – even if you have a G5 Quad, no Java 6 for you.
This Java for Mac OS X 10.5 Update 1 adds Java SE 6 version 1.6.0_05 to your Mac. This update does not replace the existing installation of J2SE 5.0 or change the default version of Java.
Get it from Apple’s download page.
I’m currently working on a Java project on an embedded system. A bit annoyed by all the legacy code I have to work with, I’ll start a small rant against Java to fight my boredom.
The news kinda reveals my biggest gripe against Java. For me it is not portable at all; at least, no more than other languages.
Most platforms feature at least a free decent C compiler. From there either you directly have a modern C++ compiler or you can compile a C++ compiler (i.e. GCC). Even on the embedded systems, it is quite rare not to be able to get a decent C++ compiler (although a lot of programmers in the embedded market tend to dismiss it, ’cause someone told them embedded programming had to be done in C).
Now, with Java, you’re at the mercy of having a decent JVM for the relevant platforms. Of course, major platforms have access to a decent Java 6 VM, but it’s far from being the case on more exotic platforms. Mind the news above: MacOS X had to wait a year to have access to Java 6, and it’s only covering the latest 64 bits Intel CPUs! Personally, I don’t think that MacOS X is such an exotic platform.
A lot of “exotic” platforms do have a JVM, but usually it’s a decent Java 1.2 VM at best, or a quite slow and incomplete Java 1.1 VM at worst. Some programmers are happy with that, I’m not.
In the project I’m working on, they use JNI to interface the Java part with a C++ library doing the core work. While it makes sense from a technical point (the core part needs to be as fast and efficient, the target being an embedded system), it makes things even worse.
Not even talking about the 64 MB eaten up by the JVM (WTF?! 64 MB on an embedded device, just for a GUI ?!). The addition of a C++ library, combining Java and C++ portability shortcomings together, makes the portability of the whole project a nightmare.
I could also go on about all these Java development tools that, as if they were the only relevant Java application, install development tools or libraries that are incompatible with the rest of the system (Eclipse anyone ?)
A bored and annoyed developper.
PS. Yesterday, Eclipse (lastest stable version) crashed about 10 times the Sun JVM (also latest stable version) with some nice segfault. Although I recall someone telling me that segfaults were impossible in Java, I most certainly encountered way more Sun JVM crashes than I found critical bugs in C++ compilers (GCC and VS).
sun have a jvm for a lot of embedded system
also it’s not the sun’s job to create a jvm for all cpu…
sun provide an implementation… people can create a jvm if they want…
a lot of embdedded system use java to program… like muvium (www.muvium.com)… this system cpu is under 50Mhz…
don’t forget java is a language…
if you find the jvm implementation you use, try to use another one… or try compagny who take the java code and convert it directly in c or asm…
you can try gcj… but for the majority of the test i done, it’s slower than sun jvm
I think it was Apple’s choice not to have Java 1.6. Not Sun. Sun doesnt make a Java VM for Apple (or many other platforms). I think they support Linux/Windows and Solaris. From what i understand its up to Apple to develop and deploy Java on the Mac OS X platform.
Also, I am not sure what embedded system you are working with, but the J2ME works on lots of devices with as little as 5MB of RAM (some i suspect even less). If you are having to deal with JNI, it sounds like you are probably dealing with hardware that has no java library support. Thats not Java’s Fault either (its like blaming language X for not having libraries for hardware Y, so you have to use an external interface to libraries written in language Z).
Java does not equal C. If you want C portability, use C. If you want Java’s features, use Java. Or if you want the best of both worlds and your platform supports GNU GCC use Their GCJ compiler, and compile to native code and link to C/C++ libraries as needed. There are also more efficient VMs such as Kaffe.
BTW- i suggest if you are having problems with eclipse, use NetBeans. I have started using it for ruby development and its very nice.
I think the worse evil is the fact that we don’t get this for Tiger…
Java 6 GM has been available for Tiger since late 2007, hasn’t it?
They even mention it in this support note: http://docs.info.apple.com/article.html?artnum=307177
I’m not even sure that Apple have updated Java 5 for Leopard with the latest fixes but it’s been a long time since I loaded Java 6 onto my Ubuntu and Windows machines.
For a company that said that Mac OS X was the best platform ever for Java, it’s time for them to eat their words.
Don’t think so… I/m pretty sure that Java Release 6 is just Java 5’s latest release for Tiger. There is no Java 6 for Tiger AFAIK
It’s for this release:
http://www.apple.com/support/downloads/javaformacosx104release6.htm…
About Java for Mac OS X 10.4, Release 6
Java for Mac OS X 10.4, Release 6 delivers improved reliability and compatibility for Java 2 Platform Standard Edition 5.0 and Java 1.4 on Mac OS X 10.4.10 and later. This release updates J2SE 5.0 to version 1.5.0_13 and Java 1.4 to version 1.4.2_16.
Really strange behaviour. I can only conclude that it’s either for cost reasons (less engineers/time used); or to drive sales of new Macs. I don’t think Apple has ever been all that ‘enthused’ about Java either way.
Look at it this way. What was the last Java client side application that you used? If you’re not a Java developer, you’re definitely going to try your best to stay away from anything Java related.
We just started using this here at OSN.
http://www.woopra.com/
Will blow all your prejudice surrounding Java away. What an AWESOME application.
Looks nice for managing your web services, gathering tracking information and much more.
Too bad it’s not something that hooks into, say Cocoon 2, and let’s me manage them on my servers, without having to “sign up” and be part of this service.
The one great thing about Java on the Mac is that it’s transparent (as _any_ runtime is supposed to be). I refuse outright to install it on Windows. I do not want items in my startup and all the “integration” crap that litters the Windows install.
What do you mean? Java apps run transparently on Windows too here. WinPatrol blocked the update services and such that Sun forces down your throat, so those don’t bother me either.
Yeah, stay away from OpenOffice (used in Base) and Limewire. If you do PHP development, stay away From Zend (now Ecplipse based). And cell phones are just for calling people. Right… that’s crazy. Forget Java 1.1, will you. Java right now is VERY performant. Plus, it is SO nice to have an App that you can just drag-and-drop deploy between Windows, Mac, BSD and Linux. I write client-side apps for companies. They love the simplicity of deployment. And if you know how to code, they perform well.
Really, why don’t we just stay away from higher-level languages altogether, and stick with tried-and-true assembler. I’d love to see the code base for OpenOffice.Org, assember edition!
I haven’t used it and can’t vouch for it, but there’s an OSX port of BSD’s java called SoyLatte that I believe will work on older Macs and Tiger.
http://landonf.bikemonkey.org/static/soylatte/
I am not sure what I should feel about this…when I first read this news I thought “great!!”, but then I started thinking…if I buy a Mac now (which was planning on the moment it got working Java), what stops Apple from pulling the same shit when Java7 arrives?
Will my Mac work with later releases of Java? Do I have to upgrade the OS to get working Java? Do I have to wait 1,5 years to get the latest Java release? Lets face it; The Java releases are far between, so when they first arrive, it sucks to have to wait even longer.
Suddenly I am not so sure about that Mac anymore unfortunately
Edited 2008-04-30 21:02 UTC
Valid point but I do not believe that will happen. I think you should still go ahead and purchase your Mac.
What makes you believe that? Apple are clearly not interested in Java.
I’m in the process of getting a new machine for work. I’m tossing up between an iMac and a a generic linux pc.
I’m a Java developer (for the web) and support from Apple is the only negative (for me) with OSX. However Apple doesn’t really like developers, or server stuff. It’s not sexy enough for them apparently.
I’ve finally given up hope. They don’t seem to care unless you’re using Objective C, perhaps the least useful language in the real world for business use (unless your office is all Macs).
I don’t see Apple making inroads into real business especially on the server side.
As of right now. Linux is the best development environment for web apps given it’s broad access to technologies. The ability to generally use whichever version works best for you is invaluable. Apple leeches some of this by being build on BSD, but tying development tools so tightly to OS versions is just stupid. No one at Apple seems to understand servers at all.
The only thing Apple can do to earn my forgiveness for not releasing the JDK for 32bit, is to release their JDK code into OpenJDK. I once trusted them not to completely drop java support, and they didn’t, but I don’t trust them anymore.
I’ll probably still get the iMac. I like OSX. Hopefully SoyLatte will fill the void in the near future. Or maybe I should kick myself in the head, be sensible and get the linux box.
Or just buy the iMac and dual-boot MacOS X and Ubuntu on it.
Java6 would be good but frankly having a JVM that works properly with Leopards Spaces feature counts for more with me!
NeoOffice is hamstrung by this problem and unable to escape from it until the JVM is sorted out.
For work purposes I have been obliged to install MS Office 2008 which also fluffs the integration with Spaces.
Perhaps Office 2008 is also based on Java or may be not?
In any case all Leopard systems (even 32bit) should now have Java6 … or Apple risk being seen as a second tier player!