[ZDP] Zope is missing an API?

Robb Shecter shecter@darmstadt.gmd.de
Sat, 05 Feb 2000 16:35:47 +0100


Hi,

I'm new to Zope, have used Python as a script language on and off, and
aside from that use Java or Smalltalk mostly.

(Disclaimer: I'm used to statically typed languages, like Java, so
this influences my working style...)

I think that the Zope documentation is great - I've read the CMG, PG,
AG, lots of the howto's, and browsed the quick reference.

But... the documentation seems, umm.. Perl-like.  I mean that in the
best possible way.  :)  I really miss a totally hyperlinked,
object-oriented API.  I picture something at least as good as the
Python API docs, but maybe even up to the detailed level of the
(automatically generated) Java API docs.

To me, the goal of this is to help let the language stay simple, where
the programmer consults an API for whatever libraries are needed -
like Python and Java do it.

I had a down to earth problem where I really wished I had this:

I wanted to print a list of all the roles accessible to a certain
script.  I quickly had lots of problems:

What methods are available in the current context?
On what objects are the methods being invoked?
How are the many getRole-like methods different from each other?
(And, after finding a method)
What is the class of the returned object?
What attributes does it have?
What methods does it have?

I couldn't figure it out on my own, and got a DTML script from someone
else.

So, concretely I want (and maybe others too?) an API that:

* Is hyperlinked
* Shows all classes
* Shows all methods both indexed alphabetically (practically how it is
now), but also listed by class
* All return values or interfaces of methods
* Shows the inheritance hierarchy for each class
* Shows all subclasses of any class

Now, due to the statically typed nature of Java, the Javadoc program
can generate all of this automatically.  It then also defines special
tags that programmers can use the documentation.   I don't how what
this would be like with Zope.

Finally, I think there needs to be a clear document, in the PG, that
clearly shows how an aribitrary method is invoked on an object, in the
various contexts where this can be done in Zope.  This way,
programmers can work in the "new" OO way of having a simple language,
and a large library, instead of the "old" Perl way of having a large
complex language with many parts that must be memorized.

OK, Just my 2 cents.  Again, I'm interested in helping with this, if
others see some value in it.

- Robb