[Zope] can zope port to java/dotnet?

Dylan Reinhardt zope@dylanreinhardt.com
Wed, 12 Mar 2003 20:45:47 -0800


At 07:15 PM 3/12/2003, =?gb2312?q?Chen=20Fu?= wrote:
>I like zope for its pure OO framework. is it the only
>work among the CMSs take this design? If it is true,
>why not any other clone in java, c# or cpp?

If people who programmed in c# or java cared about using good tools, they'd 
have switched over to Python by now.  :-)

>I agree Python is a good language, but it faces many
>challenges also like relative slow speed

Python code won't execute as fast as assembler, but you'll finish your 
project a lot faster and have an easier time maintaining it.

>, short of
>programmer(compare with java cpp)

Python is today poised where Linux was about 6-7 years ago... most people 
have barely heard of it and only a few have found out first-hand how 
utterly it eclipses just about everything other choice in a wide range of 
applications.  Six years ago was a great time to be building your 
credentials as a Linux guru... now is a great time to be investing your 
time in Python.

>and short of elite
>programming environment (like MS visual studio).

There are overpriced IDEs for Python too.  :-)  Anyway, 90% of the problems 
solved by IDEs just aren't problems in Python.  Turn on syntax highlighting 
in Vim and you've got pretty much all the environment you could possibly 
need.

>Some articles explain why the zope can't port from
>CPython to JPython. But how about a rebuild in pure
>java/cpp/c#? is it possible and deserved?

A more important question is why you'd bother.  Why waste important 
development time achieving barely any more performance than you might have 
gotten out of a memory upgrade?  Besides, who want to recompile every time 
you upgrade a product?

Evaluating Python (or Zope) for its speed of execution is asking the wrong 
set of questions about this kind of software.  Performance matters *some*, 
but not nearly as much as development cost, maintenance cost, and time to 
market.  If you work in an environment where software gets validated or 
audited, you just can't beat Python for its clarity.  When push comes to 
shove, it's usually a lot easier to get more hardware than more hours of 
good programming talent.

If you want to improve Zope's performance, you can start by delegating 
more.  Proxy aggressively.  Serve all static content (especially images) 
out of Apache.  Do more load balancing.  Upgrade to ZEO.  Once you look at 
the big picture, there are very few situations where tweaking low-level 
code is the most efficient way to conceive of improving 
performance.    Just because Zope *can* serve as an all-in-one tool doesn't 
mean that's the best way to use it.

There are situations where writing the smallest, fastest thing possible is 
critical... most web apps just aren't in that domain.  If you're having 
performance problems in a web app, your time is almost always better spent 
tweaking the graphics than just about anything else.

My $.02,

Dylan