2 comments

[ 1.4 ms ] story [ 12.8 ms ] thread
The main issue is that "simplicity" is a very ambiguous thing. If your language is "simple", you need to write the same low-level code again and again every single time, making your own code NOT simple. Pushing all the complexity away from our program into the language means that our code is simple, which is much more important. Any improvement to the compiler is spread for free to every single program compiled by it.

(I'm a go user, though)

The only time you can expect the `+` operator to do simple addition is when you're working with numeric primitives. If I instantiate two strings and add them with `+`, I'd better understand that I'm calling an overloaded operator -- what else could I possibly think I'd be doing there?

So I really don't agree that operator overloading is misleading -- that's only true if you ignore underlying data types. By this logic, any form of polymorphism is potentially misleading.