JSR 223 is a powerful specification designed to unify how Java interacts with scripting and polyglot engines. However, it was conceived many years ago, targeting early cross-language concerns. Today’s needs have evolved and we require a modern, expressive, simple, and shared API for accessing polyglot engines from Java.
Although widely implemented, JSR 223’s usefulness is hampered by optional APIs like Compilable
and Invocable
.
To use them, developers must resort to unsafe casting, which creates leaky abstractions.