----- Original Message ----- > Is the fundamental property of Fixnum that its objects are immutable, > or that its objects do not have copy semantics? If the former, then > obviously ++ just isn't viable. If the latter, then it's possible to > imagine implementations that would allow it. > > I know we're not going to see ++ in Ruby in my lifetime. However, I'm > wondering if this is a necessary restriction on the language, or > simply on implementation convenience. I would say that it's a bit of both... immutability is a fundamental mathematical property of numbers . That implies that they do not have copy semantics. Immutability allows Ruby to optimise FixNums to be stored by value not reference. E.g. Imagine what would happen if ++ modified the value of a fixnum. This code would have different behaviour depending on the magnitude of n. If n is small enough to fit into a FixNum, then the function would return n. If n is too large to fit into a FixNum, and is therefore a reference to an Integer on the heap, it would return (x+1)! def func( n ) x = n y = x x++ y end If ++ was defined similarly to +=, then this would not be a problem. On the other hand, it would not be an optimisation, and would only exist to make code more terse. Is that a good thing? Personally I don't think so. I prefer to type slightly more code if that code is then easier to read and maintain. Ruby provides a lot more important convenience elsewhere to make the ommision of ++ and -- operators insignificant.