matz / ruby-lang.org (Yukihiro Matsumoto) writes:

> In message "RE: ruby-dev summary 16501-16750 (immutable?)"
>     on 02/04/10, "Christoph" <chr_news / gmx.net> writes:
> 
> |May I throw in the fact that Python has a quite different take on this
> |on this question?  As early (or late?) as version 2.0 Python adapted `in
> |place' assignment operators, very similar to C++ *=,+=, etc. operators,
> |and very different from Ruby's `convenience (fake?) in place' assignment
> |operators.
> 
> I'm totally against Python's in-place (argumented) assignment.  The
> operator "+=" and such work pretty differently depending on whether an
> operand is mutable or not.  I feel it's too dangerous and the source
> of confusion.  It's OK to make something mutable, but it should
> certainly not any sort of assignment.

well, C++ is one language that has consistent behaviour on this, and still
allows mutability:

http://merd.net/pixel/language-study/various/assignment/result

At least Ruby's += behaviour is the same across mutable or not objects :)