I agree with Jesse. To improve maintainability, we need less dynamism, not more, and more explicitness, not less. Silk looks like a step in the wrong direction, while Dagger is a step in the right direction.
Generally speaking, very little is actually subjective when it comes to programming. One design is almost always objectively better or worse than another. Let's move further Silk-related discussions to the Silk list. Bob On Sun, Apr 7, 2013 at 9:14 AM, [email protected] <[email protected]> wrote: > I don't fully agree on the criteria of this comparison. Jan, you and I > disagree on which DI features are useful and which ones are harmful! > > Having worked a some large Guice applications (dozens of modules) I think > Guice's biggest flaw is that it is very dynamic. Although this is essential > for building powerful frameworks, it also makes larger codebases more > difficult to navigate & understand. > > Silk is more dynamic than Guice. Features like loose multibinds, > mostPreciseOf() and TARGET_INSTANCE scare me just a little. The lack of > annotations means it's not obvious from the application code which classes > participate in dependency injection. I'd have to actually use Silk to learn > if this is a problem in practice. > > I've also been working on a Guice-like dependency injector called > Dagger<http://square.github.io/dagger/>. > Its like a mini Guice, that intentionally omits dynamic bindings. I've > filled out how Dagger stands for the Guice-vs-the-World comparison here: > > https://docs.google.com/spreadsheet/ccc?key=0AqH4uBT50p0tdEhLOEU1WHB4RUZjR2RURVF6MThkZnc#gid=0 > The Dagger column confirms that it does less than the other dependency > injectors. For me this is a feature, but it does limit the appeal of Dagger > for larger projects. > > *And for larger projects is where the entire comparison itself starts to > fall down.* > > When a developer chooses between Guice and Spring and the others, they're > less interested in *features* and more interested in the *ecosystem*. > Spring has a huge ecosystem and will integrate with everything. But I think > Guice's > ecosystem <https://code.google.com/p/google-guice/wiki/3rdPartyModules>is > better still. It has first-party integration with JPA and servlets. > There's third-party integration for lots more, and it's possible (if > difficult) to write rich integrations for other infrastructure. > > Until Silk has an ecosystem like this around it, it's appeal for most > applications will be limited. > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/google-guice?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/google-guice?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
