One To Watch

Dynalink 0.3 – JVM dynamic linking simplified

Chris Mayer

Oracle’s Attila Szegedi has been busy cooking up his brilliant new project Dynalink and now a 0.3 version and a swanky new website have emerged

Oracle’s JVM troubleshooter Attila Szegedi has been exceptionally busy in the last few months, but has still found time to give a boost to hisside project Dynalink.

For those unfamiliar with the Apache 2.0 licensed project, Dynalink is essentially a dynamic linking framework for JVM languages that makes easy work of all the heavy lifting in a fairly complicated process. By utilising the wonders of JDK7’s invokedynamic, Dynalink provides a high-level linking metaobject protocol library, allowing the creation of languages on the JVM can interoperate with POJOs and each other.

So when you want to dynamically link your code to other code or writing a runtime, Dynalink can be parachuted into the operation to make it all proactive. Dynamic linking is possible with any of Java object’s property getters, setters, fields, methods, classes’ static properties, fields, methods and constructors. That’s pretty impressive Java interoperability in our view

But that’s merely the start, with the framework reaching out to other JVM languages and eliminating the nightmarish hurdles needed for cross-language interoperability. Dynalink claims it can “pass objects from Ruby to Python to JavaScript to Java and back” in one JVM with minimal effort on the developers. Pie in the sky? Not so with this project.

With Szegedi’s move over to Oracle, some thought that this project wouldn’t be heading anywhere anytime soon but we’re glad to see that this couldn’t be any further from the truth. Szegedi says he was brought into Oracle “with the specific mandate of making the Java platform a welcoming environment for non-Java languages,” which is incredibly encouraging to hear.

Even better to report is that Dynalink is being introduced into Oracle projects and remains an open source library under the same Apache 2.0 license for now.

Tying up some loose ends from last July’s version, Dynalink is now a fully-fledged project, complete with a swanky new landing page, with some new features present. These include the “dyn:new” operation for creating instances and the addition of a new call site class, ChainedCallSit that remembers already linked methods and applies them when building chains.

The call site descriptor is at the very core of Dynalink, of which more information can be found in the very impressive User Guide. For the more substantial list, check out What’s New in 0.3.

Szegedi says that not too much has changed in the ideals of Dynalink over the past year, but it’s great to see this project continue to make big strides, especially in permeating the development environment at Oracle. A Dynalink video presentation by Szegedi from last year’s JVM Language Summit is well worth checking out, should want to understand the library further. We think Dynalink is dynamite – use it now!

Inline Feedbacks
View all comments