Skip to main content

Dropping support for Java 5?

Posted by fabriziogiudici on February 5, 2009 at 8:05 AM PST

So far, I've maintained compatibility with Java 5 for my stuff (all the "blueMarine cluster": blueMarine, Mistral, jrawio, ForceTen, OpenBlueSky and the young blueOcean). Given that people who upgraded to Java 5 don't have much troubles in going to Java 6 - I mean, the big jump is from Java 1.4 to 5 - the reason of this choice was to continue supporting PPC Mac OS X and 32-bit Intel Mac OS X, since on Mac OS X Java 6 only runs on 64-bit Intel processors.

Now I'm really tired of that. Supporting two JDKs means to spent double time in a lot of things, including testing (some Hudson jobs are profiled for two JDKs, they are sucking lots of CPU and BTW this should be theorically extended to all the jobs); performance testing in particular sucks since I have to run them on my laptop and I can't do other things at the same time.

Now the straw that breaks the camel's back: I've discovered that JOGL stuff doesn't run on Mac OS X 64-bit with Java 5, in spite of native libraries for Mac OS X including all the architectures. It might be even something easy to fix, but the point is that I'm tired of these silly problems that make you crazy. Maintaining such a large codebase is already a big challenge for me, I must keep things as simple as I can.

So, I'm about to decide to drop support for Java 5. This means I'm losing most of potential users on Mac OS X. On the other side of the coin, the saved time would contribute in having more regular releases (I haven't made an official release of blueMarine for more than one year - without them I'm probably losing all the potential users). After all, at the moment Mac OS X users are probably the least interested in blueMarine, since they have more alternative applications than the other operating systems. And in one-two years, the share of 64-bit Intel Mac gear should be not small again.

For people wanting to use my libraries with Java 5, I could keep "-source 1.5", so they would just need to download and compile the sources, which should be doable without big troubles.

So, what do you think? If you left Java 1.4, are you still keeping Java 5 compatibility for your products? If so, why?


I would look at the broader problem: how difficult is it to install and get started with BlueMarine? List five difficulties (jdk version will be one) and look at your program like a newbie would. If you drop 1.5 compatibility because it's a pain in the neck for you as a developed, I'm with you. Especially if this gives you the time to address some of the other four difficulties. Another approach would be to move to 1.6 but use it like a 1.5. Then keep an eye on how JOGL evolves and be ready to rollback to 1.5. Cross the bridge, but don't burn it :-)

you're also going to loose the majority of people using every other operating system out there. Java 6 adoption is slow, and rightfully so because of its stability problems (mostly serverside).

Support 1.5 instead of 6, and just run a testsuite on 6 once in a while. More shouldn't be needed.

Its worth noting that -source 1.5 isn't as useful as it seems. For example it doesn't check @since 1.6 usages, nor does it create class files which can be using by Java 5. A more useful option is -target 1.5 it doesn't check @since 1.6 either but it does create classes which will at least load and you can place workarounds for any uses which depend on Java 6.

A surprising number of developer still develop to Java 1.3 and 1.4. I am glad I am not one of them. Having to support Java 5 and 6 is pain so dropping Java 5 would be nice. Hopefully something we can do this year.

drop it, its a good decision. Open source is also about having fun... and compatibility tests are everything else but not fun. We recently dropped jdk5 compatibility for the NB OpenGL Pack too.

I'm stuck on java 5 too, because I use webrenderer, and I can't use with java 6 on mac, because 64 bits :-(. It sucks, but what can I do... I'm hoping they will have a 64 bits using firefox3 soon. I know there's a open source project to use webkit to java, but is not stable yet. Until that, I'm dealing everyday with the problems that you commented Fabrizio... That's no easy, but in your case, I think you are going on the right direction, I can't escape from webrenderer, so I have no option.

Fabrizio it's a wise decision. It's more important not to waste time on such issues and improve BlueMarine such that it will be stable and complete. By the time BlueMarine reaches 1.0 all Mac users will be on Java 6. Due to Apple not releasing Java 6 for 32 bits Macs we have to still support Java 5. Otherwise we can use Java 6 features and not worry about Java 5. I still have to support Java 5 for Mac OS X because my small app Bloom uses Java Web Start on Mac and the plugin uses Java 1.5 and I find its speed to be much slower than Java 6 on Windows. Haven't tried Java 6 on Mac though.

But Tiger is still a current release. I know this because I have yet to upgrade to Tiger. Haven't really had the burning need to, and simply didn't want to spend the money. With a recent MacBook purchase replacing my wifes old (10.3) iBook, I'll be upgrading soon so we can share Time Machine. But Tiger is still popular and out in the wild.

> "Apple hasn't sold a non-64-bit Mac since mid-2007, and the most popular models > (MacBooks and iMacs) went 64-bit in 2006. Do you really think you're losing 'most' > of the Mac users?" The Java plugin in OSX is still 32-bit, even on 64-bit machines.

Apple is dropping support for PPC in the next OSX release, and 32 bit support is sure to fall away as well. I wouldn't worry about not supporting things even apple won't support.

Do you have some statistics about the models' penetration? Actually, for the business perspective I'm seeing (that is, for my customers using pieces of my software) it seems to be no problem at all, as all the gear is recent. But how many people still use pre-2007 gear?

I know the Mac Java releases are a sore spot, but Apple hasn't sold a non-64-bit Mac since mid-2007, and the most popular models (MacBooks and iMacs) went 64-bit in 2006. Do you really think you're losing "most" of the Mac users?

Apple's Java tardiness is certainly frustrating sometimes, but surely, we write software for other people, not ourselves, so the customer comes first. Shutting off a whole load of current, up-to-date customers (OS X users), because it's difficult for the developer doesn't make much sense, unless income from customers is not very important.

Once a Mac user friend told me he planned an upgrade cycle around OS X releases, sticking his old stuff on ebay. :) Just make sure you branch your code clearly, e.g. as 1_5_BRANCH or similar. And if you have user mailing lists, let users know. Perhaps someone may volunteer to maintain it.

I am largely in the same boat, except I was supporting 1.4 as I had users with older versions of OSX. I'm just now moving to Java 5 and again won't go to 6 because of OSX. So yes, my thanks to Apple for making my job more complicated as well.

Oh, I forgot to add: thanks Apple for making my job more complicated than it should.