RV: [Long] Development in Zope (Was: Re: [Zope] data point on ease of learning Zope -- I give up.)

Cees de Groot cg@cdegroot.com
Sat, 17 Mar 2001 00:05:40 +0100


In article <000201c0ae2b$79372de0$5d60ae3e@k6> you write:
>I have a ERP solution (made with MS-Access) for small companies and want to
>migrate to another platform, but I don't know how to start. I would like to
>use standard browser technologies, but sometimes it seems not to be
>sufficient. Also I would like to have a O(bject)Q(uery)L(anguage) Object
>Store to access efficiently thousand of objects, but I still haven't found /
>experienced a good solution. The same thing with the data-modeller and
>document-framework. So I spend really a lot of time browsing through the
>Web.
>
You may want to check out Smalltalk. Especially for an ERP solution I
would not use Zope - ERP is lots of business logic, and I have tried
three different ways of doing lots of business logic with Zope, and
no one is satisfying.

<sidestep>
My first attempt was to do everything through-the-web. Needless to say, this
isn't exactly a way to get great code - the web browser sits in the way of
refactoring, getting a birds-eye view of your code, quick browsing, etcetera. 

So, I binned version 0.0.1 and write 0.1.0, which was completely in Python -
the domain model neatly separated out from the application model, which was
a Zope product. This was better, but still sucks because the DTML is all
on the filesystem (so a TTW webdesigner can't access it and make it 
better looking) and you are constantly restarting Zope.

Therefore, I'm converting it into what I think should become 1.0.0 which
still has all the code in Python form on the filesystem, but the DTML
is pulled "up" into the ZODB and the one big product has been refactored
in four small products, for more Zope-level flexibility. It still sucks
because you're constantly restarting Zope, but at least my webdesigner can
hack around.
</sidestep>

For lots of business logic, if you want to stick with Python, I would
recommend WebWare which has a more "classical" setup, with Python Server Pages
and Servlets serving your users (PSP being the "View" and Servlets often
acting as the "Controller"), and raw Python code containing the logic (the
"Model" part of the picture). It has lots of bells and whistles in the latest
version, among others an object-relational mapping layer (no OQL though).

If you're not married to Python, I'd seriously consider Smalltalk. It's even
more effective than Python, but one caveat is that certainly in the beginning
you probably want an experienced Smalltalk "coach" on your team. Coupling
Smalltalk to eXtreme Programming practices will probably result in an ERP that
easily outperforms SAP R/3 on most fronts ;-)

(ok, I'm exagerating...)


-- 
Cees de Groot               http://www.cdegroot.com     <cg@cdegroot.com>
GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD  1986 F303 937F E098 9E8B