JPype is alive! kinda ....
Despite a few false starts, I am still working on JPype. I haver recently undertaken to rewrite it again.
Last year was a major false start. The architectural goal of writing less C++ landed writing just as much (in glue code), but also write a lot more of glue java and python code. Best forgotten.
This time around, I decided to tackle the main issue first. So after doing minimal work on general class support, I tackled what I set out to do all those years ago : subclassing.
As of this writing, it works! With a few restrictions, it is possible to extend a java class in python, pass an instance of it to java code and have the java code call the python methods! Hurray!!!
With this release, I have also decided to get serious about multiple host language support. To this end, the main package has been renamed to JEmbed. It has a completely new API geared towards the new functionality.
JPype will continue to exist. My goal is to re-implement the JPype API on top of JEmbed such that existing programs will continue to work as-is.
I am also going to try an open approach to the progress. All the main tasks are listed on t he sourceforge project (JEmbed and JPype ). As things progress, I will add tasks there, and track their completion.
If anywone sees anything missing from there, or have requests to make, let me know! please open a feature request on the site ( http://sourceforge.net/tracker/?group_id=109824&atid=655015 )
Thats it for now.
Last year was a major false start. The architectural goal of writing less C++ landed writing just as much (in glue code), but also write a lot more of glue java and python code. Best forgotten.
This time around, I decided to tackle the main issue first. So after doing minimal work on general class support, I tackled what I set out to do all those years ago : subclassing.
As of this writing, it works! With a few restrictions, it is possible to extend a java class in python, pass an instance of it to java code and have the java code call the python methods! Hurray!!!
With this release, I have also decided to get serious about multiple host language support. To this end, the main package has been renamed to JEmbed. It has a completely new API geared towards the new functionality.
JPype will continue to exist. My goal is to re-implement the JPype API on top of JEmbed such that existing programs will continue to work as-is.
I am also going to try an open approach to the progress. All the main tasks are listed on t he sourceforge project (JEmbed and JPype ). As things progress, I will add tasks there, and track their completion.
If anywone sees anything missing from there, or have requests to make, let me know! please open a feature request on the site ( http://sourceforge.net/tracker/?group_id=109824&atid=655015 )
Thats it for now.

9 Comments:
Hi, I try to run JPype in Python with mod_python. But it gives a bunch of errors. Seems like it is unable to attach to a JVM or sometimes start a new one and so on. Any advice? Please!
I haven't tried JEmbed as I last worked with JPype this spring. I can only subscribe to the idea that such a project is very much justified, I would even dare to say that it is vital as both languages are mainstream. So, congrats, and please, keep up the great work!
If this is the place to write to Santa Claus in JPypeland I would ask for better error reporting. When Python calls Java that calls Python that calls Java, etc. runtime errors could only get spotted either by super verbose logging or after a tedious narrowing down of the suspicious code segments.
Laa you problems with mod_python are interesting ... perhaps you'd like topost on the JPype mailing list? I haven't tried what you describe yet,and I am super the interestions between Apache, Python and JVM will make for interesting and educational situations. People there might be able to help you.
Zsozso I am keeping up the work .. as best I can .. I find I don't have much use for python anymore, as the Java tools geatly reduced the advantages that python offers. Still, Jpype/Jembed is not dead!
Error reporting is a tough one .. chaining together Python stack trace and Java stack traces willnever be natural. AFAIK Python exception do not even have the concept of exception chaining. At best (and that's my current plan) I will stringify them and concatenate.
I am sorry to read that your interest in Python has somewhat faded. While being primarily a Java fan, I can't avoid Python that is becoming a fundamental (wrapping) language in scientific computing. I appreciate its high-level programming language features and its natural connection to C.
Any error reporting is better than none. So stringifying all stack traces would be great, thanks!
Please, please, keep the project alive. I am starting a project which will rely heavily on JPype. Maybe, if I'll have time I can participate in JPype development.
Regards
Vid
No worries, the project is far from dead. While it has seen more active periods, I am still maintaining and answering all questions. Even implementing some simple enhancements on the 0.5 codebase, as the PyPy team will soon be able to attest.
So rest easy!
I'm using python daily for all my simple scripting needs, but I find it sometimes too relaxed and not suitable for high-level prototyping because of lacking features which java provides, like interfaces and such.
So I was thinking of using JPype as glue between python outside interface and java classes for doing actual job.
I'm wondering if I'm on the right track. Could you comment on what made you to not use python so much anymore?
Quite simply, python tooling is not up to snuff.
The evolution of tools around Java is really impressive. Comparing just the languages, python is really a better language than Java. But add in the tools, and Java leaps ahead by miles. The refactoring support, code completion, etc ... that are missing (and nearly impossible to get right) on python make me feel like I am missing an arm.
Add to that that my recent endeavors are all Client GUIs delivered via Webstart ... and well I just don't have a place for it in my toolset anymore.
It may change though. Sun is investing in dymanic languages like Python, so maybe the tools support will catch up.
Post a Comment
<< Home