moving to Java 7

199 views
Skip to first unread message

Tobias Pietzsch

unread,
Dec 5, 2014, 8:54:30 AM12/5/14
to ImageJ Developers, Fiji Developers
Hi all,

what is everyones opinion on moving the IJ2/Fiji stack to a new version of Java, i.e., Java 7.
Java 7 has been around for more than 3 years now. The end-of-life final public release of Java 6 was more than 1.5 years ago.

Benefits I see are the following:

* We could use the “new" Java 7 libraries. For example the Fork/Join framework would come handy in defining multi-threading interfaces in scijava-common (to be used in imagej-ops for example). Or the NIO2 stuff (java.nio.file)

* We would benefit from improvements of type inference for generics in the compiler. No more jumping through hoops to fix “errors” in code that should compile with Java 6 but doesn’t. (Plus we could use the diamond operator to shorten generics instantiations.)

* We could use third-party libraries that only support Java 7. For example I’m using Jetty in a project that can therefore not be part of Fiji currently. (This mail was more or less triggered by me looking into http://ojalgo.org who maybe went a bit over the top and already abandoned Java 7 for Java 8). I think it is only a matter of time until we will have a problem with third-party libraries that we already use abandoning Java 6.


I do not have a clear picture of what the downsides would be. Johannes always said that people on old macs are tied to an old java version and that we do not want to leave those users behind. It would be interesting to know how many people that actually would impact.


What do you think?

best regards,
Tobias

signature.asc

Lee Kamentsky

unread,
Dec 5, 2014, 9:56:36 AM12/5/14
to Tobias Pietzsch, ImageJ Developers, Fiji Developers
For CelllProfiler, there's some packaging work that would need to be done (we bundle the JRE with the Windows version and the Centos 6 RPM has Java 6 as a dependency). We rely on the system Java for the Mac presently and I don't have a clear idea of what range of Java 7 support to expect on our user's Macs.

It certainly seems like there is a lot of pressure to move to Java 7, so my vote would be to move to Java 7, even considering the above.



--
--
Please avoid top-posting, and please make sure to reply-to-all!

Mailing list web interface: http://groups.google.com/group/fiji-devel

---
You received this message because you are subscribed to the Google Groups "Fiji-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fiji-devel+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mark Hiner

unread,
Dec 5, 2014, 10:58:35 AM12/5/14
to Lee Kamentsky, Tobias Pietzsch, ImageJ Developers, Fiji Developers
Jay,
>Can anyone else confirm this experience?
Yep, Yosemite dropped Java 6. Definitely an annoying extra barrier for developers. But there's a FAQ entry now!

Michael,
>When replying to a post like this, is it the done thing to reply to the list in general or should I be replying just to the original poster?
You did the right thing - reply to the whole list. That way there is a complete record of any discussion-especially important on a general topic like this. Personally, if I ever get a private mail in response to something, I cc the list in my reply (see also: http://imagej.net/Philosophy#Open_source)

Out of curiosity, how do people feel about establishing set guidelines for when to advance Java versions (e.g. if it's 18 months past the end-of-life release and under 2% of the users would be affected, just upgrade)? There will certainly be times when this question will come up again... and my only hesitation towards agreeing with consensus here is that these particular mailing lists seem likely to be biased towards active developers (who I would expect to prefer newer Java versions).

Best,
Mark

P.S. Thanks for starting this thread Tobias!

Curtis Rueden

unread,
Dec 5, 2014, 11:24:00 AM12/5/14
to Mark Hiner, Lee Kamentsky, Tobias Pietzsch, ImageJ Developers, Fiji Developers
Hi all,

Mark Hiner wrote:
> my only hesitation towards agreeing with consensus here is that these
> particular mailing lists seem likely to be biased towards active
> developers (who I would expect to prefer newer Java versions).

I agree. While personally I would love to move to Java 7 or even Java 8, and even if we all support that here, we must then ask on the main ImageJ mailing list to get feedback from all users first.

Regards,
Curtis

Curtis Rueden

unread,
Dec 5, 2014, 3:21:13 PM12/5/14
to Mark Hiner, Lee Kamentsky, Tobias Pietzsch, ImageJ Developers, Fiji Developers
Hi everyone,

> I do not have a clear picture of what the downsides would be. Johannes
> always said that people on old macs are tied to an old java version
> and that we do not want to leave those users behind. It would be
> interesting to know how many people that actually would impact.

I compiled a Java/OS version spreadsheet a while back, which is relevant here:


Furthermore, I researched this a couple of different times in recent months. The results are part of the ImageJ FAQ:


As of this writing, around 11% of OS X systems still run version 10.6 Snow Leopard or older.
* As of June 2014, it was ~19%.
* In December 2013, it was ~25%.

And OS X only has ~7% market share right now, meaning that the actual market share for 10.6 and older is only ~0.8%.

Of course, none of these statistics are ImageJ-specific. A somewhat higher percentage of ImageJ users use OS X: from the weblogs of sites.imagej.net, we know that it is about 10.6% of the traffic, but the logs don't tell us the version breakdown of OS X. (We would know for certain had the usage statistics not been kiboshed.)

So TL;DR: with some minimal assumptions, ~1.2% of ImageJ users still use Snow Leopard are earlier.

Regards,
Curtis

Tobias Pietzsch

unread,
Dec 6, 2014, 8:51:37 PM12/6/14
to IMA...@list.nih.gov, Curtis Rueden, Mark Hiner, Lee Kamentsky, ImageJ Developers, Fiji Developers
Hi,

we are considering to increase the required Java version for ImageJ2/Fiji from 6 to 7.
Java 6 has been unsupported (ie, no more fixes and updates) for over 1.5 years now, Java 7 is around for a long time, and developers are moving on to Java 8 even.

Before we just move to Java 7, we want to see what users would think about this. So, are there any strong opinions out there?

best regards,
Tobias
signature.asc

Gabriel Landini

unread,
Dec 7, 2014, 5:26:11 AM12/7/14
to fiji-...@googlegroups.com, Tobias Pietzsch, IMA...@list.nih.gov, Curtis Rueden, Mark Hiner, Lee Kamentsky, ImageJ Developers
On Sunday 07 Dec 2014 02:51:35 Tobias Pietzsch wrote:
> we are considering to increase the required Java version for ImageJ2/Fiji
> from 6 to 7. Java 6 has been unsupported (ie, no more fixes and updates)
> for over 1.5 years now, Java 7 is around for a long time, and developers
> are moving on to Java 8 even.
>
> Before we just move to Java 7, we want to see what users would think about
> this. So, are there any strong opinions out there?

I have no strong opinion, but under opensuse linux 13.2, IJ1 with oracle Java
1.6, when I run this 1 line macro alone:

setPixel(2,2, 32);

it shows a window with a "no image open" error message, and an "OK" button.

With openjdk OR oracle 1.7, the window is blank, with no button, making it
impossible to do any further with IJ, close the window or close IJ.
I have to kill Java from the System Activity list to exit.

Under fiji the macro seems to be OK, but I guess this is because it is using
Java 1.6. Maybe it is a simple bug, but I think it is better to check that
this does not happen before moving to 1.7.
Cheers

Gabriel


Tobias Pietzsch

unread,
Dec 7, 2014, 9:11:39 AM12/7/14
to IMA...@list.nih.gov, Curtis Rueden, Mark Hiner, Lee Kamentsky, ImageJ Developers, Fiji Developers
Hi,

we are considering to increase the required Java version for ImageJ2/Fiji from 6 to 7.
Java 6 has been unsupported (ie, no more fixes and updates) for over 1.5 years now, Java 7 is around for a long time, and developers are moving on to Java 8 even.

Before we just move to Java 7, we want to see what users would think about this. So, are there any strong opinions out there?

best regards,
Tobias

On 05 Dec 2014, at 17:23, Curtis Rueden <ctru...@wisc.edu> wrote:

Curtis Rueden

unread,
Dec 7, 2014, 3:30:43 PM12/7/14
to Tobias Pietzsch, ImageJ Interest Group, Mark Hiner, Lee Kamentsky, ImageJ Developers, Fiji Developers
Hi everyone,

> we are considering to increase the required Java version for
> ImageJ2/Fiji from 6 to 7.

Such a change is not something that could happen overnight. To elaborate a bit on the challenges and logistics:

- Java 7 is not available to everyone. In particular, it is not available for OS X 10.6 Snow Leopard and earlier. Our current estimate is that ~1% of users use such operating systems. While upgrading is an option for some, it is not possible on older hardware.

- As Michael & Birgit point out, ImageJ has problems when run with Java 7 in some scenarios, and on some platforms. Also, as I mentioned on another recent thread, there are performance issues with repainting on OS X with Java 7 (but not, it seems, with Java 6 or 8).

- Existing Fiji installations using a bundled Java -- the majority of them: the Windows and Linux bundles -- would need to be upgraded somehow. But the ImageJ Updater does not support upgrading the version of Java. Either: A) someone would need to do the work of improving the Updater to upgrade Java automatically; or B) all Fiji users would need to manually upgrade it, and/or download and unpack a new Fiji. I would strongly prefer option A, but the work is involved and I personally would not have time to do it any time soon.

With these points in mind, my current preference is to keep supporting Java 6 for the time being. For developers wishing to use Java-7-specific features, a separate update site would be a safer route.

That said, if a motivated party is able to:

1) Make the Updater smarter about versions of Java -- ideally, implementing UI that lets the user specify and switch between JREs similar to e.g. Eclipse.

2) Verify that the most critical problems in behavior are already fixed, and/or fix them.

3) Thoroughly test on all three major platforms -- ideally with both Oracle Java 7 and OpenJDK 7.

Then moving forward with the switch would be feasible.

Regards,
Curtis
Reply all
Reply to author
Forward
0 new messages