Thanks; that's a cool comparison. -- Howard M. Lewis Ship Creator, Tapestry: Java Web Components http://jakarta.apache.org/tapestry http://jakarta.apache.org/commons/sandbox/hivemind/ http://javatapestry.blogspot.com
> -----Original Message----- > From: news [mailto:[EMAIL PROTECTED] On Behalf Of Leo Simons > Sent: Saturday, September 13, 2003 10:21 AM > To: [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: [HiveMind] hivemind and avalon, revisited > > > Henri Yandell wrote: > >>So how is Hivemind different to Avalon? > > Here we go again :D. I'll join in here to help get a sensible > answer. Lets see if we can document it somewhere this time.... > > http://nagoya.apache.org/wiki/apachewiki.cgi?HiveMind/HiveMind > AndAvalon > (same content as this e-mail posted to the wiki) > > ....it's a more involved question than it seems... > > The problem domain for HiveMind and "core" Avalon is nearly > the same; the general role of HiveMind in any application > will be fairly similar to that of something like > Avalon-Fortress or Avalon-Excalibur: providing configuration > management, dependency setup, component instantiation, etc etc. > > > = Design differences = > > Avalon takes that problem domain, then adds a strong > "containment" concept (Avalon-Phoenix / Avalon-Merlin) in > places, which comes with additional security, various kinds > of "standalone" features, and corresponding extra setup. > > What avalon also adds everywhere is a strong emphasis on > several patterns, like Inversion of Control, and a very rigid > lifecycle (rules that boil down to "set up logging then > dependencies then create worker threads" that are encoded in > interfaces and enforced by containers) on every component. > All this makes avalon rather heavy to apply a system. That's > a disadvantage (lot of work, very much nonoptional > dependency, some flexibility lost) and an advantage (rigid, > clean, structured, common setup). > > ---- > > HiveMind simply makes a few different choices, with its own > set of advantages and disadvantages. There's no IoC, and > various bits are /way/ more dynamic than is desireable in an > IoC environment. Looking past all the "features" and > "history" of both frameworks, this, IMO, is the actual big difference. We need an industry standard definition of IoC then. As I understand it, IoC means that a container is responsible for instantiating services, managing them, configuring them, connecting them together, and providing some amount of lifecycle support. Outside of lifecycle support, HiveMind has all of that, mostly via the BuilderFactory. > > Which answers the implicit question "So why not combine > HiveMind and Avalon into a single project?": there are a few > core design choices that are different between HiveMind and > Avalon that make the two distinctly incompatible. > > ---- > > I might summarize that as "Avalon is a very rigid kind of > component framework, HiveMind acts a lot more like component 'glue'". I always like glue. Smells funny! > > > = Concrete differences = > > For component writers and application assemblers (people who > take a set > of components and wire them together to make them actually "do" > something), the differences are actually rather small. To > show how small, I wrote > http://nagoya.apache.org/wiki/apachewiki.cgi?AvalonAndOtherShinyContainers which shows you how your component can be portable across avalon, pico, spring, webwork/xwork, and I've now added HiveMind as well. Probably not too accurate, though. Close enough; added a few changes (large documenats are a pain in a Wiki, however, perhaps this should be split into multiple pages?) = Other frameworks = Howard M. Lewis Ship wrote: > So there's definiately some overlap with Avalon. If I didn't have my > day job, and the remaining work on "Tapestry in Action", I'd love to > survey all the current microkernels, including Avalon, Spring, Pico > and so forth. > I'm trying to maintain a wiki page to that effect: > http://lsd.student.utwente.nl/jicarilla/RelatedProjects SoC IoC SAI DecP and AOP-lite HiveMind's geek code! > but its been difficult for me placing HiveMind in any kind of "box", > especially as its moving rather fast. Think its slowing down now. -- Howard M. Lewis Ship Creator, Tapestry: Java Web Components http://jakarta.apache.org/tapestry --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
