Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Can I please have *simple* modules?

by fluffy (Scribe)
on Nov 23, 2005 at 14:34 UTC ( #511107=note: print w/replies, xml ) Need Help??

in reply to Can I please have *simple* modules?


thanks for your commentary. I've checked my email, I don't see any messages from you to say that you've got problems installing C::MM. Did I miss one? Is there an email misdirect somewhere? Did you mail me as a different name? Have I simply mis-filed? If you let me know how to reproduce them, I'll see if I can help. I have MacOS X and linux available.

If you want a simple module, write a simple module. C::MM tries to do some complex stuff, so it's a complex module. If you want a simple interface to the more common tasks, I'm open to contributions.

  • Comment on Re: Can I please have *simple* modules?

Replies are listed 'Best First'.
Re^2: Can I please have *simple* modules?
by Ovid (Cardinal) on Nov 23, 2005 at 16:39 UTC

    Hi fluffy,

    I ran into this problem last night. I didn't send the email because I've seen those test failures for CMM for a long time and since there are also a variety of open issues in the CMM RT queue, I just moved on. I don't mean this as any offense to you, but there are days when I just get tired of documenting and tracking every bug I find in large external modules. There's also the problem that CMM apparently assumes I'm using a hash internally. This breaks some of my code. So not only did I have difficult installing it, it really doesn't do what I need.

    I did check and see I still have the info in my buffer. If you're curious:


      Thanks for the details. FWIW, I don't see the same thing in similar circumstances (I'm also on Mac OS, and Linux), but there were a couple of bugs in Build.PL I picked up from the RT queue, so I've fixed those and uploaded 2.08. I'd not used CPANPLUS before, being a roll-your-own kinda guy, but I tried it and it worked out of the box for me (with C::MM 2.07), so that's kinda weird. Do you have any non-default settings with yours?

      I've resolved all the issues on the RT queue, I hope.

      As to the generic thrust, I'll make the following points:

      -) As far as forcing one to use hashes "I wonder how many folks want accessor generation only to find out they must use a blessed hash with canned modules?", I will observe that I did consider trying to be object-impl. agnostic, but chose against, for that would make the module even more complex, and the slanging on PerlMonks would have come all the faster. As it is, hash-based objects are the majority by an order-of-magnitude, and non-hash-based are used most commonly in specialist situations (e.g., performance-intensive ops) where you'll be avoiding generic solutions anyway.

      -) The rest of the thread seems to me the general case of "I want the moon, and I'd like it on a stick". I'm referring to thread as a whole here, not specifically your posts. Of course we'd like modules to be simple to use, and (although it's often less said), we'd like 'em to solve complex issues. If they were simple issues, it wouldn't be worth the time surfing CPAN for them. So we end up with a trade-off: simplicity of use vs. complexity of problem solved. And wherever there's a trade-off, there's a team of people ready to criticize it. It is worthy of note that there's always a thread like this one, including the position (e.g., demerphq), of "accessor generators are wrong", and I regularly get requests for more feature additions. There's no pleasing everyone.

      -) I see no problem of you writing you own module if C::MM and others don't suit your needs, either because they are too complex, or you want to use arrays/scalars/filehandles/whatever to implement your objs. Code reuse is about not re-writing code that does do what you need, not code that doesn't. If you were to write a module that assumes hash-based classes, with argument type-checking & optional tied storage, then I would wonder if re-using C::MM wouldn't make more sense, but it's your time & code.

      -) C::MM does have many flaws, it is more complex than I would like, the documentation isn't as good as I would like, and I don't get to spend much time on it now that I have a daughter to look after. I'm happy to talk about those (subject to time). On the other hand, it's used in many places, I get positive feedback from many users, so I'm happy to have contributed what I can.

      In summary, if you go to the farm and find a horse, by all means help me to make it run faster, but please don't complain to me that it doesn't give milk. You want a cow for that.

      I appreciate that you weren't aiming to offend me, and I'm not offended; my comments are aimed at the thread as a whole. I do get a little tired of the complaints (at all free software) that it "doesn't do what I want". If as the complainants generated half as much code as commentary, there'd be a great deal less complaining to do. And that's definately not aimed at you Ovid - you clearly do produce the goods, so you've earned your right to a whinge.


        I've re-read much of the thread again, (it takes me a while as I'm dyslexic), and I just thought I'd post to apologize to you particularly for over-reacting.

        Much of my reaction is aimed at comments elsewhere in the thread, I hope that's clear, but you clearly started by qualifying your statement with some kind words about C::MM, and I glazed on those.

        Anyway, C::MM 2.08 is up on CPAN, I hope that fixes any issues you had, and apologies for going off on one.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://511107]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2018-05-27 06:18 GMT
Find Nodes?
    Voting Booth?