L -- >>> BTW this is discussed a bit in Analysis Patterns by Martin Fowler as the >>> operational layer and knowledge layer (where the classes are at the >>> operational layer and the instances are the knowledge layer). >> >> Yeah. I like Martin's stuff in general but on this I've never found >> his distinction particularly useful. More broadly, I think I come >> from a more code-is-math perspective and he's addressing it from a >> code-is-process perspective (IIRC). > > What about the distinction in the RAL? > > I think a big problem in the RAL is that Puppet::Type -> Puppet::Type::File > -> File["/etc"] makes much less sense than Puppet::Type -> > Puppet::Type.new(:file) and Puppet::Resource -> File["/etc"]. > > You can pretty easily compare these in Puppet right now - the RAL uses the > class/subclass model, and the parser uses classes and instances > (Puppet::Resource::Type for types, and Puppet::Resource for resources).
To be clear, I agree with the conclusion (though as we've discussed previously, there's an added wrinkle in the RAL, where things that are naturally instances of Puppet::Type themselves have instances), it's just Martin's way of conceptualizing it that doesn't work for me. I find the is-a/has-a sort of distinction and reified beahaviour patterns (delegation, strategies, etc.) instead of "everything is inheritance" to be a better way to think about it (for me at least) than Martin's operational/knowledge distinction. -- M ----------------------------------------------------------- When in trouble or in doubt, run in circles, scream and shout. -- 1920's parody of the maritime general prudential rule ------------------------------------------------------------ -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to puppet-dev@googlegroups.com. To unsubscribe from this group, send email to puppet-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.