The annotation processor document requested by the Guice team is ready for 
a first review. 

This is our first attempt to write such a document, I hope it will meet 
your expectations : 
https://docs.google.com/document/d/15JGpsTvVFeXKi6LNLX_B6577BU8RUXghAu5gxisWOQo/edit#


On Tuesday, November 11, 2014 12:42:54 PM UTC-5, Stéphane NICOLAS wrote:
>
> 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]> 
>> 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]>:
>>>
>>> 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]> 
>>>> 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]>:
>>>>>
>>>>> 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]> 
>>>>>> 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].
>>>>>>> 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/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].
>>> 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/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/5e4df074-d019-409a-bfb4-47996bfd3c0c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to