Why Java Doesn't Need Operator Overloading (and Very Few Languages Do, Really)

Edward Diener eddielee_no_spam_here at tropicsoft.com
Sat Apr 18 16:32:13 PDT 2009


Paul D. Anderson wrote:
> Sounds like someone needs a strong dose of D!!
> 
> http://java.dzone.com/articles/why-java-doesnt-need-operator
> 
> The comments bounce between "operator overloading is always bad because you can do idiotic things with it" and "operator overloading is essential because sometimes you really need it".
> 
> How about a language where operator overloading is available for the cases where you do really need it, but isn't available in general?
> 
> Hmmm...

Java's lack of operator overloading is the most idiotic language 
decision which I have ever encountered. The arguments against operator 
overloading are equivalent to "if we allow feature X, programmers might 
not use it the way we have decided it should be used, therefore we won't 
allow it". "Idiotic" is not even a strong enough word to describe the 
retrograde thinking of the Java fanatics, and Sun, who have decided to 
tell programmers what is good for them, whether they want to swallow 
that pill or not.

Java is the only major language I use which does not have operator 
overloading. C++, Python, Ruby, C#, and D all have operator overloading. 
Among other things this means that while 1 + 2 in Java is valid, if I 
write a BigInteger Java class I must write: BigInteger a = 1; BigInteger 
b = 2; BigInteger c = a.Add(b); or some such other nonsense rather than 
the completely natural BigInteger c = a + b;.

To say that the lack of operator overloading in Java somehow makes the 
language "better" or "clearer to use" is so ludicrous it needs no 
further comment.

Eventually Java will add operator overloading, since Sun's fanaticism is 
clearly earning them a quick exit into buyout land ( if not IBM today it 
will be someone else tomorrow ). Then everyone from the Java fanatic 
camp will smile and say "wasn't that a brilliant decision Sun made", as 
if it hadn't been made by everyone else ages ago.

Sorry for the non-D related diatribe but someone else started this 
thread and I can't help remarking how stupid a language must be in this 
day and time which does not support operator overloading for ease of 
syntax use.



More information about the Digitalmars-d mailing list