A lot of the discussions about guice, etc, seem to be pointing at a
disconnect about what Shindig is or how Shindig is expected to be
used. I think we should clarify this.

I know that Henning sees it as a library or framework, for instance,
like Struts (or Wicket, for the more modern folks). Personally, I see
Shindig primarily as a product, like Tomcat or PostgreSQL. Henning's
vision reflects how we (Ning) presently use it, largely as an artifact
of the state Shindig was in at the time we froze (well, internally
branched) to get our current opensocial implementation out.

While I think this model is eminently practical for the state Shindig
was (is?) in, I don't believe it is the right way to do it. A much
better model, to my mind, is to have the primary path be to have
Shindig as a standalone service into which you can provide your
changes. The better anology is probably like the apache httpd server
or jetty. Out of the box they work as standalone servers for most
cases (given correct configuration), but you can very easily extend,
change, heck warp them into almost anything else if you need to.

One model of achieving this (though it makes me queasy) would be to
distribute Shindig primarily as a .war and have it do jndi lookups for
the deployment specific things, and configuration items, it needs. I
suspect I am going out on a pretty stable limb saying that I doubt
this fits neatly into any current user's deployment scheme, but it
does meet, I believe, the vast majority of needs in a succinct and
well understood, if not shiny, way.

It might behoove us to come to some agreement on *how* we expect folks
to use Shindig, and then tell folks that :-)

-Brian

Reply via email to