[Zope-ZEO] Advice

Greg Ward gward@mems-exchange.org
Mon, 25 Sep 2000 10:03:19 -0400


On 22 September 2000, Chris McDonough said:
> This is why we've been working on exposing parts of Zope (such as the
> Publisher.Test module) which are useful for unit testing.  But there are
> really
> two ways to do this, either of which is viable.
[...]
> 2.  Code all of your logic using TTW stuff and Zope components.  Use the
>     Publisher.Test.test method to call methods of your Zope components
>     in unit tests.

I don't think this is viable for a serious application: right now, we're
at 13k LOC in 160 source files, and the end is nowhere in sight.
(That's real lines of code, *not* counting docs and comments and so
forth.)  My experience is that programming languages have pretty hard
scalability limits (shell: 10-20 lines; Tcl: 100 lines; Perl: 1000
lines; Python: I haven't hit the wall yet, but have been warned to look
out in the 30k - 50k range).  I suspect the same is true of programming
environments.  (X)Emacs/Unix has pretty good scalability; probably not
as good as some of those fancy IDEs I keep hearing about from the
Windows world, but good enough for me.  Netscape's <textarea> tag is
probably the most limiting programming environment I can imagine; I have
DTML methods that are almost 100 lines long, and they are completely
incomprehensible and unmanageable.  A programming environment that can't
handle more than 50 lines of code at once is probably not suited for a
20-50k LOC beast.

> Again, your frustration may be symptomatic of coding in instance space
> instead of developing a product.  But this is not your fault, it's ours.

This strikes me as a good pithy summary of the problem.  We were trying
to write *code*, dammit, and a database-of-code-objects is not an
adequate substitute for a real programming environment.

        Greg