Hi Puppet Developers!

I have some real practical problems with the maintainability and
readability of puppet code. Here are some thoughts about (backwards
compatible) language syntax additions that IMO could greatly help to
clean up puppet code.

I have to say beforehand that I'm not able to implement my own
propositions (ouhh). But maybe some puppet architect finds my ideas
interesting anyway more as a kind of teaser...

http://projects.reductivelabs.com/issues/show/1645

Here some superficial discussion I had on #puppet to validate the
idea:

[00:11] fujin: jerico: considering that your changes would break
backwards compatibility, and require a large number of users' manifest
rewrites.. it'd probably only ever be changed with a toggle option
[00:11] fujin: jerico: what problems do your changes fix? ;}
...
[00:23] jerico: fujin: Why would it break backwards compatibility? I
consider backwards compatibility in my feature request.
[00:24] jerico: fujin: The benefits are that you could avoid global
variables (which you cannot currently if you use classes with
templates in them).
[00:25] jerico: fujin: I think it is out of question that global
variables are a very bad idea. They are against the most basic design
principles.
[00:25] jerico: fujin: You could use definitions instead. But they are
not meant for singleton use and they do not let you define instance
variables as classes do.
[00:26] jerico: fujin: I also think that a merged type would be more
intuitive for newcomers. (Specially the host of us who have an OO
background).
[00:27] jerico: fujin: These are quite some benefits, don't you think
so? And as I think that you can have all this with full backwards
compat... I thought it would be a good idea.
...
[00:34] fujin: global variables are one of the very basic design
prinipals relied upon by many external node tools
[00:34] fujin: you're kinda throwing some heavy OO ideas into a
declarative, imperative manifest syntax
...
[00:35] jamesturnbull: jerico: I'm thinking about it - not sure I am
sold
[00:35] jamesturnbull: jerico: but lak is probably the best one to
discuss it with -- and on the -dev list
[00:36] fujin: mm, global variables may be frowned upon in your OO
language of choice, but here they are very useful for abstraction
[00:36] fujin: It's top-scope, always inherited imperation
[00:36] fujin: (imperation a word?)

These were the basic arguments I think. The rest was a little
repetitive.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to