[Zope] Re: Modifying __bases__
Tres Seaver
tseaver at palladion.com
Sat May 21 11:15:09 EDT 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Dan Pozmanter wrote:
> Out of curiosity, I've noticed the word "evil" attached to patching
> of various and monkey kinds. Not "bad", or "unwise", but "evil",
> implying a morality associated with the act.
The phrase encodes a bunch of folklore and geek sentiments in a
humourous ("half in fun but full earnest") meme:
- Monkey patching can invalidate documented APIs and behavior; in
this sense, a monkey patch is "taking out a loan" which will be
repaid later, either by the original perpetrator or by some other
poor schmuck ("Vinny's crowbar *hurts*.")
- A monkey patch is often a pure expedience: "Rather than redo *my*
software to correct a problem *I* injected, I'll just bash the base
software to work around it." In this mode, it is a sign of poor
design or quality in the perpetrator's code.
- Sometimes, a monkey patch is the only way to address a particular
issue without updating the underlying software (most "hotfixes" for
security issues involve monkey patching). In this mode, the patch
is a sign that the underlying software has a bug, hard-wired some
policy that it shouldn't have, or is otherwise defective.
> What is morally wrong with modifying live objects in a dynamic language
> to achieve desired functionality?
> The idea is "I want to modify the zope core in a way that survives
> version to version, yet does not
> impose a specific use case on all zope users".
In general, the use case is fine; we would prefer to address it by
making the core software more flexible / configurable, such that it is
not necessary to monkey patch.
Tres.
- --
===================================================================
Tres Seaver tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCj1B9+gerLs4ltQ4RAmWjAJ97Qvr2xnv5qsCRYC7it4UtHdxvewCg2Zu9
ADCK48Ly7ZMUWbV8E6wS6Q0=
=3SS5
-----END PGP SIGNATURE-----
More information about the Zope
mailing list