Oui, le monkeypatching est très utile!
D'une manière ou d'une autre, les noms semblent fortement influencer la perception des gens. Appelez-le "monkeypatch" et ça sonne mal, appelez-le "hot fix" ou "fix à la volée" et ça sonne bien.
Indépendamment de cela, je pense que la possibilité de modifier les méthodes / attributs / fonctions à l'exécution est une chose très utile. Même les gens de javascript l'utilisent toute la journée sans le savoir.
Par exemple:
button.onclick = function(e) { ...}
Cette ligne simple illustre le fait que vous modifiez le comportement du bouton. Il a été conçu de cette façon. De même, vous pouvez modifier toutes les autres fonctions, mais ce serait idiot de le faire.
Maintenant, pour la question de fournir des correctifs de cette façon ... eh bien ... pourquoi pas. Il vous suffit de télécharger un petit patch au lieu d'une grosse version. Heck, vous pouvez même patcher un serveur sans l'arrêter, c'est parfait! Et puis, un jour, vous pourrez également récupérer la dernière version pour une mise à jour plus importante. C'est suffisant. Alors oui, je vote pour les "correctifs d'exécution" comme une bonne chose.
Chose intéressante, certaines langues comme Erlang ont même été construites autour de ce concept. La possibilité de mettre à jour un serveur à la volée.
Bien sûr, à la fin, et comme pour tout le reste, c'est une question de comment vous l'utilisez. Vous pouvez faire de merveilleuses choses OO et des merdes, c'est tout de même.
ÉDITER:
Permettez-moi d'ajouter une distinction de cas, que vous corrigiez votre propre bibliothèque ou une bibliothèque tierce .
... en gros, ce que vous faites avec un tel correctif, c'est de corriger votre propre bogue ou une bibliothèque tierce . Dans les deux cas, c'est utile. Pour votre propre compte, il vous permet de fournir un correctif à la volée. Pour un tiers, soit vous attendez (plusieurs mois?) Jusqu'à ce qu'ils le réparent d'eux-mêmes, soit vous le faites maintenant par vous-même. (vous pouvez toujours leur soumettre le patch, afin qu'ils le fixent de leur côté). Quand ils publieront leur prochaine version de lib avec le problème résolu, vous pouvez toujours, si vous voulez mettre à jour la bibliothèque et supprimer le patch de votre côté.
Maintenant, bien sûr, si vous utilisez un patch pour modifier le comportement d'une bibliothèque et aliéner son but / sa façon de travailler, alors c'est évidemment une recette pour un désastre. Même un singe verrait ça ... enfin, j'espère. ;)