[Zope] Love Zope but want to avoid Python
sean.upton@uniontrib.com
sean.upton@uniontrib.com
Wed, 12 Feb 2003 21:03:42 -0800
Really, Python is Zope's Secret Weapon. Ignoring that is to your
disadvantage.
You can use Java in Zope, but only via Python. Look at JPE, which is a
bridge between CPython and Java. This would allow you to leverage existing
Java code and familiarity in Zope/Python. I think I've heard of someone
using this technique to write a custom catalog index using a Java-based
indesing framework.
Frankly, though, all the advantages of Zope won't make sense if you try to
use it in this way. To take advantage of Zope's object persistence, you
really need to be coding in Python; I don't think JPE will give you enough
power to . It is an awkward mix, except in certain circumstances.
Most Java programmers have no problem with Python, since concepts are
similar in many ways. If you are really into (finger) typing more than you
need to, I suppose you can stick with Java.
Its funny, but I would think Java is a crutch...
(a) Static typing introduces more potential for errors in casts than the
potential for errors (not caught by a compiler) in a dynamically typed
language with test-first design. Unit-tests and code-readability make
Python a hands-down winner.
(b) Working in both worlds isn't that bad. Many folks handle both Java and
Python skills just fine.
(c) Java is a poor language for code-reviews, experimentation and such,
becuase there is more code to read, intent is not clear across team-members,
and you can't try out a snippet of code in interactive mode. It only
doubles in complexity if you start to realize that (ouch!) you have to write
your unit tests in this same cumbersome language. This means that Python is
orders of magnitude faster for team projects and developing using
component-oriented methodologies that have any hope of scaling past 1
programmer.
(d) Read http://www.infoworld.com/article/03/02/06/06stratdev_1.html
(e) Read Bill Venners' 5 part interview with Guido
http://www.artima.com/intv/strongweak.html
(f) Learning Python is easy, easy, easy, especially for a Java programmer.
Similarities: assignment via reference, fully-object-oriented from the
start, rich class libraries. Differences: Python supports mutliple
inheritance, interface contracts are not required in Python, but can
optionally be specified (and are in most good Zope products, like the CMF),
Python is dynamically typed, which means less casts and worrying about
type-checking (just focus on passing unit-tests instead). Python can be
learned interactively. You are not going to face the same, or even 1/4 of
the same learning curve you took on when you first learned Java. Buy
youself a copy of Beazley's Python Essential Reference, 2nd Ed, and go
through the official Python tutorial at: http://www.python.org/doc/ and you
should be in good shape.
If you don't have a few hours to learn the ropes in Python, perhaps Zope is
not really going to benefit you as much as it possibly could; if you are
that committed to the Java platform, you might want to consider some of the
other app server alternatives out there. If Zope has compelling features
(and it has many) that are attractive enough, learning Python should not be
the barrier for you. If it is, you likely don't care about the features
enough to justify the interest.
Sean
-----Original Message-----
From: Heri [mailto:htan@gmx.de]
Sent: Wednesday, February 12, 2003 8:04 PM
To: zope@zope.org
Subject: [Zope] Love Zope but want to avoid Python
Hi,
i'm a java programmer for the last 3 years.
I'm very comfortable with Java Language now, and understand most of its
library, ettc..
I like Zope very much and like its ZPT and many others.
But I have not much idea about Python and I don't want to spend much time
'learning python' just do do stuff with Zope.
As I feel more comfortable with Java, can someone suggest me a way to use
ZOPE by using my Java Skill?
thanks!!!
_______________________________________________
Zope maillist - Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )