Posted May 19, 2011 13:58 UTC (Thu) by mcoleman (guest, #70990)
Parent article: The platform problem
This seems related to the general problem of decide when to reuse existing code (as opposed to rewriting from scratch). Although we learned in school that we should reuse whenever possible, long experience suggests that this is very much a mixed blessing. It can be a serious problem if the reused code isn't entirely under your control, may mutate, may be encountered in multiple incompatible versions, may be missing, there are IP issues, etc.
If you discover a bug in your own code, you can usually correct it in a punctual and coherent way. If the bug is in code that's been reused from elsewhere, it may take years for fixes to become widely available, if you are even able to convince upstream to accept them at all.
In this particular case, it sounds like you personally had the option of making changes "upstream" instead of "downstream", which greatly simplifies the decision. For ordinary coders, though, often the least-bad alternative is to go ahead and implement locally, then dash off a note to the upstream, and watch (possibly over a period of years) to see whether it's incorporated in a stable and usable way at some point.