Hi all, here is our first PR to demonstrate what blender is and what it changes in Guice : https://github.com/google/guice/pull/880
(sorry for the delay, we had some pending work and a few things to solve in blender). Stéphane On Wednesday, October 22, 2014 5:11:18 PM UTC-4, Sam Berlin wrote: > > One immediately useful thing that would be helpful is a doc that lists any > new APIs, changed APIs, and removed APIs, along with rationale of each. > Also if any implementation details are different, that would be useful to > explain too. The slideshow linked earlier is nice for an end-user, but to > know if it can be merged into Guice we'd need something a bit meatier. A > pull request would also be useful, to see the actual code changes. > > sam > > On Wed, Oct 22, 2014 at 5:08 PM, Stéphane NICOLAS <[email protected] > <javascript:>> wrote: > >> Thanks for this answer Christian. Let us know if we can help this review. >> >> 2014-10-22 16:30 GMT-04:00 Christian Gruber <[email protected] >> <javascript:>>: >> >> Always happy to meet folks and share experiences. As to whether we would >>> consider merging Blender into Guice, that's an easy and a hard question to >>> answer. The simple answer is - we'll consider any great improvements. But >>> how it turns out is obviously a combination of API review, implementation >>> review, licensing (no issues if it's Apache 2.0), performance implications >>> in cases other than what the code was intended to solve (side effects), >>> whether the chances change the scope of the Guice project in ways we >>> wouldn't prefer, etc. >>> >>> That said, I don't know that it's necessary. If it's a fork, you can, >>> ultimately, release it to maven with a different artifact. As long as you >>> properly manage dependencies so no one is pulling in conflicting symbols, >>> it's not an issue. We have a few guice forks out there doing interesting >>> things. >>> >>> But starting the conversation here is definitely a great place to start >>> helping us see what you're trying to achieve. Thanks! We want to >>> encourage folks to try new things, or re-try things in new ways, but I >>> don't want to unrealistically imply any particular likelihood of >>> incorporating it. We'll just have to look at the details to figure that >>> sort of question out. >>> >>> c. >>> >>> On Wed Oct 22 2014 at 12:20:33 PM Stéphane NICOLAS <[email protected] >>> <javascript:>> wrote: >>> >>>> I will let Mike answer your question Christian, as it is more oriented >>>> to his previous post. >>>> >>>> My personal point of view is that a lot of people already use RG, and >>>> for this reason itself, its worth trying to update it and make it the best >>>> it can. >>>> >>>> From a technological point of view, I really like RG as it way simpler >>>> to use than Dagger. I am not super familiar with Dagger, though I really >>>> love DI as it made me a better dev, but I really like how Guice is simple, >>>> and well known also for Android devs from the Java world. I like the fact >>>> that you add injections super easily, without having to define a module in >>>> the most simple cases, no need to say when the module is being used, by >>>> who, etc. I saw the video about Dagger 2 and chances are that this release >>>> will make Dagger close to RG in terms of simplicity. But I must say that >>>> up >>>> to now I have not been convinced by the Dagger tutorial and find it harder >>>> to use. >>>> >>>> Also, when we started to work on Blender, I have been keeping wondering >>>> if Guice was being discarded for the good reasons : namely speed and >>>> memory >>>> consumption. With Blender we could already re-gain some ground on that >>>> field, and I am pretty sure Guice could be even more optimized and deliver >>>> super decent performance results. I have been a bit sad to see that Google >>>> itself discourages using Guice on Android. >>>> >>>> Though, I agree that a lot of advanced features of Guice are too costly >>>> for Android, like the TypeLitteral stuff. But still, in that case, it >>>> could >>>> be enough for me to discourage people to use them on Android. >>>> >>>> So, to sum yes, I found it really both interesting and worth it to make >>>> Guice better so that we can use it on Android. >>>> >>>> Do you guys consider merging Blender into Guice ? >>>> It could be coded better, but we tried to minimize the changes so that >>>> you can more easily see the changes from master branch. >>>> >>>> Stéphane >>>> BTW, I am going to present Blender and RG 3 at AndevCon San Francisco, >>>> it would be glad to meet you or Sam there. >>>> >>>> >>>> >>>> >>>> 2014-10-22 12:38 GMT-04:00 Christian Gruber <[email protected] >>>> <javascript:>>: >>>> >>>> Can you recommend what features of Guice you find you want that Dagger >>>>> does not offer, and how these relate? The Dagger and Guice folks are in >>>>> pretty regular discussion and are related projects, and it would be nice >>>>> to >>>>> know what we're missing. Absolutely Guice is more powerful and flexible >>>>> across many dimensions - a deliberate decision to constrain APIs in order >>>>> to encourage certain patterns, especially in Dagger 2. >>>>> >>>>> Google has some experience (with some good results) simulating the >>>>> guice API in a compile-time annotation processor, though it still ended >>>>> up >>>>> being a sub-set of the GUICE total capability. I'm interested to hear of >>>>> your experiences. I will say, I'm really glad people are experimenting >>>>> with >>>>> different approaches. >>>>> >>>>> Also, I should point out that we do have a validation annotation >>>>> processor for Guice that we need to roll-out to help with earlier error >>>>> validation, though that doesn't address performance constraints. It's >>>>> been >>>>> sitting for a bit, owing to prioritization, but I think that we should >>>>> get >>>>> it in shape and into Guice soon. (cc:ing colin about that) >>>>> >>>>> Christian. >>>>> >>>>> On Tue Oct 21 2014 at 2:18:15 PM Michael Burton <[email protected] >>>>> <javascript:>> wrote: >>>>> >>>>>> We are aware of Dagger, but feel that Guice is more powerful and >>>>>> flexible. Which is why we are investing time in making Guice more >>>>>> performant for our use-case. We hope to make additional contributions >>>>>> in >>>>>> the future to further close that gap. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Tuesday, October 21, 2014 2:14:22 PM UTC-7, Stéphane NICOLAS wrote: >>>>>>> >>>>>>> No, we didn't compare them yet. >>>>>>> >>>>>>> For sure, RG + RoboBlender decrease the amount of processing needed >>>>>>> to compute injection points, but still a good part of it is done at >>>>>>> runtime. >>>>>>> >>>>>>> Nevertheless, we think it makes a good compromise in terms of >>>>>>> simplicity and performance to use Guice + Blender on Android. >>>>>>> >>>>>>> S. >>>>>>> >>>>>>> On Tuesday, October 21, 2014 5:08:27 PM UTC-4, Sam Berlin wrote: >>>>>>>> >>>>>>>> This is interesting. Have you compared the results to Dagger >>>>>>>> (Dagger1 or Dagger2)? Dagger is explicitly built with Android in >>>>>>>> mind, and >>>>>>>> shifts the processing to compile time. >>>>>>>> >>>>>>>> sam >>>>>>>> >>>>>>>> On Tue, Oct 21, 2014 at 5:04 PM, Stéphane NICOLAS < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hello all, >>>>>>>>> >>>>>>>>> Mike Burton (the author of RoboGuice >>>>>>>>> <https://github.com/roboguice/roboguice>, a version of Guice adapted >>>>>>>>> to Android) and I have been working on a new annotation processor for >>>>>>>>> Guice(named Blender). >>>>>>>>> We have been working hard on this and, in RoboGuice, we gain from >>>>>>>>> 30 to 70% gain in speed and around 30% gain in memory footprint for >>>>>>>>> our >>>>>>>>> apps. >>>>>>>>> >>>>>>>>> *We would like to submit the idea of Blender to the community >>>>>>>>> of Guice devs in order to have your feedback on this, and as we hope >>>>>>>>> thatBlender can become part of the official Guice.* >>>>>>>>> >>>>>>>>> Here are some *slides* to explain why and how we did it : >>>>>>>>> https://speakerdeck.com/stephanenicolas/blender-boosting-guice >>>>>>>>> -with-annotation-processing >>>>>>>>> >>>>>>>>> We have currently *forked Guice* and tried to make something >>>>>>>>> close to a *PR* for it : >>>>>>>>> https://github.com/stephanenicolas/google-guice/tree/PR-blender >>>>>>>>> (Please ask us where to get the latest version, we try to stick on >>>>>>>>> guice 4 changes) >>>>>>>>> >>>>>>>>> We are very excited to submit Blender, and we are very open to >>>>>>>>> modify our implementation to make it fit in Guice and we are >>>>>>>>> eager to get feedback on it. >>>>>>>>> >>>>>>>>> Thanks in advance, >>>>>>>>> Stéphane >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/google-guice/9cd1683f- >>>>>>>>> 0545-4687-b824-0a0cfd7a9f31%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/google-guice/9cd1683f-0545-4687-b824-0a0cfd7a9f31%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>> 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] <javascript:>. >>>>>> To post to this group, send email to [email protected] >>>>>> <javascript:>. >>>>>> Visit this group at http://groups.google.com/group/google-guice. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/google-guice/67524038-b76f-4979-9bf9-27b1a04c3ce9%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/google-guice/67524038-b76f-4979-9bf9-27b1a04c3ce9%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >> -- >> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at http://groups.google.com/group/google-guice. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/google-guice/CALo37o7xviVzjB7JvgfthuMUiACdwqyeCu98zUKRB%2B1L8S%2BudQ%40mail.gmail.com >> >> <https://groups.google.com/d/msgid/google-guice/CALo37o7xviVzjB7JvgfthuMUiACdwqyeCu98zUKRB%2B1L8S%2BudQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/google-guice/99071a3d-4a85-4b4f-9570-a3e74a0a9b66%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
