Roadmap -

Following is a plan (as up to date as I can keep it) of the steps leading to the 1.0 release. For each release, there is a list of planned features. Also, I explain some of the ideas I ahve for this technology post 1.0.

0.1

  • Call any Java method.
  • Access any Java field.
  • Instantiate any Java class.
  • Provide wrapper classes.
  • Setup/shutdown JVM, along eith startup parameters like classpath, etc ...

0.2

  • Install via distutil
  • Add Object wrapper.
  • Support array types and Wrapper.
  • Allow access to interface constants thourgh a subclass' class or instance.
  • Support for Java Threading primitives.
  • Support for Java synchronized keyword.

0.3

  • Support Java dynamic proxies, so a python program can receive callback through any java interface.
  • Special support for listener classes to make them easier to use in Python.

0.4

  • Complete rebuild for modularity and easier movement forward.

0.5

  • Complete update to the class shadowing code.
  • Allow load-time Class and Array customization
  • Make Java classes more python-like. I.e. support __bases__, etc ...
  • Make Java instances more python-like, i.e. support __str__, __cmp__, __class__, etc ...
...

1.0

  • Allow subclassing of Java classes in Python.
  • Allow a python class to extends a java class and implement one or more Java interface.

Miscellaneous

Features in this list may make it in any release, and will be moved in that releases list once it has been decided.
  • Provide a Java Collection and wrapper.
  • Support other platforms : MacOS X, etc ...

Beyond 1.0

After 1.0 will be released, a rewrite is planned. The goal of this re-write is to cleanly separate the JNI/Java interfacing logic from the Python code that uses it.

Once we got that, if there is interest, new hosting-code can be written to that other environments can use Java libraies. Logical candidates include Perl and Ruby and Parrot.