On Wednesday 20 May 2015 14:30, Rustom Mody wrote: > And what about Java? > http://stackoverflow.com/questions/166033/value-semantics-and-pointer- semantics
Congratulations, you have found yet another example of the Java community's collective delusion and insistence on misusing terms for the maximum confusion possible. The mental gymnastics they go through to force the round peg of pass-by- sharing object semantics into the false dichotomy "pass-by-value versus pass-by-reference" is just crazy. One consequence of this is that the meaning of "call by value" depends on whether the value you are talking about is a boxed or unboxed value. Unboxed values are copied. Boxed values are not. Except that they are, if you understand that "the value" doesn't refer to the actual value, but to some hidden and implementation-dependent reference to the value. To quote Fredrik Lundh: well, I guess you can, in theory, value an artificial number assigned to an object as much as the object itself. "Joe, I think our son might be lost in the woods" "Don't worry, I have his social security number" http://effbot.org/zone/call-by-object.htm Rustom, if you are serious about this approach, then the implication is that if I execute "x = 23" in Python, and I ask you what the value of x is, you should answer something like "146588120" (that's the implementation dependent "value", i.e. the address of the int 23). It's just *nuts*, and all because the Java folks are unwilling or unable to distinguish between the language semantics and the implementation of the language. And you're falling into the same hole. -- Steve -- https://mail.python.org/mailman/listinfo/python-list