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 imho:html-element. 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 UncommonSQL.
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