Re: Some Thoughts

seb bacon <[email protected]> Wed, 05 Feb 2003 14:17:05 +0000
Newsgroups gmane.comp.web.zope.zope2-migration
Message-ID <[email protected]>
Joseph,

I'm afraid you are unlikely to find much support for your java-zope 
campaign among most core developers ;-)

1) It is *highly* unlikely that jython would improve performance
2) Performance is not an issue for Zope users.  The performance issue is 
easily punted on to other parts of an infrastructure.

The performance argument is really a dead-end.  There is possibly a case 
for Java in terms of winning over more developers from the Java world, 
but I don't believe that increasing Zope mindshare is a goal of the 
Zope2 -> 3 migration.  Zope 3 is about doing things the Right Way, and 
the migration is about convincing people that it is a Good Thing.

I suggest that if you want to continue the debate, put out a call on 
zope-dev, and possibly set up a mailing list if there is enough 
interest.  Furthermore, none of the *current* core developers have *any* 
interest in such a project (for good or bad reasons), so you could also 
find some Java / Jython developers and enthuse to them about it.

Some notes re. performance follow.

seb

Joseph Grace wrote:
>  >With regard to Java: I personally have NO interest in a Java port.
> 
> You would not need to; you just need to want a faster zope.

  - jython is not faster than python in arbitrary pystone-based
    benchmarks; it is roughly equivalent
  - jython/java performance varies massively depending on the JVM used
  - I believe that using JITs is not recommended with jython, which will
    cause a significant decrease in performance
  - pystone benchmarks are one thing; real-world apps are another.  We
    won't know how well Zope will perform under jython until it is
    implementated in jython.

There is absolutely no reason to believe that a jython version of Zope 
would be any faster, or easy to implement.

> Python dovetails virtually perfectly with the jvm object model.  

Hmm, multiple inheritance?  Interfaces?  Operator overloading?

Other incompatibilies:

  - jython doesn't have a restricted execution mode.
  - jython doesn't support the same introspection interfaces as python

 > All of a sudden the code would be running at JVM speed which is
 > (debates aside) nearly C/C++ speed for typical code

I don't understand.

  - JVMs are implemented partly in C.
  - A hardware JVM might compare favourably.  A Microsoft JVM is a bit
    faster than the Sun JVM.  All software JVMs are an extra execution
    layer on top of the hardware.  There is no useful or meaningful
    comparison you can make between "JVM speed" and "C speed", beyond
    that C is *much* faster.
  - Java and python are both slower than C by several orders of magnitude

seb