chromatic wrote:
On Wednesday 05 April 2006 02:02, Adam Kennedy wrote:

But it's also why UNIVERSAL::isa/can and people adding higher-version
dependencies below their existing lower-dependency modules is bad.

The code used to work just fine, and now it doesn't.

This is a strange definition of "work just fine", as before UNIVERSAL::isa and UNIVERSAL::can, I had to deal with way too many bug reports of other people's code breaking mine. In other words, it didn't work.

And now in return, we have new modules that changes the way EVERYBODY else's code works, and changes the meaning of that code instead, so Test::MockObject gets less spurious bug reports.

UNIVERSAL::isa and UNIVERSAL::can remain a good idea implemented without sufficient hubris.

As I've mentioned a few times, a much better option would have been something like warnings::isacan, to warn about bad calls, but which when the few of us that NEED to use as a function, knowing exactly what we mean by using it that way, don't have it magically and forcibly and mistakenly converted to a method.

And to make matters worse, now there's a warning suppression option, so they now just magically change the way the code works, potentially breaking it without warning.

For example, Template::Toolkit may *never* work with Test::MockObject because the author refuses to ask the author of CGI.pm to fix a bug in the latter module, despite apparently knowing about it for several years and apparently preferring to break my code instead.

Turnabout is not fair play when it comes to bugs.

I'm not going to release knowingly broken code, just so my broken code can run brokenly on really old versions of Perl. What good is that?

I wasn't aware Test::MockObject was fundamentall broken. As far as I was aware it does the right thing. And if someone uses UNIVERSAL::isa the wrong way, that's their problem to fix.

And as for the version issue, you should do what you like there, because you introduced it as a new module. Just make sure the version dependency is explicit.

Adam K

Reply via email to