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

For those unfamiliar with the Apache 2.0 licensed project,
Dynalink is essentially a dynamic linking framework for JVM
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
“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
. 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
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!

comments powered by Disqus