Developer Friendly JVM
Java on Truffle offers built-in enhanced HotSwap capabilities for applications running with Java on Truffle. You can use a debugger session to replace the running code with a new version from your IDE. Java on Truffle currently support changes to the method bodies, signatures, adding or removing methods, changes to lambdas, inner classes, access modifiers, and so on. Improving support to cover more types of changes is in development.
Dynamic Java in Native Images
Java on Truffle is implemented in Java, including the other components necessary to run it like the Truffle framework and the GraalVM compiler. It allows to include Java on Truffle into Java applications built into native executables with Native Image. Java on Truffle can execute code which is not part of the closed world analysis, adding dynamic capabilities to Native Image applications.
A Part of the GraalVM Ecosystem
All GraalVM languages share several advantages by being a part of a larger ecosystem. GraalVM offers a common framework for implementing languages, and with it, developers receive tooling languages support out of the box. Java on Truffle offers integration with:
Both Java debuggers and the Chrome Inspector
Both sampling and tracing
For inspecting excessive object allocations
GraalVM offers an unparallel framework for creating managed language implementations. All core pieces of the virtual machine infrastructure: JIT compiler, garbage collector, other runtime components are implemented in Java. Using a high-level language and modern development tools makes it easier to have higher pace of innovation. Java on Truffle adds Java (and other JVM languages) to the list of the "first class citizen" languages and becomes a meta-circular VM allowing Java on Truffle run Java on Truffle itself. Java on Truffle realizes the efforts to explore the implementation techniques for Java using Java and makes GraalVM project the ultimate treasure for the virtual machine research and implementation.