Azul Systems headquartered in Sunnyvale is exclusively focused on Java and the Java Virtual Machine (JVM). They build fully supported, standards-compliant runtimes that help enable Java-based businesses. Their services include Azul Platform Prime (formerly Zing), a JVM with "better behavior" enabling sustained performance, fast warmup and predictable latency without GC pauses, jitter or application timeouts. Zing can be deployed in an on-prem data center or on the Cloud.
N/A
Oracle Java SE
Score 8.7 out of 10
N/A
Oracle Java SE is a programming language and gives customers enterprise features that minimize the costs of deployment and maintenance of their Java-based IT environment.
Azul helped use reduce and more efficiently use our AWS EC2 resources. We approached them in Q3 of 2021 with the goal of reducing our overall latency on the JVM 8 platform. They managed to do that for us in such a way that we could expand our options within EC2 for machine architectures and take advantage of additional resources on existing infrastructure that OpenJDK could not at that time.
I'd recommend the platform for teams that are looking to focus on their business problems and not wanting to allocate engineering staff to be full time JVM engineers. I'd also recommend them for companies that have a large extant JVM systems that want a fairly easy way to optimize their current systems without entire rewrites.
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.
Since Java runs on a virtual machine, it's generally considered to be agnostic of the hardware it's running on. It allows for deployment across a mix of hardware setups with the same binary.
Lots of literature, third party libraries, support forums, and books have been devoted to Java in general, making it a great language to use to support the business.
Backwards compatibility has been an important strength of Java for us. Legacy code that isn't ready to be retired yet can still run on our newer setups despite using older versions of OJSE.
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.
Java is such a mature product at this point that there is little support from the vendor that is needed. Various sources on the internet, and especially StackOverflow, provide a wealth of knowledge and advice. Areas that may benefit from support is when dealing with complex multithreading issues and security libraries.
We choose Java as our system has multiple sub-applications that have different purposes and architecture including back-end applications, front-end UI, front-end Rest API, and Selenium Automation tests. They are deployed in Windows and Linux, communicate with each other using Rest API, RMI and Queue Message and need to support different deployment environment from Dev, Test, UAT to Production so using Java allows us to have a common standard from development, build and deployment for all applications.