On Mon, Jun 2, 2008 at 8:26 AM, Felix Schwarz <felix.schwarz@oss.schwarz.eu> wrote:

In my understanding Jython better suited/the best possibility if I want to call Python from Java code. If the main program is in Python, using Jython will restrict you on a Python feature set that is roughly the same as in Python 2.2.

Jython in SVN is 2.3 + some 2.4 features, and some 2.5 libraries.  Here's a slightly old status report:
http://groups.google.com/group/jvm-languages/browse_thread/thread/e53015c684f69d2d

Hopefully they'll do a new release sometime soon.

So I think JCC is basically the right thing to do as this is the only way you can always use the latest Python features (even Python packages that are written in C) and the latest Java (GCJ always had threading issues and is generally hard to debug).

There are different tradeoffs; wedging two completely separate runtimes into the same process gives you a lot of integration issues - garbage collectors that aren't aware of each other, etc.  

Furthermore using JCC you can even use Java from C++ without too much hassle - quite cool I think :-)

Yeah; it does make sense I think to ship JCC.  But once Jython is able to run major web frameworks like Django/TurboGears, there will be less need for it.
 
Sorry, my wording was not detailed enough. JCC does "JNI the other way round" so it calls Java from C++. Therefore there is no System.loadLibrary which could be patched. Instead I have to rely on the standard linker configuration (or use rpath).

Ah, I see. I think it makes the most sense to either put libjvm.so in $libdir or use dlopen, but that's more of a detail for the OpenJDK/Icedtea hackers.