Oracle and JetBrains May Join on Java Graphics Pipeline for macOS

Engineers from Oracle and software development toolmaker JetBrains may be joining forces to create a new, Java-based 2D rendering pipeline for the Mac operating system (macOS). They've been working on the idea separately, but they could combine their efforts under the auspices of a recently proposed OpenJDK project, dubbed "Lanai."

The Lanai Project was proposed last week by Phil Race, a Java Platform UI Client Engineer at Oracle, who laid out the project details on a Call for Votes (CFV) post on the OpenJDK mailing list. Race, who leads the OpenJDK 2D Graphics Group and has worked on Java 2D APIs for years, proposed himself as project lead. Race has also contributed to the OpenJFX project and to the Swing and AWT APIs.

If accepted by the community, the Lanai Project would use Metal, an object-oriented API for 2D and 3D graphics rendering created by Apple, to develop the rendering pipeline. JetBrains was working on a Metal pipeline independently.

"For some months, engineers from Oracle and JetBrains, have been exploring the Metal APIs and working on some proofs of concept," Race wrote, "starting with the existing OpenGL pipeline as a base and doing prototyping work in the JDK sandbox in the metal-prototype-branch, and in the case of JetBrains, separately on GitHub. We have also discussed specific issues on the 2d-dev mailing list and have a wiki page ... However, to further collaboration and advance the goals we would like to move this work to a location where we can work together and more engineers can contribute, and therefore propose this project."

Apple created Metal in 2014 to replace OpenGL as the macOS rendering pipeline, and deprecated the OpenGL and OpenCL frameworks last year for both iOS and macOS, and recommended users transition to the Metal graphics API. But OpenGL is still used by the JDK and OpenJFX as the rendering pipeline on macOS, which means the desktop APIs can't function on macOS Mojave 10.14-based Macs and will fail to start.

The Lanai Project would aim to create a graphics pipeline "at least as capable, robust and performant, as the current OpenGL pipeline," Race wrote.

Why work with JetBrains?

"By continuing separately, we are creating technical debt and not making efficient use of resources," he explained on the project's wiki page. "The intent is, after some small amount of additional prototyping, to merge the work into the OpenJDK sandbox and collaborate there ...."

He also noted that Lanai is not yet a formal OpenJDK project, and a JEP has not yet been drafted or submitted. " ... but one is likely once we move past the prototyping stage, and this wiki will be updated to reflect that."

Until then, the development process will continue, he wrote, on a "relatively informal" basis. "We aren't expecting to use bug ids for reviews or pushes into the sandbox, at least for now," he added. "When code reviews will be required is yet to be determined."

The list of initial committers on the proposed Lanai Project includes, in addition to Race: Ajit Ghaisas, Jay DV, Sergey Bylokhov, Kevin Rushforth, and Alexey Ushakov.

About the Author

John K. Waters is the editor in chief of a number of sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].