Saxonica is a small company, but we’re doing innovative work all the same. In October, Matt Patterson and I represented Saxonica at the GraalVM Community Summit at Oracle’s offices in Zurich, because of the work we’re doing using GraalVM’s Native Image technology in SaxonC.
It was an excellent chance to put faces to names, ask and answer questions, get to show what we’re doing, and ask the engineers behind the tools detailed questions. The GraalVM team were welcoming and more than willing to dive in.
There were all sorts of people with an interest in contributing to and using GraalVM, from the biggest players in the industry to small companies like ours, and it was good to see the sheer enthusiasm and investment that is being contributed into GraalVM and in their projects.
This year’s summit came at an especially interesting time, following the announcement that GraalVM will be decoupled from the Oracle Java release schedule. That change has sparked fresh discussions about the future direction of the JDK. It was reassuring to hear from the core team that they remain deeply committed; not only to GraalVM’s continued development but also to its non-Java languages, including GraalPy and GraalJS, which are rapidly maturing.
During the unconference sessions, we had the opportunity to share how Saxonica is using GraalVM to build SaxonC as a shared library. We discussed our experiences with the performance costs of crossing the C/C++ boundary with Java and limits we apply for improvements, and our efforts to enable calling C, C++, PHP, and Python native functions from Java as the host language, a long-requested feature we’re aiming to deliver user defined extension function for XSLT, XQuery and in XPath. We are in the home stretch now for releasing this feature in SaxonC 13.
One of the most valuable parts of the summit was being in the same room as the GraalVM developers themselves. We compared development approaches for the C Native API vs. JNI; and learned that JNI has evolved considerably in recent years. Even so, we’ve decided to stick with the C Native API to keep things low level and for the use of function pointer indirection for now, as it best fits our architecture and goals.
The unconference sessions also featured a range of fascinating talks, from BellSoft’s work on parallel processing in Liberica, to developments in GraalJS/Wasm and Spring. The Crema project, which tackles dynamic class loading in native-image was impressive and may benefit SaxonC in the future. And the Shenandoah garbage collector from Amazon promises to deliver exciting improvements for high-performance Java applications.
For a “small” company like Saxonica, being part of these conversations and contributing to the future of the JVM and polyglot ecosystem feels immensely rewarding. We left Zurich energised, inspired, and ready to keep pushing the boundaries of what’s possible with GraalVM.