В Ruby методы с побочными эффектами или методы, которые изменяют объект, переданный в качестве параметров, имеют "!" в качестве постфикса.
Например:
"SomeString".gsub!(/S/, "s")
будет менять объект String, в то время как
"SomeString".gsub(/S/, "s")
будет работать с копией объекта String и не будет изменять состояние каких-либо объектов вне метода.
Мне нравится это соглашение, и я хотел бы использовать его и при программировании на других языках.
Мой вопрос:
Реальные программисты на Ruby (я не один ;-)) действительно используют это соглашение? Если нет, то почему?
Существуют ли эквивалентные соглашения для методов именования в Java, PHP, Perl, Cobol ...?