Dynalink 0.3 – JVM dynamic linking simplified
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
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
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
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.
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