Sì, il monkeypatching è molto utile!
In qualche modo, i nomi sembrano essere molto influenti sulla percezione delle persone. Chiamalo "monkeypatch" e suona male, chiamalo "hot fix" o "correzione al volo" e suona bene.
Indipendentemente da ciò, penso che la capacità di alterare metodi / attributi / funzioni in fase di esecuzione sia una cosa molto utile. Anche le persone javascript lo usano tutto il giorno senza forse saperlo.
Per esempio:
button.onclick = function(e) { ...}
Questa semplice riga illustra il fatto che si modifica il comportamento del pulsante. È stato progettato in questo modo. Allo stesso modo, potresti alterare ogni altra funzione ma sarebbe sciocco farlo.
Ora, per la questione di consegnare le patch in quel modo ... beh ... perché no. Devi solo scaricare una piccola patch invece di una grande versione. Cavolo, potresti persino patchare un server senza fermarlo, fantastico! E poi, un giorno, potresti anche recuperare l'ultima versione per un aggiornamento più grande. Giusto. Quindi sì, io voto per "patch di runtime" come una buona cosa.
È interessante notare che alcune lingue come Erlang sono state persino costruite attorno a questo concetto. La possibilità di aggiornare un server al volo.
Certo, alla fine, e come tutto il resto, dipende da come lo usi. Puoi fare cose OO meravigliose e di merda, è lo stesso.
MODIFICARE:
Consentitemi di aggiungere una distinzione tra maiuscole e minuscole, sia che stiate correggendo la vostra libreria o quella di terzi .
... fondamentalmente, ciò che fai con una tale patch è correggere un bug della tua libreria o di una terza parte . In entrambi i casi è utile. Per conto tuo, ti consente di fornire una soluzione al volo. Per un terzo, o aspetti (diversi mesi?) Fino a quando non lo risolvono da soli o lo fai ora da solo. (puoi comunque inviare loro la patch, in modo che la riparino dalla loro parte). Quando rilasciano la loro prossima versione lib con il problema risolto, potete comunque, se volete aggiornare la libreria e rimuovere la patch dalla vostra parte.
Ora, ovviamente, se usi una patch per alterare il comportamento di una lib e alienarne lo scopo / il modo di lavorare, ovviamente questa è una ricetta per il disastro. Perfino una scimmia lo vedrebbe ... beh, spero. ;)