Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Reliable software OR Is CPAN the sacred cow

by talexb (Chancellor)
on Sep 15, 2006 at 12:20 UTC ( [id://573104]=note: print w/replies, xml ) Need Help??


in reply to Reliable software: SOLVED (was: Reliable software OR Is CPAN the sacred cow)

    For me, ANY software MUST be developed with these priorities in mind:
    1. be reliable: it should do it work correctly (ex. for email parsing task it must support all features defined in RFCs related to email format plus be able to handle non-RFC-compliant emails produced by some buggy software)
    2. be secure: it should not allow unauthorized usage
    3. next priorities may vary from have a lot features to work fast or be cheaper or have intuitive interface, etc.

So, what's your thesis? Are you complaining that there are no Mail::* modules that follow 100% of the RFCs? Or that 99.9% of the modules on CPAN aren't reliable, secure, etc.? Or both?

Well, this is just a reminder that this is the open source community: We're mostly volunteers. If you wanna write something that'll help you get your job done better, more efficiently, more safely, and if you want to sure that work with everyone else, terrific. If you want to use something that someone else has written, go for it. You can even make your own improvements and maybe even get those improvements included, with the thanks of the authour and the community.

But if you're complaining that none of (for example) the Mail::* modules are totally compliant with the RFCs and want to blame someone, blame yourself for expecting the perfect solution for free. And if you want to do something about, use one of the existing modules and fix it up (see previous paragraph) or write your own, using the RFC. You may not encounter fame and fortune as a result, but if the module works well, the community will thank you and you may find yourself being bought a lot of beer.

Finally, the requirement that a CPAN module have an intuitive interface escapes me a little -- you learn about the module interface by reading the module documentation. I don't know how a module's interface can be made .. intuitive. For example, DBI uses the 'connect' method to create a new database connection object. By the time someone pointed how non-OO this was (of course, it should be a 'new' method, everyone knows that), I'd already been using the 'incorrectly name' call to DBI for years, and thought nothing of it .. but it sure is intuitive.

I'm working on preparing a module for CPAN right now, and it's hard .. because I haven't done it before .. but I thnk it'll be worth it, both for myself and for anyone out there who might use it.

And boy, I'm looking forward to that beer. :)

Alex / talexb / Toronto

"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

  • Comment on Re: Reliable software OR Is CPAN the sacred cow

Replies are listed 'Best First'.
Re^2: Reliable software OR Is CPAN the sacred cow
by jimt (Chaplain) on Sep 15, 2006 at 13:01 UTC

    Well, this is just a reminder that this is the open source community: We're mostly volunteers. If you wanna write something that'll help you get your job done better, more efficiently, more safely, and if you want to sure that work with everyone else, terrific. If you want to use something that someone else has written, go for it. You can even make your own improvements and maybe even get those improvements included, with the thanks of the authour and the community.

    Note - I'm not specifically addressing talexb in this reply, but the OSS community in general.

    I think this attitude is a cop-out, since it is exactly counter to one of the original points about CPAN being a sacred cow. There are innumerable replies on this board and others with people saying, "Don't re-invent the wheel! Use Foo::Widget from CPAN!" And that's fine, we're allowed.

    But jumping to "Hey, it's free software and you get what you pay for!" if people gripe about it doesn't help the case for open source at all. Yeah, I know, we are all volunteers (well, mostly), and yeah, people do get what they pay for, but it's a horrible way to try and defend yourself.

    How many people around here gripe about Microsoft's ever increasing systems requirements for its operating system and office suite? I need a 8GHz Teraflop 90 core Whatsamadoodle just to run a word processor? That's BS!. And that's fine, gripe. But then how many people turn around and say that perl is a lightning fast language and it's just as good as C for most tasks (at least on the web) and things would just be a-okay if we threw some more hardware at it? If Microsoft gets chastized for ever increasing requirements, so should you.

    Same with open source. You can't sing the virtues of the wide open community with its own source code and legion of people poking the code and then turn around and say "We're all volunteers. That's what you get!" It firmly and completely negates the original benefits, I think.

    A previous boss used to really sneer about using "free software" for these reasons. The app we had was written in an old version of Mason that wasn't compatible with Perl 5.8. But, the API had changed enough that it would require some (unknown but probably semi-big) amount of work to upgrade to a current Mason. So the app is stuck on perl 5.6 and old mason. When he came on board and heard about this, the first thing he blamed was free software and how you can't trust anything and no one cares.

    Side note - I did point out to him things like .NET's API radically changing or Oracle support nightmares or whatever. Commercial software doesn't necessarily give you any more stability, reliability, or continuity. You just pay more for it. He wasn't convinced.

    I feel like I'm starting to ramble, so I'll close up. But I don't think that falling back on "It's free, it's what you get" helps the case.

      The point, as I see it, is that open source is a possible starting point in the journey of software development.

      No one's obligated to use open source. You are welcome to write your own stuff from scratch if you want. For me, however, open source is a heck of a good place to start, and I accept the reality that something I get from CPAN may not be complete, or bug-free, with the knowledge that I can make a difference by helping improve the module I'm using.

      And that's an important difference. I can make a change to Template::Toolkit if I want, for example. If I find a bug, contact the authour/maintainers, talk with the folks in the community, offer the patch, how can that not benefit everyone? I get something that works 1% better. So does the community.

      As everyone donates their 1%, we get a better and better product, and build a stronger and stronger community. Many eyeballs make for shallow bugs, and all that.

      Instead of fellow monk powerman ranting about how poorly the Mail::* modules fare in following the various RFCs and in security and reliability, I believe s/he should concentrate their energies on making it right.

      Alex / talexb / Toronto

      "Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

      But jumping to "Hey, it's free software and you get what you pay for!" if people gripe about it doesn't help the case for open source at all.

      It doesn't help the naive case, but I don't care one whit about the naive case for open source or free software.

      The reason I believe that open source and free software can reach higher levels of quality and utility and applicability than proprietary software is because open licensing gives a wider community the opportunity to improve the software.

      The real response really ought to be "If you're part of the community, the quality and applicability and utility of the code is your concern too. Contribute." Contrarily, if you don't contribute in some means, you're very clearly not part of the community and your opinion about the code doesn't really matter.

      But jumping to "Hey, it's free software and you get what you pay for!" if people gripe about it doesn't help the case for open source at all. Yeah, I know, we are all volunteers (well, mostly), and yeah, people do get what they pay for, but it's a horrible way to try and defend yourself.
      I'd like to disagree, if only partly and on the interpretation. The Perl community has one big advantage: CPAN. But with this I don't mean the large (huge) base of code, but the people providing the community with it. CPAN lives from contribution, from critique, from honest opinions and bug reports. But it also feeds on the willingness of people to contribute. In this context, I find a comment that reads mostly like "Don't upload your crap to CPAN! I can't use that in my business!" pretty disrespectful.

      Nobody forces anyone to use any module from the CPAN (Well, your contract with your employer might, but you've signed it and took the job). You can use only those tools for the job that you find the right for the job, and it's up to you to either share the authors and communities opinions or disagree.

      In my opinion, the solutions to problem domains provided by CPAN for the workforme category are as invaluable as the larger modules that evolve into a better maturity and bring Perl forward. And in this consequence I'd have to answer the question if people should upload their worksforthem code or not with a loud and clear "Yes." Without these modules and contributions, you wouldn't have a solution either. But with them, someone else might. And who knows? Modules can be taken over, forked and even made reliable by other people if there's a need for it and someone's willing to give their time. That's a pretty important part of open source too.
      Same with open source. You can't sing the virtues of the wide open community with its own source code and legion of people poking the code and then turn around and say "We're all volunteers. That's what you get!" It firmly and completely negates the original benefits, I think.
      Yes but, ... what do you want us to say? It's just the truth. If someone doesn't want to write module XYZ himself, how can he expect anyone else to do it for him? And if he's wanting to contribute the module, what's the fuss?
      A previous boss used to really sneer about using "free software" for these reasons.
      Then I'd say he didn't understand "free software." It doesn't mean "same as if you buy it, but you don't have to pay for it." Freedom always includes the consequences. There is no one true solution.
      Commercial software doesn't necessarily give you any more stability, reliability, or continuity. You just pay more for it. He wasn't convinced.
      Exactly. I don't think the reason there lies in open source quality, tho, but more in peoples understanding of it.
      But I don't think that falling back on "It's free, it's what you get" helps the case.
      Well, to someone asking for more power in some areas of Perl development, I'm afraid it's the only thing I could think of to answer.

      Ordinary morality is for ordinary people. -- Aleister Crowley
A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (2)
As of 2024-04-20 06:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found