You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@groovy.apache.org by Remko Popma <re...@gmail.com> on 2018/05/15 14:40:10 UTC

Groovy 2.5 CliBuilder article (request for feedback)

Hi everyone,

I finished a first draft of an article on Groovy 2.5 CliBuilder
(https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).

I plan to publish this on DZone and Java Code Geeks when complete.

I'd appreciate your feedback and suggestions for improvement!

Remko

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Paul King <pa...@asert.com.au>.
The release notes are on the website repo - i.e., different repo/lifecycle
to the code, so can be changed at any time. I'll be updating it throughout
the day as time permits.

On Wed, May 30, 2018 at 4:15 PM, mg <mg...@arscreat.com> wrote:

> Great, excited, 2.5 really has a lot of really good stuff :-)
>
> -------- Ursprüngliche Nachricht --------
> Von: Paul King <pa...@asert.com.au>
> Datum: 30.05.18 05:59 (GMT+01:00)
> An: dev@groovy.apache.org
> Betreff: Re: Groovy 2.5 CliBuilder article (request for feedback)
>
> I have started the release process. I expect it to take a couple of hours.
> I am hoping to be finished by the official start of the conference 9 am
> Copenhagen time.
>
> Cheers, Paul.
>
> On Wed, May 30, 2018 at 9:49 AM, Remko Popma <re...@gmail.com>
> wrote:
>
>> Paul,
>>
>> I’ve prepared a blog post on http://blogs.apache.org with the contents
>> of this article. (DZone etc will follow later.)
>>
>> I understand that you want to announce Groovy 2.5 during gr8conf. I will
>> try to sync the timing of the publication of the blog post with your
>> announcement.
>>
>> Can you give me a date and time?
>>
>> Cheers,
>> Remko
>>
>> On Tue, May 29, 2018 at 15:34 Remko Popma <re...@gmail.com> wrote:
>>
>>> Cool!
>>> Thanks again!
>>>
>>>
>>> Remko
>>>
>>> On May 29, 2018, at 14:26, Paul King <pa...@asert.com.au> wrote:
>>>
>>> LGTM!
>>>
>>> On Tue, May 29, 2018 at 2:17 PM, Remko Popma <re...@gmail.com>
>>> wrote:
>>>
>>>> Thanks for the clarification. I’ve made some changes based on your
>>>> feedback.
>>>>
>>>> Please let me know if you spot any more.
>>>>
>>>> Thanks!
>>>> Remko
>>>>
>>>> (Shameless plug) Every java main() method deserves http://picocli.info
>>>>
>>>> On May 29, 2018, at 12:25, Paul King <pa...@asert.com.au> wrote:
>>>>
>>>>
>>>>
>>>> On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com>
>>>> wrote:
>>>>
>>>>> Paul,
>>>>>
>>>>> I’ll change “annotating properties” to “annotating fields”.
>>>>>
>>>>
>>>> I was suggesting the other way around. Field-like declarations in
>>>> Groovy without an explicit visibility modifier are properties. That's what
>>>> your examples show.
>>>>
>>>>
>>>>> About “getter methods for interfaces” and “setter methods for
>>>>> implementation classes”, I need to think about this some more but the
>>>>> distinction is important.
>>>>>
>>>>> The annotations can be a bit “magic” for users who don’t know the
>>>>> details of what happens under the hood.
>>>>>
>>>>> Without clear documentation users may try to use the annotations on
>>>>> the “getter” method of an implementation class.
>>>>>
>>>>> I’ll try to improve the wording but the analogy with JavaBeans is
>>>>> actually helpful rather than confusing, I think. Why do you think this
>>>>> analogy should be avoided?
>>>>>
>>>>
>>>> Other people may have a different understanding but I normally see
>>>> setters as the term used for methods like setFoo, setBar, setBaz, etc. So
>>>> that's exactly what we want it to mean for implementation classes. The
>>>> setters will be there either explicitly or for all non readonly properties
>>>> which will have automatic setters.
>>>>
>>>> The term "getters" is for methods like getFoo, getBar, getBaz etc. The
>>>> interfaces you are showing don't have such methods, e.g. help(), users(),
>>>> remaining(). There aren't setters, just interface methods.
>>>>
>>>> Paul.
>>>>
>>>>
>>>>
>>>>>
>>>>> Remko
>>>>>
>>>>> (Shameless plug) Every java main() method deserves http://picocli.info
>>>>>
>>>>> On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:
>>>>>
>>>>> Looks great!
>>>>>
>>>>> Two minor points (and they are possibly flaws that also exist in the
>>>>> Groovy doco - I haven't checked):
>>>>> * I wouldn't use the term "getter methods of an interface", I'd just
>>>>> use "methods of an interface". To avoid confusion with getter methods of
>>>>> JavaBean style classes.
>>>>> * I would use "annotating properties or setter methods" rather than
>>>>> "annotating fields or setter methods"
>>>>>
>>>>> Cheers, Paul.
>>>>>
>>>>>
>>>>> On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> All,
>>>>>>
>>>>>> I polished the Groovy 2.5 CliBuilder article some more
>>>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal
>>>>>> ).
>>>>>>
>>>>>> Feedback (positive or negative) would be great.
>>>>>>
>>>>>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi everyone,
>>>>>>>
>>>>>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>>>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilde
>>>>>>> r-Renewal).
>>>>>>>
>>>>>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>>>>>>
>>>>>>> I'd appreciate your feedback and suggestions for improvement!
>>>>>>>
>>>>>>> Remko
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by mg <mg...@arscreat.com>.
Great, excited, 2.5 really has a lot of really good stuff :-)
-------- Ursprüngliche Nachricht --------Von: Paul King <pa...@asert.com.au> Datum: 30.05.18  05:59  (GMT+01:00) An: dev@groovy.apache.org Betreff: Re: Groovy 2.5 CliBuilder article (request for feedback) 
I have started the release process. I expect it to take a couple of hours. I am hoping to be finished by the official start of the conference 9 am Copenhagen time.
Cheers, Paul.
On Wed, May 30, 2018 at 9:49 AM, Remko Popma <re...@gmail.com> wrote:
Paul,
I’ve prepared a blog post on http://blogs.apache.org with the contents of this article. (DZone etc will follow later.)
I understand that you want to announce Groovy 2.5 during gr8conf. I will try to sync the timing of the publication of the blog post with your announcement. 
Can you give me a date and time?
Cheers,Remko
On Tue, May 29, 2018 at 15:34 Remko Popma <re...@gmail.com> wrote:
Cool!Thanks again!

Remko
On May 29, 2018, at 14:26, Paul King <pa...@asert.com.au> wrote:

LGTM!
On Tue, May 29, 2018 at 2:17 PM, Remko Popma <re...@gmail.com> wrote:
Thanks for the clarification. I’ve made some changes based on your feedback. 
Please let me know if you spot any more. 
Thanks!Remko

(Shameless plug) Every java main() method deserves http://picocli.info
On May 29, 2018, at 12:25, Paul King <pa...@asert.com.au> wrote:



On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com> wrote:
Paul,
I’ll change “annotating properties” to “annotating fields”. 
I was suggesting the other way around. Field-like declarations in Groovy without an explicit visibility modifier are properties. That's what your examples show. About “getter methods for interfaces” and “setter methods for implementation classes”, I need to think about this some more but the distinction is important. 
The annotations can be a bit “magic” for users who don’t know the details of what happens under the hood. 
Without clear documentation users may try to use the annotations on the “getter” method of an implementation class. 
I’ll try to improve the wording but the analogy with JavaBeans is actually helpful rather than confusing, I think. Why do you think this analogy should be avoided?
Other people may have a different understanding but I normally see setters as the term used for methods like setFoo, setBar, setBaz, etc. So that's exactly what we want it to mean for implementation classes. The setters will be there either explicitly or for all non readonly properties which will have automatic setters.
The term "getters" is for methods like getFoo, getBar, getBaz etc. The interfaces you are showing don't have such methods, e.g. help(), users(), remaining(). There aren't setters, just interface methods.
Paul.
 
Remko
(Shameless plug) Every java main() method deserves http://picocli.info
On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:

Looks great!
Two minor points (and they are possibly flaws that also exist in the Groovy doco - I haven't checked):* I wouldn't use the term "getter methods of an interface", I'd just use "methods of an interface". To avoid confusion with getter methods of JavaBean style classes.* I would use "annotating properties or setter methods" rather than "annotating fields or setter methods"
Cheers, Paul.

On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com> wrote:
All, 
I polished the Groovy 2.5 CliBuilder article some more(https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
Feedback (positive or negative) would be great.
On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com> wrote:
Hi everyone,
I finished a first draft of an article on Groovy 2.5 CliBuilder(https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).


I plan to publish this on DZone and Java Code Geeks when complete.
I'd appreciate your feedback and suggestions for improvement!

Remko












Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by mg <mg...@arscreat.com>.
Hi Paul,
@release notes:@MapConstructor adds a Map-based constructor <zip>. This may be useful if you have final properties
I can assure you that this _is_, in fact, greatly useful, so might want to change "may be" to "is" if time allows :-)
Cheers,mg

-------- Ursprüngliche Nachricht --------Von: Paul King <pa...@asert.com.au> Datum: 30.05.18  05:59  (GMT+01:00) An: dev@groovy.apache.org Betreff: Re: Groovy 2.5 CliBuilder article (request for feedback) 
I have started the release process. I expect it to take a couple of hours. I am hoping to be finished by the official start of the conference 9 am Copenhagen time.
Cheers, Paul.
On Wed, May 30, 2018 at 9:49 AM, Remko Popma <re...@gmail.com> wrote:
Paul,
I’ve prepared a blog post on http://blogs.apache.org with the contents of this article. (DZone etc will follow later.)
I understand that you want to announce Groovy 2.5 during gr8conf. I will try to sync the timing of the publication of the blog post with your announcement. 
Can you give me a date and time?
Cheers,Remko
On Tue, May 29, 2018 at 15:34 Remko Popma <re...@gmail.com> wrote:
Cool!Thanks again!

Remko
On May 29, 2018, at 14:26, Paul King <pa...@asert.com.au> wrote:

LGTM!
On Tue, May 29, 2018 at 2:17 PM, Remko Popma <re...@gmail.com> wrote:
Thanks for the clarification. I’ve made some changes based on your feedback. 
Please let me know if you spot any more. 
Thanks!Remko

(Shameless plug) Every java main() method deserves http://picocli.info
On May 29, 2018, at 12:25, Paul King <pa...@asert.com.au> wrote:



On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com> wrote:
Paul,
I’ll change “annotating properties” to “annotating fields”. 
I was suggesting the other way around. Field-like declarations in Groovy without an explicit visibility modifier are properties. That's what your examples show. About “getter methods for interfaces” and “setter methods for implementation classes”, I need to think about this some more but the distinction is important. 
The annotations can be a bit “magic” for users who don’t know the details of what happens under the hood. 
Without clear documentation users may try to use the annotations on the “getter” method of an implementation class. 
I’ll try to improve the wording but the analogy with JavaBeans is actually helpful rather than confusing, I think. Why do you think this analogy should be avoided?
Other people may have a different understanding but I normally see setters as the term used for methods like setFoo, setBar, setBaz, etc. So that's exactly what we want it to mean for implementation classes. The setters will be there either explicitly or for all non readonly properties which will have automatic setters.
The term "getters" is for methods like getFoo, getBar, getBaz etc. The interfaces you are showing don't have such methods, e.g. help(), users(), remaining(). There aren't setters, just interface methods.
Paul.
 
Remko
(Shameless plug) Every java main() method deserves http://picocli.info
On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:

Looks great!
Two minor points (and they are possibly flaws that also exist in the Groovy doco - I haven't checked):* I wouldn't use the term "getter methods of an interface", I'd just use "methods of an interface". To avoid confusion with getter methods of JavaBean style classes.* I would use "annotating properties or setter methods" rather than "annotating fields or setter methods"
Cheers, Paul.

On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com> wrote:
All, 
I polished the Groovy 2.5 CliBuilder article some more(https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
Feedback (positive or negative) would be great.
On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com> wrote:
Hi everyone,
I finished a first draft of an article on Groovy 2.5 CliBuilder(https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).


I plan to publish this on DZone and Java Code Geeks when complete.
I'd appreciate your feedback and suggestions for improvement!

Remko












Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Paul King <pa...@asert.com.au>.
I have started the release process. I expect it to take a couple of hours.
I am hoping to be finished by the official start of the conference 9 am
Copenhagen time.

Cheers, Paul.

On Wed, May 30, 2018 at 9:49 AM, Remko Popma <re...@gmail.com> wrote:

> Paul,
>
> I’ve prepared a blog post on http://blogs.apache.org with the contents of
> this article. (DZone etc will follow later.)
>
> I understand that you want to announce Groovy 2.5 during gr8conf. I will
> try to sync the timing of the publication of the blog post with your
> announcement.
>
> Can you give me a date and time?
>
> Cheers,
> Remko
>
> On Tue, May 29, 2018 at 15:34 Remko Popma <re...@gmail.com> wrote:
>
>> Cool!
>> Thanks again!
>>
>>
>> Remko
>>
>> On May 29, 2018, at 14:26, Paul King <pa...@asert.com.au> wrote:
>>
>> LGTM!
>>
>> On Tue, May 29, 2018 at 2:17 PM, Remko Popma <re...@gmail.com>
>> wrote:
>>
>>> Thanks for the clarification. I’ve made some changes based on your
>>> feedback.
>>>
>>> Please let me know if you spot any more.
>>>
>>> Thanks!
>>> Remko
>>>
>>> (Shameless plug) Every java main() method deserves http://picocli.info
>>>
>>> On May 29, 2018, at 12:25, Paul King <pa...@asert.com.au> wrote:
>>>
>>>
>>>
>>> On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com>
>>> wrote:
>>>
>>>> Paul,
>>>>
>>>> I’ll change “annotating properties” to “annotating fields”.
>>>>
>>>
>>> I was suggesting the other way around. Field-like declarations in Groovy
>>> without an explicit visibility modifier are properties. That's what your
>>> examples show.
>>>
>>>
>>>> About “getter methods for interfaces” and “setter methods for
>>>> implementation classes”, I need to think about this some more but the
>>>> distinction is important.
>>>>
>>>> The annotations can be a bit “magic” for users who don’t know the
>>>> details of what happens under the hood.
>>>>
>>>> Without clear documentation users may try to use the annotations on the
>>>> “getter” method of an implementation class.
>>>>
>>>> I’ll try to improve the wording but the analogy with JavaBeans is
>>>> actually helpful rather than confusing, I think. Why do you think this
>>>> analogy should be avoided?
>>>>
>>>
>>> Other people may have a different understanding but I normally see
>>> setters as the term used for methods like setFoo, setBar, setBaz, etc. So
>>> that's exactly what we want it to mean for implementation classes. The
>>> setters will be there either explicitly or for all non readonly properties
>>> which will have automatic setters.
>>>
>>> The term "getters" is for methods like getFoo, getBar, getBaz etc. The
>>> interfaces you are showing don't have such methods, e.g. help(), users(),
>>> remaining(). There aren't setters, just interface methods.
>>>
>>> Paul.
>>>
>>>
>>>
>>>>
>>>> Remko
>>>>
>>>> (Shameless plug) Every java main() method deserves http://picocli.info
>>>>
>>>> On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:
>>>>
>>>> Looks great!
>>>>
>>>> Two minor points (and they are possibly flaws that also exist in the
>>>> Groovy doco - I haven't checked):
>>>> * I wouldn't use the term "getter methods of an interface", I'd just
>>>> use "methods of an interface". To avoid confusion with getter methods of
>>>> JavaBean style classes.
>>>> * I would use "annotating properties or setter methods" rather than
>>>> "annotating fields or setter methods"
>>>>
>>>> Cheers, Paul.
>>>>
>>>>
>>>> On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com>
>>>> wrote:
>>>>
>>>>> All,
>>>>>
>>>>> I polished the Groovy 2.5 CliBuilder article some more
>>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal
>>>>> ).
>>>>>
>>>>> Feedback (positive or negative) would be great.
>>>>>
>>>>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Hi everyone,
>>>>>>
>>>>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal
>>>>>> ).
>>>>>>
>>>>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>>>>>
>>>>>> I'd appreciate your feedback and suggestions for improvement!
>>>>>>
>>>>>> Remko
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Remko Popma <re...@gmail.com>.
Paul,

I’ve prepared a blog post on http://blogs.apache.org with the contents of
this article. (DZone etc will follow later.)

I understand that you want to announce Groovy 2.5 during gr8conf. I will
try to sync the timing of the publication of the blog post with your
announcement.

Can you give me a date and time?

Cheers,
Remko

On Tue, May 29, 2018 at 15:34 Remko Popma <re...@gmail.com> wrote:

> Cool!
> Thanks again!
>
>
> Remko
>
> On May 29, 2018, at 14:26, Paul King <pa...@asert.com.au> wrote:
>
> LGTM!
>
> On Tue, May 29, 2018 at 2:17 PM, Remko Popma <re...@gmail.com>
> wrote:
>
>> Thanks for the clarification. I’ve made some changes based on your
>> feedback.
>>
>> Please let me know if you spot any more.
>>
>> Thanks!
>> Remko
>>
>> (Shameless plug) Every java main() method deserves http://picocli.info
>>
>> On May 29, 2018, at 12:25, Paul King <pa...@asert.com.au> wrote:
>>
>>
>>
>> On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com>
>> wrote:
>>
>>> Paul,
>>>
>>> I’ll change “annotating properties” to “annotating fields”.
>>>
>>
>> I was suggesting the other way around. Field-like declarations in Groovy
>> without an explicit visibility modifier are properties. That's what your
>> examples show.
>>
>>
>>> About “getter methods for interfaces” and “setter methods for
>>> implementation classes”, I need to think about this some more but the
>>> distinction is important.
>>>
>>> The annotations can be a bit “magic” for users who don’t know the
>>> details of what happens under the hood.
>>>
>>> Without clear documentation users may try to use the annotations on the
>>> “getter” method of an implementation class.
>>>
>>> I’ll try to improve the wording but the analogy with JavaBeans is
>>> actually helpful rather than confusing, I think. Why do you think this
>>> analogy should be avoided?
>>>
>>
>> Other people may have a different understanding but I normally see
>> setters as the term used for methods like setFoo, setBar, setBaz, etc. So
>> that's exactly what we want it to mean for implementation classes. The
>> setters will be there either explicitly or for all non readonly properties
>> which will have automatic setters.
>>
>> The term "getters" is for methods like getFoo, getBar, getBaz etc. The
>> interfaces you are showing don't have such methods, e.g. help(), users(),
>> remaining(). There aren't setters, just interface methods.
>>
>> Paul.
>>
>>
>>
>>>
>>> Remko
>>>
>>> (Shameless plug) Every java main() method deserves http://picocli.info
>>>
>>> On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:
>>>
>>> Looks great!
>>>
>>> Two minor points (and they are possibly flaws that also exist in the
>>> Groovy doco - I haven't checked):
>>> * I wouldn't use the term "getter methods of an interface", I'd just use
>>> "methods of an interface". To avoid confusion with getter methods of
>>> JavaBean style classes.
>>> * I would use "annotating properties or setter methods" rather than
>>> "annotating fields or setter methods"
>>>
>>> Cheers, Paul.
>>>
>>>
>>> On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com>
>>> wrote:
>>>
>>>> All,
>>>>
>>>> I polished the Groovy 2.5 CliBuilder article some more
>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal
>>>> ).
>>>>
>>>> Feedback (positive or negative) would be great.
>>>>
>>>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi everyone,
>>>>>
>>>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal
>>>>> ).
>>>>>
>>>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>>>>
>>>>> I'd appreciate your feedback and suggestions for improvement!
>>>>>
>>>>> Remko
>>>>>
>>>>
>>>>
>>>
>>
>

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Remko Popma <re...@gmail.com>.
Cool!
Thanks again!

Remko

> On May 29, 2018, at 14:26, Paul King <pa...@asert.com.au> wrote:
> 
> LGTM!
> 
>> On Tue, May 29, 2018 at 2:17 PM, Remko Popma <re...@gmail.com> wrote:
>> Thanks for the clarification. I’ve made some changes based on your feedback. 
>> 
>> Please let me know if you spot any more. 
>> 
>> Thanks!
>> Remko
>> 
>> (Shameless plug) Every java main() method deserves http://picocli.info
>> 
>>> On May 29, 2018, at 12:25, Paul King <pa...@asert.com.au> wrote:
>>> 
>>> 
>>> 
>>>> On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com> wrote:
>>>> Paul,
>>>> 
>>>> I’ll change “annotating properties” to “annotating fields”. 
>>> 
>>> I was suggesting the other way around. Field-like declarations in Groovy without an explicit visibility modifier are properties. That's what your examples show.
>>>  
>>>> About “getter methods for interfaces” and “setter methods for implementation classes”, I need to think about this some more but the distinction is important. 
>>>> 
>>>> The annotations can be a bit “magic” for users who don’t know the details of what happens under the hood. 
>>>> 
>>>> Without clear documentation users may try to use the annotations on the “getter” method of an implementation class. 
>>>> 
>>>> I’ll try to improve the wording but the analogy with JavaBeans is actually helpful rather than confusing, I think. Why do you think this analogy should be avoided?
>>> 
>>> Other people may have a different understanding but I normally see setters as the term used for methods like setFoo, setBar, setBaz, etc. So that's exactly what we want it to mean for implementation classes. The setters will be there either explicitly or for all non readonly properties which will have automatic setters.
>>> 
>>> The term "getters" is for methods like getFoo, getBar, getBaz etc. The interfaces you are showing don't have such methods, e.g. help(), users(), remaining(). There aren't setters, just interface methods.
>>> 
>>> Paul.
>>> 
>>>  
>>>> 
>>>> Remko
>>>> 
>>>> (Shameless plug) Every java main() method deserves http://picocli.info
>>>> 
>>>>> On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:
>>>>> 
>>>>> Looks great!
>>>>> 
>>>>> Two minor points (and they are possibly flaws that also exist in the Groovy doco - I haven't checked):
>>>>> * I wouldn't use the term "getter methods of an interface", I'd just use "methods of an interface". To avoid confusion with getter methods of JavaBean style classes.
>>>>> * I would use "annotating properties or setter methods" rather than "annotating fields or setter methods"
>>>>> 
>>>>> Cheers, Paul.
>>>>> 
>>>>> 
>>>>>> On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com> wrote:
>>>>>> All, 
>>>>>> 
>>>>>> I polished the Groovy 2.5 CliBuilder article some more
>>>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
>>>>>> 
>>>>>> Feedback (positive or negative) would be great.
>>>>>> 
>>>>>>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com> wrote:
>>>>>>> Hi everyone,
>>>>>>> 
>>>>>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>>>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).
>>>>>>> 
>>>>>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>>>>>> 
>>>>>>> I'd appreciate your feedback and suggestions for improvement!
>>>>>>> 
>>>>>>> Remko
>>>>>> 
>>>>> 
>>> 
> 

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Paul King <pa...@asert.com.au>.
LGTM!

On Tue, May 29, 2018 at 2:17 PM, Remko Popma <re...@gmail.com> wrote:

> Thanks for the clarification. I’ve made some changes based on your
> feedback.
>
> Please let me know if you spot any more.
>
> Thanks!
> Remko
>
> (Shameless plug) Every java main() method deserves http://picocli.info
>
> On May 29, 2018, at 12:25, Paul King <pa...@asert.com.au> wrote:
>
>
>
> On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com>
> wrote:
>
>> Paul,
>>
>> I’ll change “annotating properties” to “annotating fields”.
>>
>
> I was suggesting the other way around. Field-like declarations in Groovy
> without an explicit visibility modifier are properties. That's what your
> examples show.
>
>
>> About “getter methods for interfaces” and “setter methods for
>> implementation classes”, I need to think about this some more but the
>> distinction is important.
>>
>> The annotations can be a bit “magic” for users who don’t know the details
>> of what happens under the hood.
>>
>> Without clear documentation users may try to use the annotations on the
>> “getter” method of an implementation class.
>>
>> I’ll try to improve the wording but the analogy with JavaBeans is
>> actually helpful rather than confusing, I think. Why do you think this
>> analogy should be avoided?
>>
>
> Other people may have a different understanding but I normally see setters
> as the term used for methods like setFoo, setBar, setBaz, etc. So that's
> exactly what we want it to mean for implementation classes. The setters
> will be there either explicitly or for all non readonly properties which
> will have automatic setters.
>
> The term "getters" is for methods like getFoo, getBar, getBaz etc. The
> interfaces you are showing don't have such methods, e.g. help(), users(),
> remaining(). There aren't setters, just interface methods.
>
> Paul.
>
>
>
>>
>> Remko
>>
>> (Shameless plug) Every java main() method deserves http://picocli.info
>>
>> On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:
>>
>> Looks great!
>>
>> Two minor points (and they are possibly flaws that also exist in the
>> Groovy doco - I haven't checked):
>> * I wouldn't use the term "getter methods of an interface", I'd just use
>> "methods of an interface". To avoid confusion with getter methods of
>> JavaBean style classes.
>> * I would use "annotating properties or setter methods" rather than
>> "annotating fields or setter methods"
>>
>> Cheers, Paul.
>>
>>
>> On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com>
>> wrote:
>>
>>> All,
>>>
>>> I polished the Groovy 2.5 CliBuilder article some more
>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
>>>
>>> Feedback (positive or negative) would be great.
>>>
>>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com>
>>> wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).
>>>>
>>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>>>
>>>> I'd appreciate your feedback and suggestions for improvement!
>>>>
>>>> Remko
>>>>
>>>
>>>
>>
>

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Remko Popma <re...@gmail.com>.
Thanks for the clarification. I’ve made some changes based on your feedback. 

Please let me know if you spot any more. 

Thanks!
Remko

(Shameless plug) Every java main() method deserves http://picocli.info

> On May 29, 2018, at 12:25, Paul King <pa...@asert.com.au> wrote:
> 
> 
> 
>> On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com> wrote:
>> Paul,
>> 
>> I’ll change “annotating properties” to “annotating fields”. 
> 
> I was suggesting the other way around. Field-like declarations in Groovy without an explicit visibility modifier are properties. That's what your examples show.
>  
>> About “getter methods for interfaces” and “setter methods for implementation classes”, I need to think about this some more but the distinction is important. 
>> 
>> The annotations can be a bit “magic” for users who don’t know the details of what happens under the hood. 
>> 
>> Without clear documentation users may try to use the annotations on the “getter” method of an implementation class. 
>> 
>> I’ll try to improve the wording but the analogy with JavaBeans is actually helpful rather than confusing, I think. Why do you think this analogy should be avoided?
> 
> Other people may have a different understanding but I normally see setters as the term used for methods like setFoo, setBar, setBaz, etc. So that's exactly what we want it to mean for implementation classes. The setters will be there either explicitly or for all non readonly properties which will have automatic setters.
> 
> The term "getters" is for methods like getFoo, getBar, getBaz etc. The interfaces you are showing don't have such methods, e.g. help(), users(), remaining(). There aren't setters, just interface methods.
> 
> Paul.
> 
>  
>> 
>> Remko
>> 
>> (Shameless plug) Every java main() method deserves http://picocli.info
>> 
>>> On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:
>>> 
>>> Looks great!
>>> 
>>> Two minor points (and they are possibly flaws that also exist in the Groovy doco - I haven't checked):
>>> * I wouldn't use the term "getter methods of an interface", I'd just use "methods of an interface". To avoid confusion with getter methods of JavaBean style classes.
>>> * I would use "annotating properties or setter methods" rather than "annotating fields or setter methods"
>>> 
>>> Cheers, Paul.
>>> 
>>> 
>>>> On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com> wrote:
>>>> All, 
>>>> 
>>>> I polished the Groovy 2.5 CliBuilder article some more
>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
>>>> 
>>>> Feedback (positive or negative) would be great.
>>>> 
>>>>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com> wrote:
>>>>> Hi everyone,
>>>>> 
>>>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).
>>>>> 
>>>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>>>> 
>>>>> I'd appreciate your feedback and suggestions for improvement!
>>>>> 
>>>>> Remko
>>>> 
>>> 
> 

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Paul King <pa...@asert.com.au>.
On Tue, May 29, 2018 at 9:43 AM, Remko Popma <re...@gmail.com> wrote:

> Paul,
>
> I’ll change “annotating properties” to “annotating fields”.
>

I was suggesting the other way around. Field-like declarations in Groovy
without an explicit visibility modifier are properties. That's what your
examples show.


> About “getter methods for interfaces” and “setter methods for
> implementation classes”, I need to think about this some more but the
> distinction is important.
>
> The annotations can be a bit “magic” for users who don’t know the details
> of what happens under the hood.
>
> Without clear documentation users may try to use the annotations on the
> “getter” method of an implementation class.
>
> I’ll try to improve the wording but the analogy with JavaBeans is actually
> helpful rather than confusing, I think. Why do you think this analogy
> should be avoided?
>

Other people may have a different understanding but I normally see setters
as the term used for methods like setFoo, setBar, setBaz, etc. So that's
exactly what we want it to mean for implementation classes. The setters
will be there either explicitly or for all non readonly properties which
will have automatic setters.

The term "getters" is for methods like getFoo, getBar, getBaz etc. The
interfaces you are showing don't have such methods, e.g. help(), users(),
remaining(). There aren't setters, just interface methods.

Paul.



>
> Remko
>
> (Shameless plug) Every java main() method deserves http://picocli.info
>
> On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:
>
> Looks great!
>
> Two minor points (and they are possibly flaws that also exist in the
> Groovy doco - I haven't checked):
> * I wouldn't use the term "getter methods of an interface", I'd just use
> "methods of an interface". To avoid confusion with getter methods of
> JavaBean style classes.
> * I would use "annotating properties or setter methods" rather than
> "annotating fields or setter methods"
>
> Cheers, Paul.
>
>
> On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com>
> wrote:
>
>> All,
>>
>> I polished the Groovy 2.5 CliBuilder article some more
>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
>>
>> Feedback (positive or negative) would be great.
>>
>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com>
>> wrote:
>>
>>> Hi everyone,
>>>
>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).
>>>
>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>>
>>> I'd appreciate your feedback and suggestions for improvement!
>>>
>>> Remko
>>>
>>
>>
>

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Remko Popma <re...@gmail.com>.
Paul,

I’ll change “annotating properties” to “annotating fields”. 

About “getter methods for interfaces” and “setter methods for implementation classes”, I need to think about this some more but the distinction is important. 

The annotations can be a bit “magic” for users who don’t know the details of what happens under the hood. 

Without clear documentation users may try to use the annotations on the “getter” method of an implementation class. 

I’ll try to improve the wording but the analogy with JavaBeans is actually helpful rather than confusing, I think. Why do you think this analogy should be avoided?

Remko

(Shameless plug) Every java main() method deserves http://picocli.info

> On May 29, 2018, at 4:11, Paul King <pa...@asert.com.au> wrote:
> 
> Looks great!
> 
> Two minor points (and they are possibly flaws that also exist in the Groovy doco - I haven't checked):
> * I wouldn't use the term "getter methods of an interface", I'd just use "methods of an interface". To avoid confusion with getter methods of JavaBean style classes.
> * I would use "annotating properties or setter methods" rather than "annotating fields or setter methods"
> 
> Cheers, Paul.
> 
> 
>> On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com> wrote:
>> All, 
>> 
>> I polished the Groovy 2.5 CliBuilder article some more
>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
>> 
>> Feedback (positive or negative) would be great.
>> 
>>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com> wrote:
>>> Hi everyone,
>>> 
>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).
>>> 
>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>> 
>>> I'd appreciate your feedback and suggestions for improvement!
>>> 
>>> Remko
>> 
> 

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Paul King <pa...@asert.com.au>.
Looks great!

Two minor points (and they are possibly flaws that also exist in the Groovy
doco - I haven't checked):
* I wouldn't use the term "getter methods of an interface", I'd just use
"methods of an interface". To avoid confusion with getter methods of
JavaBean style classes.
* I would use "annotating properties or setter methods" rather than
"annotating fields or setter methods"

Cheers, Paul.


On Tue, May 29, 2018 at 3:03 AM, Remko Popma <re...@gmail.com> wrote:

> All,
>
> I polished the Groovy 2.5 CliBuilder article some more
> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
>
> Feedback (positive or negative) would be great.
>
> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com>
> wrote:
>
>> Hi everyone,
>>
>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).
>>
>> I plan to publish this on DZone and Java Code Geeks when complete.
>>
>> I'd appreciate your feedback and suggestions for improvement!
>>
>> Remko
>>
>
>

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Remko Popma <re...@gmail.com>.
Jesper,

Thanks, I’ll make the image smaller. 
The numbers in the source code are how AsciiDoc gets rendered on GitHub wiki. It should look like a black circle with a white number inside when rendered as HTML. 

Thanks for checking!

(Shameless plug) Every java main() method deserves http://picocli.info

> On May 29, 2018, at 4:17, Jesper Steen Møller <je...@selskabet.org> wrote:
> 
> Neat article, Remko -- and neat CLI support!
> 
> Two very minor nitpicks:
> 
> 1) The image for 'Script Annotations' is confusingly big/unwieldy, almost to the point of me nearly missing the joke ;-)
> 
> 2) I'd use // 1, // 2, // 3 for pointing out individual lines in the examples. That way, you can still copy+paste them.
> 
> -Jesper
> 
>> On 28 May 2018, at 19.03, Remko Popma <re...@gmail.com> wrote:
>> 
>> All, 
>> 
>> I polished the Groovy 2.5 CliBuilder article some more
>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).
>> 
>> Feedback (positive or negative) would be great.
>> 
>>> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com> wrote:
>>> Hi everyone,
>>> 
>>> I finished a first draft of an article on Groovy 2.5 CliBuilder
>>> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).
>>> 
>>> I plan to publish this on DZone and Java Code Geeks when complete.
>>> 
>>> I'd appreciate your feedback and suggestions for improvement!
>>> 
>>> Remko
>> 
> 

Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Jesper Steen Møller <je...@selskabet.org>.
Neat article, Remko -- and neat CLI support!

Two very minor nitpicks:

1) The image for 'Script Annotations' is confusingly big/unwieldy, almost to the point of me nearly missing the joke ;-)

2) I'd use // 1, // 2, // 3 for pointing out individual lines in the examples. That way, you can still copy+paste them.

-Jesper

> On 28 May 2018, at 19.03, Remko Popma <re...@gmail.com> wrote:
> 
> All, 
> 
> I polished the Groovy 2.5 CliBuilder article some more
> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal <https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal> ).
> 
> Feedback (positive or negative) would be great.
> 
> On Tue, May 15, 2018 at 11:40 PM, Remko Popma <remko.popma@gmail.com <ma...@gmail.com>> wrote:
> Hi everyone,
> 
> I finished a first draft of an article on Groovy 2.5 CliBuilder
> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal <https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal>).
> 
> I plan to publish this on DZone and Java Code Geeks when complete.
> 
> I'd appreciate your feedback and suggestions for improvement!
> 
> Remko
> 


Re: Groovy 2.5 CliBuilder article (request for feedback)

Posted by Remko Popma <re...@gmail.com>.
All,

I polished the Groovy 2.5 CliBuilder article some more
(https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal ).

Feedback (positive or negative) would be great.

On Tue, May 15, 2018 at 11:40 PM, Remko Popma <re...@gmail.com> wrote:

> Hi everyone,
>
> I finished a first draft of an article on Groovy 2.5 CliBuilder
> (https://github.com/remkop/picocli/wiki/Groovy-2.5-CliBuilder-Renewal).
>
> I plan to publish this on DZone and Java Code Geeks when complete.
>
> I'd appreciate your feedback and suggestions for improvement!
>
> Remko
>