On Sat, Aug 1, 2009 at 3:21 AM, Kay Schluehr <kay@fiber-space.de> wrote:
I do think Apress can market its books however it likes but I consider
it as a fraud when the relationship between Jython and Django is
practically immaterial and all there is about Django on Jython is that
it works. Well, it's still your book and you have to live with that.

I think the term "fraud" should not be used in this discussion.

The book is not just our book. We decided to open source it to the community to ensure that it's accurate, current, and available. We actively solicit not just comments, but code examples and other patches. It's in Mercurial so as to facilitate just that model of development. http://kenai.com/projects/jythonbook. Or if not familiar w/ hg-style dev, email your patches as described here: http://kenai.com/projects/jythonbook/pages/Commenting

And of course it's a project that has just begun.

Being under active development means that the book is subject to extensive change. This is especially true with respect to voice, content level, perhaps even title, etc. Again, we want feedback here (or patches). I should point out that Jython has been used as an introductory programming language, most notably in Alice 2 and in JES. However, given the range of this book, it would not be a good strategy for this particular book to be start introductory and end advanced. We are not doing this to spin people's heads.

That Django simply works on Jython has its value. Greater value is seen when complemented with other aspects of Java infrastructure - WAR deployment, connection pools, sandboxing, JMX, execution services, JMS, access to Java libraries - as well as specifics to a given app server (eg WebLogic's deployment plan for app lifecycle mgmt). I hope to have coverage on these matters, if not in the first printed edition, then as it evolves. Of course this coverage is not just applicable to Django. However we work the example should be fine, as long as we indicate where to go next.

Google App Engine's support of Jython suggests that it should be feasible to run most/all Django apps (or other apps like Pylons) that run on the CPython version of GAE unchanged (although we do need to implement some compatibility shims like the imaging API). But unlike the CPython version, it's possible to write native extensions for GAE in Java to make an app run faster, or just take advantage of some existing Java libraries. The JVM sandbox is simply much more versatile than funneling everything through Google to potentially harden. Again, something that should be in this book, and something that also really benefits from community involvement to find those interesting examples.

And the list goes on. Consider a discussion on using Terracotta for distributed shared memory, and integrating it with Django's caching mechanism. (With applicability again perhaps on TurboGears, web2py, or perhaps for once something besides a web framework.)

IMO an evident starting point of improving Jythons documentation is the
"User guide". It needs more and a better structure ( and an enumeration
of sections ;) and at some points even less ( a major chapter for
JRealod? ). There are also major mistakes in the guide: since when are
Integer, Float and String Python types? Last time I looked at Python
those were named int, float and str...

I have updated the User Guide, as you suggested, along with a number of other fixes. Please note it's a wiki - anyone can improve these docs.

I see 5 major sections right now:

1) Installation + Configuration of the Jython interpreter ( including a
mention of Netbeans which is incomplete BTW because the Netbeans plugin
lacks the registry file ).
2) Java compatibility. This includes type mappings, working with the
classpath but also reflecting Java properties. ( To work with Java
consistently some registry file settings have a wrong default value in
particular respectJavaAccessibility which must be set to false. If you
want full Java attribute access protection just use Java ).
3) Jython API and a technical perspective on JVM integration. This is
for potential Jython core developers. Embedding of Jython in other Java
applications can be handled in a subsection.
4) Compliancy with CPython. This covers major differences and utilities
like pycimport.
5) Practical utilization of Java with examples of Servlets, Swing, JDBC
and others.

All of these are good, although I don't know what the overall structure will look like. Let's start first with the Python doc set patched for Jython, our Jython book, a wiki cookbook...

- Jim

Jim Baker