Current status of Java 8 compatibility

Hi guys, the µManager team is chafing pretty hard against the limitations of Java 6. :slight_smile: I know you posted a manifesto back in June that said you were planning to move to Java 8. What’s the current status of that? These are the issues I’ve seen in my searching:

  • Users of old versions of OSX (10.6 and earlier, I think) cannot upgrade. For our purposes, they’re unlikely to upgrade to newer versions of µManager either, so we’re not very worried about this case.

  • There have been some reports of plugin incompatibility, but nothing conclusive.

So it sounds like we should be in the clear to just upgrade to Java 8 and run ImageJ2, right? Are you aware of any important broken areas that still need to be addressed?

I finally got ImageJ and Fiji’s Java-3D-based components working with Java 8—mostly. So that is a big step forward.

But there are still a couple more big steps to go. For details, see imagej/imagej#135.

Right. At this point, users of Snow Leopard need to either upgrade (hardware + software), or be left behind. Apple & Oracle have forced a choice between supporting old systems or new systems—so of course we must continue to support the new systems.

In large part.

  • Until very recently, plugins using Java 3D didn’t work with Java 8. And they still have some issues, especially on OS X. We’ll continue to work on it.
  • The situation with the java compiler (e.g., in the Script Editor) is completely nonfunctional with Java 8. Gotta fix that.
  • JavaScript switched from Rhino to Nashorn. We mostly have the Nashorn-based JavaScript working in ImageJ now with Java 8, but there are occasional backwards incompatibilities. Some JS scripts may need tweaking to work with Java 8 (and then they won’t work with Java 6 anymore after that).
  • There are still some critical performance problems. @Wayne added a workaround on the creation of new image windows in the IJ1 user interface, such that programmatically opening and closing windows doesn’t grind the system into the ground anymore—but fundamentally there are still bugs in Java causing this issue which will continue to manifest after ImageJ has been left up and running long enough.

Thanks for the update, Curtis! The performance problems sound the most worrying, though it’s possible that that doesn’t directly affect us. It all depends on what exactly is causing the slowdown. Since we now (in µManager 2.0) have an interoperability layer between us and ImageJ1’s window management system, we may be able to dodge it.