[EMAIL PROTECTED] (Khemir Nadim) writes:
> "Vagn Johansen" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
> > How do you avoid breaking old programs when the interface changes?
> You don't. IMHO it's the users responsibility to check for what version they
> are using not the module author. 

It is, however, polite for the module author to inform the user that
there's been a change.

Imagine I change the interface of module X. You have some code which uses
program X and it works fine. Now you write some completely different code that
depends on module Z, so you use CPANPLUS or whatever to install module
Z. Module Z depends on module Y, so CPANPLUS installs that too, and module Y
depends on a new version of module X, so CPANPLUS installs that one as well.

Boom, action at a distance. As a result of using a completely unrelated
module, you've just broken a load of old code.

This is why I tend to do something like this in Makefile.PL:

     print "WARNING: This new major release is incompatible with previous\n";
     print "releases. Please check any code which uses this module.\n";
     print "Press enter to continue.\n";
     <>;

-- 
I think of AI as the study of programming situations where either don't
know what you want, or don't know how to get it.
    - Sean Burke

Reply via email to