On 5/20/07, Anil Gangolli <[EMAIL PROTECTED]> wrote:
I'm really happy that we are playing in this direction, because I think
adopting the DI model, if we really adopt it fundamentally, will tend to
improve our modularity and clarify dependencies.
On the choice of Guice, I have concerns. From my perspective Spring is more
mature, well-documented and tested, has a more open contribution model, and
is in wider use amongst a broader community. Plus we have at least two
committers that are using it in other settings.
I've been interested in Spring and have looked at it a number of times
in the past. I even put down my own money for a copy of Raible's
Spring Live book and read the IOC relevant chapters. It's a good book,
but Spring never clicked for me. It just seems too complex -- and I'm
just talking about IOC, not the giant mountain of other Spring APIs.
Guice, on the other hand is simple and easy. It took me no time at all
to figure out -- no books or extra docs necessary.
It's my understanding that Guice now powers Google Adwords. You'd be
hard pressed to find a more massively distributed, scalable, etc. Java
app out there. So, I'm not particularly worried about Guice maturity
and testing.
What do you mean by open contribution model? At JavaOne I spoke with
the COO of Interface21, the now venture-backed start-up that controls
Spring. He told me that Spring does not accept external committers and
has no plans to do so. Is that true? And if so, how is that an open
contribution model?
Guice? They even let the bile blogger in. How much more open can you get ;-)
I hope I'm not sounding too harsh here. Don't forget, I'm just one
committer here with one vote like the rest. If some other committer
wants to create a roller_spring branch and show us how to wire
everything up with Spring IOC, that's great. I promise to take a close
and fair-minded look at that work. But at this point, I'm personally
more interested in promoting Guice.
I understand some of the aversion to the XML configuration. Still XML can
be readily manipulated both manually and automatically during installation;
I hope we won't be asking users to modify distributed code in order, for
example, to add plugins or to swap a rendering model implementation.
Definitely not. Plugin writers should never have to modify Roller code.
- Dave