title: Is "monkey patching" really that bad?
body: <p>Some languages like Ruby and JavaScript have open classes which allow you to modify interfaces of even core classes like numbers, strings, arrays, etc.  Obviously doing so could confuse others who are familiar with the API but is there a good reason to avoid it otherwise, assuming that you are adding to the interface and not changing existing behavior?</p>
  
  <p>For example, it might be nice to add a an <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/map">Array.map</a> implementation to web browsers which don't implement ECMAScript 5th edition (and if you don't need all of jQuery).  Or your Ruby arrays might benefit from a "sum" convenience method which uses "inject".  As long as the changes are isolated to your systems (e.g. not part of a software package you release for distribution) is there a good reason not to take advantage of this language feature?</p>