Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: Burned by Storable

by ruzam (Curate)
on Jun 11, 2008 at 14:10 UTC ( [id://691472]=note: print w/replies, xml ) Need Help??


in reply to Re: Burned by Storable
in thread Burned by Storable

My bad for not knowing the limitation of the tool.

But I have no control over what version of the tool my application will encounter in the wild. I expect my application to run on any reasonably current Perl installation (old versions or not). I don't expect old versions of Storable to completely dump on a version change without some kind of backward compatibility armour built in from the get go. The fact that this is addressed in newer versions of Storable does not fix the already broken world that has been created around it.

I know I will never trust Storable to use it again. If I could, I'd vote it off the 'Perl core' island.

Replies are listed 'Best First'.
Re^3: Burned by Storable
by grinder (Bishop) on Jun 11, 2008 at 15:59 UTC
    I will never trust Storable to use it again. If I could, I'd vote it off the 'Perl core' island.

    Heh! You know, many of the porters feel the same way. It took a tremendous amount of effort to get it compiling and testing perfectly on all the various platforms that Perl runs on. Compiler idiosyncrasies make it particularly difficult to get right each time. Changing a preprocessor macro to work around the damage in one compiler made it break in another.

    And it continues to soak up developer effort, as time goes by. On the other hand, it's nice to have a big hairy XS module lying around so people can point to and say "oh no! not again!" whenever someone calls for another large XS module to be pulled into the core.

    • another intruder with the mooring in the heart of the Perl

Re^3: Burned by Storable
by perrin (Chancellor) on Jun 11, 2008 at 14:54 UTC
    But I have no control over what version of the tool my application will encounter in the wild.
    To a certain degree, this will be a problem with any module you use. Versions change, internals change, and incompatibilities creep in even when they aren't intended. The only way to be sure your application will work is to bundle specific versions of the modules it needs. This isn't so much a perl thing as a general issue with componentized software.

    In the case of core modules, you at least have a simpler target. You can test against the specific perl versions you want to support. But even so, distributions will modify them, people will install newer versions for features they need, etc.

    By the way, Storable rocks. It's massively faster than Data::Dumper, highly cross-platform when you store in network order, and as mentioned elsewhere the newer versions try hard to work across version and format changes. It was a great day for perl when we got a fast serialization mechanism in the core and I'd be very sorry to see it go.

Re^3: Burned by Storable
by Herkum (Parson) on Jun 11, 2008 at 14:45 UTC

    You can always identify your environment your application will run in. Take a look at CPAN, part of what it does is looking at what modules are installed and what versions. Depending on the config, it will upgrade or install other Perl packages as needed. If it did not, CPAN would be a little more than a fancy file copy utility.

    Now if you don't want to work with Storable, that is fine, but what happens when another module that you depends on has issues because of different features from version to version? Are you going to curse that module too or are you going to do something about it?

    Take a look at Module::Build and consider how it handles installing modules and maybe you can come up with a better solution than excommunicating Storable.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (2)
As of 2024-04-19 20:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found