Некоторые языки, такие как Ruby и JavaScript, имеют открытые классы, которые позволяют изменять интерфейсы даже основных классов, таких как числа, строки, массивы и т.д. Очевидно, что это может запутать других, знакомых с API, но есть веские основания для избегайте этого в противном случае, предполагая, что вы добавляете к интерфейсу и не изменяете существующее поведение?
Например, было бы неплохо добавить реализацию Array.map для веб-браузеров, которые не реализуют выпуск ECMAScript 5th (и если вы не нужен весь jQuery). Или ваши массивы Ruby могут извлечь выгоду из метода "суммы", который использует "инъекцию". До тех пор, пока изменения будут изолированы от ваших систем (например, не являются частью программного пакета, который вы выпускаете для распространения), есть ли веская причина не использовать эту языковую функцию?