On Wednesday, June 19, 2013 5:34:58 PM UTC-5, Alessandro Franceschi wrote:
>
>
>
> On Wednesday, June 19, 2013 5:03:41 PM UTC+2, jcbollinger wrote:
>>
>>
>> Call me "experienced", "jaded", or even "cynical", but I know of too many 
>> instances of vaporware to be swayed by promises of software that hasn't yet 
>> been written.
>>
>
> I just call you cynical. We can't do anything if we don't try to do it.
>  
>

By all means, do.  If you are somehow getting the impression that I object 
to the project then I apologize.  Indeed, I encourage you to proceed, and I 
wish you well.  I just have low regard for software that doesn't yet 
exist.  I do not find the potential for nebulous future software a 
persuasive argument for adopting anything.

What I actually object to is misrepresentation -- even though accidental -- 
of the nature and scope of the project.  It is NOT restricted to choosing 
names.

Secondarily, I object to positioning the effort as a standardization 
project, and I advise you to position it differently.  Names and labels are 
meaningful.  How the project proceeds, who participates, what they propose, 
and all manner of intangibles will be influenced by your decisions in this 
regard.  Frankly, I am inclined to resist a "standardization" effort from 
any random third party, but I have no reason whatever to oppose anyone 
drafting a set of conventions or best practices.  After they have been 
tested in the field will be a suitable time to consider standardization or 
endorsement.



> *A really reusable module HAS to be parametrized*.
>


Utter hogwash.

 

> Take note, I can repeat and argument that anytime.
>


Then no doubt we'll be hearing from each other on this again.

 

> Parameters are the API of a module, the interface you can interact with it 
> without touching it.
> If you don't use parameters either you are forcing inside the module 
> behaviours that can't be changed by users or you are forcing a specific way 
> to obtain the data that affects the modules behaviour and this inherently 
> makes it not reusable for people who provide data in other ways.
>


The data consumed by a module and the labels by which they are identified 
are certainly parts of a module's API, but it is by no means necessary to 
express those or interact with them in the form of class parameters.  You 
cannot safely use parameterized-style class declarations (as opposed to 
class *definitions*) of any API class, especially in or with modules 
intended to be interoperable.  That makes parameterization largely moot as 
far as reusability goes.  If people want to parameterize their classes then 
I have no special reason to object.  I do object, however, to the premise 
that doing so usefully improves reusability or interoperability, and 
therefore I object to any proposal that expressly calls for classes to be 
parameterized.

As long as we're talking about standards, Hiera is Puppet's de facto 
standard interface to external data.  It is usually expected that proposed 
standards will build on other, existing standards, whether de facto or 
formal.

I think your proposal would be stronger if it truly did focus on the data 
that might need to be supported by modules and the names / labels / keys by 
which they are identified.  If you choose a namespace-based system then you 
can align it to be consistent with class parameterization and automated 
parameter binding, yet not dependent on those.  I know you want more, but 
you should consider making a separate effort of the rest.

 
>
>>
>> Most importantly, however, my central objection here is that a proposal 
>> that purports to be exclusively about naming parameters in fact has any 
>> implications at all for module organization and style.
>>
>
> Ok, it's not a proposal that purports to be exclusively about naming 
> parameters: the usage of specific parameters involve patterns that enhance 
> modules' reusability  and interoperability.
> The sample module code definitively exposes design patterns with modules 
> (and it demonstrates that you can follow different patterns to achieve the 
> same behaviour.
>  
> Reading it again this is not so clear in the first post here, but it's 
> widely expressed in the linked pages.
> So, sorry, now let's move a step further, let's talk, if you want, about 
> how to make that paper/draft/proposal better.
> And if you think that such a thing should not even be discussed, well, ok, 
> I'll accept that and discuss it with who is interested in it.
>   
>


I think it would be better if it actually were narrowed in scope to 
identifying patterns in the data that modules consume, and choosing naming 
conventions for those data.  Better, and also easier to reach consensus 
on.  Include some comments about namespacing, especially in conjunction 
with accessing data via Hiera.  These issues are separate from and more 
fundamental than class parameterization or module organization.  They will, 
however, influence anyone who chooses to write modules with parameterized 
API classes.


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to