[Zope] can zope port to java/dotnet?

J Cameron Cooper jccooper@jcameroncooper.com
Thu, 13 Mar 2003 15:18:09 -0600


>
>
>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? 
>
I'm not aware of any. I think it would be good it Zope had some closer
relatives (both for zope and the world in general), but for some reason
there aren't. One can find several reasons:

1) stuck in the database. A significant number of people in the web app
server area are dead stuck in the relational/SomethingServerPages mode.
They aren't likely to come up with a zopish system.

2) sticky developers. Those who would like such a system found Zope and
no reason to try to redo it. Zope got there first, well, and open.
Later, poorer, or closed hard time up against that.

3) 800-pound gorillas. Other language communities have existing unzopish
frameworks that make other players in that space invisible. Once upon a
time there were competing Java frameworks. Then J2EE and EJBs came
along, and suddenly there was no room anymore. C# was born that way.
Perl has always been THE CGI laanguage. As to C++, well, nobody seems
too interested in web programming in that, and I can see why.

>I agree Python is a good language, but it faces many
>challenges also like relative slow speed, short of
>programmer(compare with java cpp) and short of elite
>programming environment (like MS visual studio).
>
Speed is an illusory issue on the server side. It is important for
system-level components, real-time operations, and to some extent
interactive applications. App servers are non of those, and speed on the
server side is really a question of hardware. Anything that isn't
grossly slow is probably fine; what you really want is development
speed, maintainability, and other people-related factors.

Besides, the difference between interpreted and compiled languages if
fairly constant, and real speed differences come with the algorithm.

As to programmer populations, there is a valid difference. But I don't
take it for granted that a trying to cater to larger population is
necessarily better: it makes it easier to get lost. And to my way of
thinking, a programmer who can't or won't work in some other scheme
isn't much of one. Especially with such an easy language as Python.

I'll lay off of IDEs and why I think they're a mostly illusory benefit.

>Some articles explain why the zope can't port from
>CPython to JPython. 
>
Every once in a while someone tries this, but it never really takes
root. I don't think the problem is primarily technical: there's just no
real reason. Python is already more portable than Java, and various RPC
schemes make it unnecssary to access Java components in-process.

I happen to think it would be a good thing if Zope were clean enough to
run on any Python implementation, if only to ferret out bugs. But if the
only justification is to be buzzword-compliant, I can live without.

>But how about a rebuild in pure
>java/cpp/c#? is it possible and deserved?
>
Anything's possible. There's nothing really to stop someone from making
a persistent-object/through-the-web/acquisition-ruled/easily-extensible
web application server in Java or Perl or Smalltalk or OCaml or
whatever. One could conceivably even do it in FORTRAN, save that it
would be an abomination and makes my eyes hurt thinking about it.

Is is a good idea? I don't think so. The loss of momentum, if nothing
else, would be deadly. I don't think being Java or some sort of C would
bring significantly more interest, or make the product better: certainly
not to the extent of the risk.

Is it deserved? Not really. Every programmer feels the urge to throw it
all away and rebuild it "knowing what we know now." That should be
resisted unless you're running into serious walls. There is occasional
justification for a rewrite or major refactor: hopping on bandwagons
isn't one of them.

Will it ever happen? Almost definitely not. Besides whatever else above,
Python is the soul of Zope: deceptively simple, flexible, ad hoc,
powerful, and a little mysterious. Zope without Python would be, well,
something completely different.

In the end, it's not really about implementation but results. If it's
good, it'll grow, and who really cares how it's written.

--jcc