Sí, ¡monkeypatching es muy útil!
De alguna manera, los nombres parecen ser muy influyentes en la percepción de las personas. Llámalo "monkeypatch" y suena mal, llámalo "hot fix" o "sobre la marcha" y suena bien.
Independientemente de eso, creo que la capacidad de alterar métodos / atributos / funciones en tiempo de ejecución es algo muy útil. Incluso la gente de JavaScript lo usa todo el día sin saberlo.
Por ejemplo:
button.onclick = function(e) { ...}
Esta línea simple ilustra el hecho de que altera el comportamiento del botón. Fue diseñado de esa manera. Del mismo modo, podría alterar cualquier otra función, pero sería una tontería hacerlo.
Ahora, para la cuestión de entregar parches de esa manera ... bueno ... por qué no. Solo tiene que descargar un pequeño parche en lugar de un gran lanzamiento. Diablos, incluso podrías parchear un servidor sin detenerlo, ¡genial! Y luego, un día, también podría obtener la última versión para una actualización más grande. Lo suficientemente justo. Entonces sí, yo voto por "parches de tiempo de ejecución" como algo bueno.
Curiosamente, algunos idiomas como Erlang incluso se construyeron alrededor de este concepto. La capacidad de actualizar un servidor sobre la marcha.
Por supuesto, al final, y como con todo lo demás, es cuestión de cómo lo uses. Puedes hacer cosas maravillosas OO y una mierda, todo es lo mismo.
EDITAR:
Permítanme agregar alguna distinción entre mayúsculas y minúsculas, ya sea que estén parcheando su propia biblioteca o una de terceros .
... básicamente, lo que haces con un parche de este tipo es corregir un error de tu propia biblioteca o la de un tercero . En cualquier caso es útil. Por su cuenta, le permite entregar una solución sobre la marcha. Para un tercero, espere (¿varios meses?) Hasta que lo arreglen por sí mismo o lo haga ahora por su cuenta. (aún puede enviarles el parche para que lo arreglen de su lado). Cuando lancen su próxima versión de lib con el problema solucionado, aún puede, si desea actualizar la biblioteca y eliminar el parche de su lado.
Ahora, por supuesto, si usa un parche para alterar el comportamiento de una lib y alienar su propósito / forma de trabajar, entonces obviamente esa es una receta para el desastre. Incluso un mono vería eso ... bueno, espero. ;)