Among dynamic languages with a JVM-based implementation, Jython has been around perhaps the longest. Dormant for some time, the project was re-activated a few years ago, and is now producing a wealth of features and at a fast rate.
As with JRuby, Jython compiles Python code to Java bytecodes, providing for possibly very fast execution. In addition, Jython also allows a developer to extend Java classes with Python, and to access Java libraries from Jython code.
In a recent blog post, Realizing Jython 2.5, Jim Baker, a Jython committer, provides a brief overview of upcoming features in Jython 2.5, slated for release next month. Major new development in Jython 2.5 has centered around moving the codebase to Antlr as a parser and ASM for byte code generation. Another goal for Jython 2.5 is to allow users of major Python frameworks, such as Django or TurboGears, to run on Jython.
Baker points out that:
We have completed all new language features using an Antlr parser, except for absolute imports. All bytecode generation work, now using an ASM backend... Of course, there are many outstanding bugs. And Python is not just a language; we need to support fully the fact that "batteries are included"...
In addition, features such as:
"conditional expressions, distutils metadata, unified try/except/finally, coroutines and other generator functionality, with-statement, including contextlib, any, all. [also work now]...
Even quit() and exit() now work; I don't know when these oh-so-major features were added. We even now support large string constants...
Jython 2.5. also provides exception remapping to new-style exceptions and its Unicode support has been updated to UTF-16.