IMHO is Apache-only. It uses either mod_lisp or a homegrown
establish a connection between Apache and the Lisp server. The included
mod_webapp package is derived from the one in the Apache project.
I'm not sure I've ever seen a summary of IMHO's features, so here's my
stab at one:
Built in session management. Sessions are set-like objects used to
keep track of one current instance of any lisp class. These "session
instances" are used to maintain the current snapshot of a user's
interaction with the application.
HTML element class hierarchy. Each HTML tag (and therefore each HTML
document) is represented by a CLOS class descended from
Webmethods. Imho keeps track of a bunch of programmer-specified
generic functions called webmethods; a browser request causes imho to
lookup the appropriate webmethod, target element and arguments and
select and invoke the proper webmethod based on parsing the method
name and typed arguments out of the submitted URL.
Element tree structure. An element is an n-ary tree of child elements
and a parent element. This allows cleanly abstracted widgets to be
created with minimal code, since, say, a submit button placed at the
bottom of a tree of elements can simply ascend the parent tree looking
for a target object to call its method on.
Template-based presentation layer (HTML plus a single tag with a
single parameter). Designers can code mostly-HTML page templates and
refer to live, session-particular lisp objects by name.
Plenty of other stuff but just that much is pretty cool, huh?
The real fun comes when you combine IMHO with
Damn, lisp rocks!
Is IMHO the Lisp analog of Python's Zope, then?
-- Kinda, yeah. Only Zope tries to solve many problems (it comes with its own object-database) IMHO doesn't even address (a good thing, if you ask me). They have quite different approaches and from my experience with the two of them, I would prefer IMHO over Zope because of the way IMHO is interegrated with CL. It feels quite natural to work with it. Erik Enge