Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^3: Can I please have *simple* modules?

by demerphq (Chancellor)
on Nov 24, 2005 at 19:34 UTC ( #511507=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Can I please have *simple* modules?
in thread Can I please have *simple* modules?

Looks to me like you wrote that code. Which means it doesn't violate the "don't use wizards you didn't write" rule. And yes, I too have written such code. For some of my work code I have a shared framework where I have method manufacturers. But I wrote them, they fit _exactly_ to my needs. I'd never upload them to CPAN because quite simply no other set of applications would ever want to use them.

In other modules I also have method manufacturing code. But again I wrote it. It does exactly what I need, and if I need to I will totally rewrite it for the next release. In my case I also fix one place and it fixes all my code using it, but all the code using it is all the code that will ever use it. And frankly I think that makes a lot more sense than reusing some of the stuff on CPAN. I have full control, understanding and insight of the methods, and they match my requirements and my thinking patterns exactly.

I guess this is like shoes or other custom clothing. Sure you can by mass-produced shoes and like them, but if you go to shoemaker and get a custom pair youll never complain about the fit, and you certainly wont be lending them to anybody else. To me method factories are like shoes. They should always be custom because they fit better that way, and they should never be loaned to somebody else, because they are designed for my feet not theirs.

---
$world=~s/war/peace/g


Comment on Re^3: Can I please have *simple* modules?
Re^4: Can I please have *simple* modules?
by siracusa (Friar) on Nov 24, 2005 at 23:24 UTC
    I too have written such code. For some of my work code I have a shared framework where I have method manufacturers. But I wrote them, they fit _exactly_ to my needs. I'd never upload them to CPAN because quite simply no other set of applications would ever want to use them.

    I wrote those methods for a specific project, but I'm glad I uploaded them to CPAN because I've used one or more of them on every other significant project I've done since. Yeah, I'm still technically using code that I wrote, but my point is that the code turned out to useful in contexts other than the specific one I wrote it for.

      Its not surprising to me that you have found your code suitable to your programming style and thought processes. The real question is, how many other authors find your method factories suitable to their programming style and thought processes. And if every one of us with a custom method factory that we prefer uploaded it to CPAN there would be hundreds of such modules, all slightly different, and all the more useless as the difficulty of figuring out which is The One To Use would become all the more intractable.

      Anyway, I should add that releasing such a factory as part of the Rose framework is to my mind totally fine. You arent advertsing it as a generic method factory, and you aren't suggesting that people outside of yourself should use it for anything not Rose. Which seems to me on an abstract level to be about the same as DDS where i have about 10 lines of code that do method generation. I didn't bother to stuff it into a seperate module because DDS isn't a framework. But to me the two are both just utility code used to make our own lives easier. They arent intended to make anybody elses life easier, which is good, because they probably wouldnt.

      ---
      $world=~s/war/peace/g

        Anyway, I should add that releasing such a factory as part of the Rose framework is to my mind totally fine. You arent advertsing it as a generic method factory, and you aren't suggesting that people outside of yourself should use it for anything not Rose.

        Actually, I think it's a perfectly acceptable generic method maker. Both the framework and the specific method types bundled with it are suitable for a wide range of purposes. What I meant when I said I'd used them elsewhere is that I've used them outside the context of Rose. It's association with a particular framework may keep people away (or, more like, keep people totally unaware of it), and that's fine. But that's also a separate issue from it's actual utility or merit.

        As for CPAN being crowded if everyone did what I did, I say the more the merrier. I believe it's a self-adjusting system in the long run. Don't forget, there's also a danger in having too few choices. A not-so-good module may become popular simply because it's the only one of its kind. Better to have the other problem: too much choice instead of too little. Arguably, CPAN crossed that line long ago. Holding modules back at this point is not going to reverse the situation. It's better to try to maximize the value of the alternate scenario.

        Of course, the usual standards for CPAN submission apply: don't submit a module unless you intend to support it, include thorough documentation, have a good test suite, etc. Those things should always apply. But if you meet those requirements, I say upload away. You'll already be head and shoulders above the average CPAN module :)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://511507]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (15)
As of 2014-10-24 18:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (134 votes), past polls