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.

Reply via email to