On Mon, Feb 15, 2021 at 4:11 PM Victor Stinner <vstinner@python.org> wrote:

I didn't use Ruby on Rails, but the feedback that I heard is that the
ability to extend built-in types is appealing, but it is problematic
in practice.

Monkeypatching's such a part of the Ruby (and Javascript) culture that there isn't much pushback over it. The biggest problem is that it's such a part of the culture that it's not uncommon to have multiple modules redefining the same name in incompatible ways, which is as painful to track down as it sounds. Ruby also has refinements, which only modify within a specific scope (up to a single file), so forgetting whether it's enabled can get you even inside the same project.

-Em