> The philosophy behind that may be that
> overloading is not necessarily
> intrinsically "bad", but has the potential
> to generate unintuitive code.
On the other hand, if you've ever tried to make a nice matrix Class, you realize why operator overloading is so useful. Having the option available means you are able to apply a more natural coding style when it applies. Further, I have seen far too many unintuitive method and variable names to accept this argument.
> The one supported instance of String
> concatenation is a natural and intuitive
> use of overloading.
To continue my point, having to write something like
u = v1.add(v2);
to add two vectors (as used in Physics, i.e. magnitude and direction) is much more awkward than
u = v1 + v2;
in this context, since this style of infix mathematical notation is the most natural for the problem domain of Physics.
> Also, to eliminate it just in principle for
> consistency would deprive Java programmers of
> an extremely useful timesaver.
I agree that I wouldn't be as happy programming Java without the String concatenation operator. However, my argument for consistency would be in support of a general operator overloading mechanism rather than elimination of String concatenation.