Modern language with an outdated UI toolkit
October 05, 2020

Modern language with an outdated UI toolkit

Anonymous | TrustRadius Reviewer
Score 3 out of 10
Vetted Review
Verified User

Overall Satisfaction with Oracle Java SE

We use Java in our main application for physics simulation. Until it became a paid license, we shipped our product with Oracle Java SE. Now we ship with AdoptOpenJDK, but still, support using Oracle Java SE with our product.
  • Supports multiple platforms
  • Supports modern concepts such as streams and functional interfaces
  • Good tooling available (IDEs, debuggers, profilers, etc)
  • No ability to automatically clean up resources such as via destructors in C++. End users must explicitly invoke a method (e.g. close, dispose) to ensure resources are freed in a timely manner.
  • Garbage collection can introduce pauses at runtime (although this is improving)
  • Memory leaks are sometimes difficult to find due to automatic garbage collection
  • Almost our entire client application is written in Java with over 1 million lines of code
  • The ability to run on multiple platforms using the same code with minimal branching is great
We also use C++ and Python in our application. We are working to migrate to a web-based application, but continue to invest in our Java client.
It is possible to submit bugs to the Java development team, although they aren't always addressed in a timely manner. It would be better if you could comment on tickets in the bug database (at least on the ones you entered). You can update your own tickets, but the process is clunky. There is paid support available, but we don't use that. It is also possible to become a contributor to the OpenJDK project.
The language is fluent and has good support from a number of open source and commercial IDEs. Language features are added every 6 months, although long-term service releases are only available every 3 years. It would be nice if some of the older APIs were depreciated with more pressure to move to the new replacement APIs (e.g. File vs. Path), but transitions to new features are generally well implemented.

Do you think Oracle Java SE delivers good value for the price?

Yes

Are you happy with Oracle Java SE's feature set?

Yes

Did Oracle Java SE live up to sales and marketing promises?

I wasn't involved with the selection/purchase process

Did implementation of Oracle Java SE go as expected?

Yes

Would you buy Oracle Java SE again?

Yes

Oracle Java SE is well suited to long-running applications (e.g. servers). Java Swing (UI toolkit) is now rather outdated, lacking support for modern UI features. JavaFX, the potential replacement for Swing, has now been separated out of Java core. Ideally, there would be a path to migrate a large application incrementally from Swing to JavaFX, but due to different threading models and other aspects, it is difficult. At this point, it is probably better to use an embedded web browser (e.g. JxBrowser) to provide a modern UI in HTML/Javascript and keep just the business logic in Java.