Of course I had to jump in here. Yes, a++ and ++a could easily be rewritten by the parser into the appropriate increment+set of a and the expression either returns the incremented value or the non-incremented value. And I would like to see that added. It doesn't fundamentally change the expectations of the programmer, and it provides a one-character-shorter version of a+=1. There's really no reason it shouldn't be added, because even in Java or C, you are *never* modifying arbitrary references to that value...you are *always* re-assigning the value a given variable points to. This example: a = 1 b = a a++ Would cause exactly the same results in every language I've worked with...b would be 1 and a would be 2. The ++ operator never modifies a value, it modifies what value the variable has assigned to it. If it were modifying a value, then using ++ to bump a pointer through memory offsets would have horrible side effects for anyone else assigned that pointer value. I have seen no convincing argument as to why ++ is not supported in Ruby. - Charlie